From aa70416d38372b57c97962a0e1545a5e8c42309e Mon Sep 17 00:00:00 2001 From: "Documenter.jl" Date: Fri, 23 Feb 2024 11:02:22 +0000 Subject: [PATCH] build based on e601437 --- dev/.documenter-siteinfo.json | 1 + dev/BackgroundData/index.html | 20 +- dev/CosmoParams/index.html | 67 +- dev/CosmoUtils/index.html | 54 +- dev/Cosmology/index.html | 171 +- dev/Dicts/index.html | 309 +- dev/GNC_Correlations/index.html | 1386 ----- dev/GNC_Correlations_1/index.html | 420 ++ dev/GNC_Correlations_2/index.html | 650 ++ dev/GNC_Correlations_3/index.html | 498 ++ dev/GNCxLD_Correlations/index.html | 260 - dev/GNCxLD_Correlations_1/index.html | 838 +++ dev/GNCxLD_Correlations_2/index.html | 715 +++ dev/IPSTools/index.html | 92 +- dev/LD_Correlations/index.html | 186 - dev/LD_Correlations_1/index.html | 310 + dev/LD_Correlations_2/index.html | 329 + dev/LDxGNC_Correlations/index.html | 72 - dev/LDxGNC_Correlations_1/index.html | 62 + dev/LDxGNC_Correlations_2/index.html | 72 + dev/MathUtils/index.html | 50 +- dev/OtherUtils/index.html | 67 +- dev/PNG/index.html | 175 +- dev/PlaneParallelApprox/index.html | 140 +- dev/PowerSpectra/index.html | 96 + dev/PowerSpectraGenWin/index.html | 116 + dev/PowerSpectrum/index.html | 96 - dev/WindowF/index.html | 54 +- dev/WindowFIntegrated/index.html | 58 +- dev/assets/documenter.js | 752 ++- dev/assets/search.js | 267 - dev/assets/themes/documenter-dark.css | 7699 +---------------------- dev/assets/themes/documenter-light.css | 7733 +----------------------- dev/assets/themeswap.js | 82 +- dev/assets/warner.js | 87 +- dev/index.html | 17 +- dev/search/index.html | 2 - dev/search_index.js | 2 +- 38 files changed, 5564 insertions(+), 18441 deletions(-) create mode 100644 dev/.documenter-siteinfo.json delete mode 100644 dev/GNC_Correlations/index.html create mode 100644 dev/GNC_Correlations_1/index.html create mode 100644 dev/GNC_Correlations_2/index.html create mode 100644 dev/GNC_Correlations_3/index.html delete mode 100644 dev/GNCxLD_Correlations/index.html create mode 100644 dev/GNCxLD_Correlations_1/index.html create mode 100644 dev/GNCxLD_Correlations_2/index.html delete mode 100644 dev/LD_Correlations/index.html create mode 100644 dev/LD_Correlations_1/index.html create mode 100644 dev/LD_Correlations_2/index.html delete mode 100644 dev/LDxGNC_Correlations/index.html create mode 100644 dev/LDxGNC_Correlations_1/index.html create mode 100644 dev/LDxGNC_Correlations_2/index.html create mode 100644 dev/PowerSpectra/index.html create mode 100644 dev/PowerSpectraGenWin/index.html delete mode 100644 dev/PowerSpectrum/index.html delete mode 100644 dev/assets/search.js delete mode 100644 dev/search/index.html diff --git a/dev/.documenter-siteinfo.json b/dev/.documenter-siteinfo.json new file mode 100644 index 00000000..9313a6f3 --- /dev/null +++ b/dev/.documenter-siteinfo.json @@ -0,0 +1 @@ +{"documenter":{"julia_version":"1.9.4","generation_timestamp":"2024-02-23T11:02:13","documenter_version":"1.2.1"}} \ No newline at end of file diff --git a/dev/BackgroundData/index.html b/dev/BackgroundData/index.html index 916b4d7d..c8c76a0d 100644 --- a/dev/BackgroundData/index.html +++ b/dev/BackgroundData/index.html @@ -1,11 +1,11 @@ -Background Data · GaPSE.jl

Background functions

GaPSE.f0Constant
 const f0 :: Float64

Linear growth rate at present time. Its value is equal to:

\[ f_0 \simeq 0.5126998572951\]

source
GaPSE.D0Constant
 const D0 :: Float64

Linear growth factor at present time. Its value is equal to:

\[ D_0 = 1.0\]

source
GaPSE.ℋ0Constant
 const ℋ0 :: Float64

Comoving Hubble constant at present time. Its value is, in natural system (where the speed of light c=1): $\mathcal{H}_0 \simeq 3.335641\times10^{-4} \; h_0^{-1}\mathrm{Mpc}$

source
GaPSE.BackgroundDataType
 BackgroundData(
-      z::Vector{Float64}
-      conftime::Vector{Float64}
-      comdist::Vector{Float64}
-      angdist::Vector{Float64}
-      lumdist::Vector{Float64}
-      D::Vector{Float64}
-      f::Vector{Float64}
-      ℋ::Vector{Float64}
-      ℋ_p::Vector{Float64})

Struct that contains all the relevant cosmological information for future computations. The data are stored with increasing distance values (so the first ones are associated to z=0). It is internally used in Cosmology.

Arguments

  • z::Vector{Float64} : redshifts (adimensionals).

  • conftime::Vector{Float64} : conformal times, measured in [Mpc/h].

  • comdist::Vector{Float64} : comoving distances, measured in [Mpc/h].

  • angdist::Vector{Float64} : angular diameter distances, measured in [Mpc/h].

  • lumdist::Vector{Float64} : luminosity distances, measured in [Mpc/h].

  • D::Vector{Float64} : linear growth factors, normalized to 1.0 at the present day (adimensional).

  • f::Vector{Float64} : linear growth rates (adimensional).

  • ℋ::Vector{Float64} : comoving Hubble parameters, measured in [h/Mpc].

  • ℋ_p::Vector{Float64} : derivatives of the comoving Hubble parameter wrt the conformal time. It is here manually computed with the Dierckx function derivative.

Constructors

BackgroundData(file::String, z_max; names = NAMES_BACKGROUND, h = 0.7)

  • file::string : input file where the data are stored; it is expected that such file is a background output of the CLASS program (link: https://github.com/lesgourg/class_public)

  • z_max : the maximum redhsift we are interested in our analysis. The constructor will store the data necessary for a study only in 0 < z < z_max, for optimisation purposes (More precisely, the maximum distance stored will be 3*z_max).

  • names = NAMES_BACKGROUND : the column names of the file. If the colum order change from the default one NAMES_BACKGROUND, you must set as input the vector of string with the correct one, with the SAME names. They are, with the default order:

    z , proper time [Gyr] , conf. time [Mpc] , H [1/Mpc] , comov. dist. , ang.diam.dist. , lum. dist. , comov.snd.hrz. , (.)rho_g , (.)rho_b , (.)rho_cdm , (.)rho_lambda , (.)rho_ur , (.)rho_crit , gr.fac. D , gr.fac. f ,

  • h = 0.7 : the adimensional hubble constant. By default, CLASS background data are measured with it numerically expressed (so distances are measured in Mpc, for example), while this code works with h in the unit of measure (so distances are measured in Mpc/h, for example). Change this value to 1.0 if the input data do not have this issue, or to your value of interest (0.67, 0.5, ...).

See also: CosmoParams, Cosmology

source
+Background Data · GaPSE.jl

Background functions

GaPSE.f0Constant
const f0 :: Float64

Linear growth rate at present time. Its value is equal to:

\[ f_0 \simeq 0.5126998572951\]

source
GaPSE.D0Constant
const D0 :: Float64

Linear growth factor at present time. Its value is equal to:

\[ D_0 = 1.0\]

source
GaPSE.ℋ0Constant
const ℋ0 :: Float64

Comoving Hubble constant at present time. Its value is, in natural system (where the speed of light c=1): $\mathcal{H}_0 \simeq 3.335641\times10^{-4} \; h_0^{-1}\mathrm{Mpc}$

source
GaPSE.BackgroundDataType
BackgroundData(
+    z::Vector{Float64}
+    conftime::Vector{Float64}
+    comdist::Vector{Float64}
+    angdist::Vector{Float64}
+    lumdist::Vector{Float64}
+    D::Vector{Float64}
+    f::Vector{Float64}
+    ℋ::Vector{Float64}
+    ℋ_p::Vector{Float64})

Struct that contains all the relevant cosmological information for future computations. The data are stored with increasing distance values (so the first ones are associated to z=0). It is internally used in Cosmology.

Arguments

  • z::Vector{Float64} : redshifts (adimensionals).

  • conftime::Vector{Float64} : conformal times, measured in [Mpc/h].

  • comdist::Vector{Float64} : comoving distances, measured in [Mpc/h].

  • angdist::Vector{Float64} : angular diameter distances, measured in [Mpc/h].

  • lumdist::Vector{Float64} : luminosity distances, measured in [Mpc/h].

  • D::Vector{Float64} : linear growth factors, normalized to 1.0 at the present day (adimensional).

  • f::Vector{Float64} : linear growth rates (adimensional).

  • ℋ::Vector{Float64} : comoving Hubble parameters, measured in [h/Mpc].

  • ℋ_p::Vector{Float64} : derivatives of the comoving Hubble parameter wrt the conformal time. It is here manually computed with the Dierckx function derivative.

Constructors

BackgroundData(file::String, z_spline_lim; names = NAMES_BACKGROUND, h = 0.7)

  • file::string : input file where the data are stored; it is expected that such file is a background output of the CLASS program (link: https://github.com/lesgourg/class_public)

  • z_spline_lim : the maximum redhsift we are interested in our analysis. The constructor will store the data necessary for a study only in 0 < z < z_spline_lim, for optimisation purposes.

  • names = NAMES_BACKGROUND : the column names of the file. If the colum order change from the default one NAMES_BACKGROUND, you must set as input the vector of string with the correct one, with the SAME names. They are, with the default order:

    z , proper time [Gyr] , conf. time [Mpc] , H [1/Mpc] , comov. dist. , ang.diam.dist. , lum. dist. , comov.snd.hrz. , (.)rho_g , (.)rho_b , (.)rho_cdm , (.)rho_lambda , (.)rho_ur , (.)rho_crit , gr.fac. D , gr.fac. f ,

  • h = 0.7 : the adimensional hubble constant. By default, CLASS background data are measured with it numerically expressed (so distances are measured in Mpc, for example), while this code works with h in the unit of measure (so distances are measured in Mpc/h, for example). Change this value to 1.0 if the input data do not have this issue, or to your value of interest (0.67, 0.5, ...).

See also: CosmoParams, Cosmology

source
diff --git a/dev/CosmoParams/index.html b/dev/CosmoParams/index.html index 40e284ee..019b2e9f 100644 --- a/dev/CosmoParams/index.html +++ b/dev/CosmoParams/index.html @@ -1,36 +1,41 @@ -Cosmology Parameters · GaPSE.jl

The Cosmology Parameters

GaPSE.DEFAULT_IPS_OPTSConstant
 const DEFAULT_IPS_OPTS = Dict(
-      :fit_left_min => 1e-6::Float64, 
-      :fit_left_max => 3e-6::Float64,
-      :fit_right_min => 1e1::Float64, 
-      :fit_right_max => 2e1::Float64,
-      )

The default values to be stored in CosmoParams concerning the Input Power Spectrum. In the Cosmology that will have such CosmoParams as input, they will be used in its InputPS.

See also: CosmoParams, Cosmology, InputPS

source
GaPSE.DEFAULT_IPSTOOLS_OPTSConstant
 const DEFAULT_IPSTOOLS_OPTS = Dict(
-      :N => 1024::Int,
-      :fit_min => 0.05::Float64,
-      :fit_max => 0.5::Float64,
-      :con => true::Bool,
-      :k_min => 1e-6::Float64,
-      :k_max => 10.0::Float64,
- )

The default values to be stored in CosmoParams concerning the Input Power Spectrum Tools. In the Cosmology that will have such CosmoParams as input, they will be used in its IPSTools.

See also: CosmoParams, Cosmology, IPSTools

source
GaPSE.CosmoParamsType
 CosmoParams(
-      z_min::Float64
-      z_max::Float64
-      θ_max::Float64
+Cosmology Parameters · GaPSE.jl

The Cosmology Parameters

GaPSE.DEFAULT_IPS_OPTSConstant
const DEFAULT_IPS_OPTS = Dict(
+    :fit_left_min => 1e-6::Float64, 
+    :fit_left_max => 3e-6::Float64,
+    :fit_right_min => 1e1::Float64, 
+    :fit_right_max => 2e1::Float64,
+    )

The default values to be stored in CosmoParams concerning the Input Power Spectrum. In the Cosmology that will have such CosmoParams as input, they will be used in its InputPS.

See also: CosmoParams, Cosmology, InputPS

source
GaPSE.DEFAULT_IPSTOOLS_OPTSConstant
const DEFAULT_IPSTOOLS_OPTS = Dict(
+    :N => 1024::Int,
+    :fit_min => 0.05::Float64,
+    :fit_max => 0.5::Float64,
+    :con => true::Bool,
+    :k_min => 1e-6::Float64,
+    :k_max => 10.0::Float64,
+)

The default values to be stored in CosmoParams concerning the Input Power Spectrum Tools. In the Cosmology that will have such CosmoParams as input, they will be used in its IPSTools.

See also: CosmoParams, Cosmology, IPSTools

source
GaPSE.CosmoParamsType
CosmoParams(
+    z_min::Float64
+    z_max::Float64
+    θ_max::Float64
 
-      Ω_b::Float64
-      Ω_cdm::Float64
-      Ω_M0::Float64
-      h_0::Float64
+    Ω_b::Float64
+    Ω_cdm::Float64
+    Ω_M0::Float64
+    h_0::Float64
 
-      b::Float64
-      s_b::Float64
-      𝑓_evo::Float64
+    b1::Float64
+    b2::Float64
+    s_b1::Float64
+    s_b2::Float64
+    𝑓_evo1::Float64
+    𝑓_evo2::Float64
 
-      s_lim::Float64
+    s_lim::Float64
+    z_spline_lim::Float64
 
-      IPS::Dict{Symbol,T1} where {T1}
-      IPSTools::Dict{Symbol,T2} where {T2}
- )

Struct that contains all the parameters and options that are matter of concerns for the Cosmology we are interested in.

Arguments

  • z_min::Float64 and z_max::Float64 : the minimum and maximum redshifts of the survey we want to study.

  • θ_max::Float64 : Angular maximum value of the survey. It must be 0 < θ_max ≤ π/2.0. It is implicitly assumed an azimutal simmetry of the survey.

  • Ω_b::Float64, Ω_cdm::Float64 and Ω_M0::Float64 : barionic, cold-dark-matter and total matter density parameters.

  • h_0::Float64 : today's Hubble adimensional parameter (H_0 = h_0 * 100 km/(s * Mpc)).

  • b::Float64 : galaxy bias.

  • s_b::Float64 : magnification bias, i.e. the slope of the luminosity function at the luminosity threshold.

  • 𝑓_evo::Float64 : evolution bias.

  • s_lim::Float64 : the lower-bound value for the functions func_ℛ_LD and func_ℛ_GNC; it is necessary, because ℛ_LD and ℛ_GNC blows up for $s \rightarrow 0^{+}$. Consequently, if the func_ℛ_LD/func_ℛ_GNC input value is 0 ≤ s < s_lim, the returned value is always func_ℛ_LD(s_lim)/func_ℛ_GNC(s_lim).

  • IPS::Dict{Symbol,T1} where {T1} : dictionary concerning all the options that should be passed to InputPS in the contruction of a Cosmology. The allowed keys, with their default values, are stored in DEFAULT_IPS_OPTS, and are the following:

    • :fit_left_min => 1e-6 and :fit_left_max => 3e-6 : the limits (min and max) where the PS must be fitted with a (pure) power law, for small wavenumbers.
    • :fit_right_min => 1e1 and :fit_right_max => 2e1 : the limits (min and max) where the PS must be fitted with a (pure) power law, for high wavenumbers.
  • IPSTools::Dict{Symbol,T2} where {T2} : dictionary concerning all the options that should be passed to IPSTools in the contruction of a Cosmology. The allowed keys, with their default values, are stored in DEFAULT_IPSTOOLS_OPTS, and are the following:

    • :fit_min => 0.05 and :fit_max => 0.5 : the limits (min and max) where the integral $I_\ell^n$ in Cosmology must be fitted with a power law, for small distances. This operation is necessary, because xicalc, in this context, gives wrong results for too small input distance s; nevertheless, all these $I_\ell^n$ integrals have fixed power-law trends for $s \rightarrow 0$, so this approach gives good results.
    • :N => 1024 : number of points to be used in the Sperical Bessel Fourier Transform made by xicalc in IPSTools.
    • :k_min => 1e-6 and :k_max => 10.0 : extremes of integration for the σ_i integrals in IPSTools.
    • :con => true : do you want that the fit of all the $I_\ell^n$ in IPSTools for the LEFT edge is not a simple power-law $y = f(x) = b \, x^s$, but also consider a constant $a$, such that $y = f(x) = a + b \, x^s$?

Constructors

 CosmoParams(z_min, z_max, θ_max;
-      Ω_b = 0.0489, Ω_cdm = 0.251020, h_0 = 0.70, s_lim = 1e-2,
-      IPS_opts::Dict = Dict{Symbol,Any}(),
-      IPSTools_opts::Dict = Dict{Symbol,Any}()
- )

The associations are trivials, with Ω_M0 = Ω_cdm + Ω_b. For the two dictionary, you may pass only the key and the value you are interested in, and all the other default ones will be considered. For example, if you set:

IPSTools_opts = Dict(:N => 150, :con => false, :k_max => 30.0)

then the dictionary with all the options that will be passed to IPSTools will be:

IPSTools = merge(DEFAULT_IPSTOOLS_OPTS, IPSTools_opts) = :fit_min => 0.05, # default :fit_max => 0.5, # default :N => 150, # CHANGED VALUE :con => false, # CHANGED VALUE :k_min => 1e-6, # default :k_max => 30.0, # CHANGED VALUE )

and similar for IPS_opts.

See also: Cosmology, IPSTools, InputPS, func_ℛ_LD, DEFAULT_IPSTOOLS_OPTS, DEFAULT_IPS_OPTS, DEFAULT_WFI_OPTS, check_compatible_dicts

source
+ IPS::Dict{Symbol,T1} where {T1} + IPSTools::Dict{Symbol,T2} where {T2} +)

Struct that contains all the parameters and options that are matter of concerns for the Cosmology we are interested in.

Arguments

  • z_min::Float64 and z_max::Float64 : the minimum and maximum redshifts of the survey we want to study.

  • θ_max::Float64 : Angular maximum value of the survey. It must be 0 < θ_max ≤ π/2.0. It is implicitly assumed an azimutal simmetry of the survey.

  • Ω_b::Float64, Ω_cdm::Float64 and Ω_M0::Float64 : barionic, cold-dark-matter and total matter density parameters.

  • h_0::Float64 : today's Hubble adimensional parameter (H_0 = h_0 * 100 km/(s * Mpc)).

  • b1::Float64 and b2::Float64 : galaxy biases; you can choose to define both of them (if you are interested in the analysis of two galaxy species) or only the former (and leave the latter as nothing, it will be set equal to the former).

  • s_b1::Float64 and s_b2::Float64: magnification biases, i.e. the slope of the luminosity function at the luminosity threshold; you can choose to define both of them (if you are interested in the analysis of two galaxy species) or only the former (and leave the latter as nothing, it will be set equal to the former).

  • 𝑓_evo1::Float64 and 𝑓_evo2::Float64: evolution biases; you can choose to define both of them (if you are interested in the analysis of two galaxy species) or only the former (and leave the latter as nothing, it will be set equal to the former).

  • s_lim::Float64 : the lower-bound value for the functions func_ℛ_LD and func_ℛ_GNC; it is necessary, because ℛ_LD and ℛ_GNC blows up for $s \rightarrow 0^{+}$. Consequently, if the func_ℛ_LD/func_ℛ_GNC input value is 0 ≤ s < s_lim, the returned value is always func_ℛ_LD(s_lim)/func_ℛ_GNC(s_lim).

  • z_spline_lim::Float64 : the upper limit where to cut the cosmological splines (it will be used by CosmoSplines); the recommended value is the recombination era (i.e. $z \simeq 1000$).

  • IPS::Dict{Symbol,T1} where {T1} : dictionary concerning all the options that should be passed to InputPS in the contruction of a Cosmology. The allowed keys, with their default values, are stored in DEFAULT_IPS_OPTS, and are the following:

    • :fit_left_min => 1e-6 and :fit_left_max => 3e-6 : the limits (min and max) where the PS must be fitted with a (pure) power law, for small wavenumbers.
    • :fit_right_min => 1e1 and :fit_right_max => 2e1 : the limits (min and max) where the PS must be fitted with a (pure) power law, for high wavenumbers.
  • IPSTools::Dict{Symbol,T2} where {T2} : dictionary concerning all the options that should be passed to IPSTools in the contruction of a Cosmology. The allowed keys, with their default values, are stored in DEFAULT_IPSTOOLS_OPTS, and are the following:

    • :fit_min => 0.05 and :fit_max => 0.5 : the limits (min and max) where the integral $I_\ell^n$ in Cosmology must be fitted with a power law, for small distances. This operation is necessary, because xicalc, in this context, gives wrong results for too small input distance s; nevertheless, all these $I_\ell^n$ integrals have fixed power-law trends for $s \rightarrow 0$, so this approach gives good results.
    • :N => 1024 : number of points to be used in the Sperical Bessel Fourier Transform made by xicalc in IPSTools.
    • :k_min => 1e-6 and :k_max => 10.0 : extremes of integration for the σ_i integrals in IPSTools.
    • :con => true : do you want that the fit of all the $I_\ell^n$ in IPSTools for the LEFT edge is not a simple power-law $y = f(x) = b \, x^s$, but also consider a constant $a$, such that $y = f(x) = a + b \, x^s$?

Constructors

CosmoParams(z_min, z_max, θ_max;
+    Ω_b = 0.0489, Ω_cdm = 0.251020, h_0 = 0.70, s_lim = 1e-2, z_spline_lim = 1000.0,
+    b1=1.0, b2=nothing, s_b1=0.0, s_b2=nothing, 𝑓_evo1=0.0, 𝑓_evo2=nothing,
+    IPS_opts::Dict = Dict{Symbol,Any}(),
+    IPSTools_opts::Dict = Dict{Symbol,Any}()
+)

The associations are trivials, with Ω_M0 = Ω_cdm + Ω_b. For the two dictionary, you may pass only the key and the value you are interested in, and all the other default ones will be considered. For example, if you set:

IPSTools_opts = Dict(:N => 150, :con => false, :k_max => 30.0)

then the dictionary with all the options that will be passed to IPSTools will be:

IPSTools = merge(DEFAULT_IPSTOOLS_OPTS, IPSTools_opts) = :fit_min => 0.05, # default :fit_max => 0.5, # default :N => 150, # CHANGED VALUE :con => false, # CHANGED VALUE :k_min => 1e-6, # default :k_max => 30.0, # CHANGED VALUE )

and similar for IPS_opts.

See also: Cosmology, CosmoSplines, IPSTools, InputPS, func_ℛ_LD, DEFAULT_IPSTOOLS_OPTS, DEFAULT_IPS_OPTS, check_compatible_dicts

source
diff --git a/dev/CosmoUtils/index.html b/dev/CosmoUtils/index.html index 3891ef33..5eae4079 100644 --- a/dev/CosmoUtils/index.html +++ b/dev/CosmoUtils/index.html @@ -1,27 +1,27 @@ -Cosmology Utilities · GaPSE.jl

The Cosmology Utilities

GaPSE.func_z_effFunction
 func_z_eff(s_min, s_max, z_of_s) ::Float64

Given:

  • the input comoving distances s_min and s_max
  • the spline z_of_s that for an input comoving distance $s$ return the associated redshift $z(s)$,

this function return the effective redshift $z_\mathrm{eff}$, computed as follows:

\[\begin{split} +Cosmology Utilities · GaPSE.jl

The Cosmology Utilities

GaPSE.func_z_effFunction
func_z_eff(s_min, s_max, z_of_s) ::Float64

Given:

  • the input comoving distances s_min and s_max
  • the spline z_of_s that for an input comoving distance $s$ return the associated redshift $z(s)$,

this function return the effective redshift $z_\mathrm{eff}$, computed as follows:

\[\begin{split} z_\mathrm{eff} := - \frac{ - \int \mathrm{d}^3\mathbf{s} \, \phi^2(\mathbf{s}) \, z(s) - }{ - \int \mathrm{d}^3\mathbf{s}\, \phi^2(\mathbf{s}) - } &= \frac{ - \int_0^\infty \mathrm{d}s \, s^2 \, \phi^2(s) \, z(s) \times - \int_{4\pi}\mathrm{d}^2\hat{\mathbf{s}} \, W^2(\hat{\mathbf{s}}) - }{ - \int_0^\infty \mathrm{d}s \, s^2 \, \phi^2(s)\times - \int_{4\pi}\mathrm{d}^2\hat{\mathbf{s}} \, W^2(\hat{\mathbf{s}}) - } \\[5pt] - &= \frac{ - \int_0^\infty \mathrm{d}s \, s^2 \, \phi^2(s) \, z(s) - }{ - \int_0^\infty \mathrm{d}s \, s^2 \, \phi^2(s) - } \\[4pt] - &= \frac{3}{s_\mathrm{max}^3 - s_\mathrm{min}^3} \, - \int_{s_\mathrm{min}}^{s_\mathrm{max}} \mathrm{d}s \, s^2 \, z(s) \; . -\end{split}\]

We have used our assuption concerning the separability of the window function of the survey $\phi(\mathbf{s})$ into a radial and angular part, respectively $\phi(s)$ and $W(\mathbf{\hat{s}})$:

\[ \phi(\mathbf{s}) = \phi(s) \, W(\mathbf{\hat{s}}) \; .\]

We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$. The final integration over $\mathrm{d}s$ is performed through the function quadgk of the QuadGK.jl Julia package.

See also: ϕ, W

source
GaPSE.sFunction
 s(s1, s2, y) ::Float64

Return the value $s = s(s_1, s_2, y) = \sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$

See also: μ, s2, y

source
GaPSE.μFunction
 μ(s1, s2, y) ::Float64

Return the cosine $\mu=\hat{\mathbf{s}}_1\cdot\hat{\mathbf{s}}$ of the angle between the comoving distances $\mathbf{s}_1$ and $\mathbf{s} = \mathbf{s}_2 - \mathbf{s}_1$. It can be easily shown that:

\[\mu = \mu(s_1, s_2, y) = \frac{y \, s_2 - s_1}{s(s_1, s_2, y)} \;, -\quad s = s(s_1, s_2, y) = \sqrt{s_1^2 + s^2 - 2 \, s_1 \, s_2 \, y}\]

with $y=\cos\theta=\hat{\mathbf{s}}_1\cdot\hat{\mathbf{s}}_2$ and where $s$ is obtained from the function s. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

See also: s, s2, y

source
GaPSE.s2Function
 s2(s1, s, μ) ::Float64

Return the value $s_2 = \sqrt{s_1^2 + s^2 + 2 \, s_1 \, s \, \mu}$

See also: s, μ, y

source
GaPSE.yFunction
 y(s1, s, y) ::Float64

Return the cosine $y=\cos\theta=\hat{\mathbf{s}}_1\cdot\hat{\mathbf{s}}_2$ of the angle between the comoving distances $\mathbf{s}_1$ and $\mathbf{s}_2 = \mathbf{s}_1 + \mathbf{s}$. It can be easily shown that:

\[y = y(s_1, s, \mu) = \frac{\mu \, s + s_1}{s_2(s_1, s, \mu)} \;, -\quad s_2 = s_2(s_1, s, \mu) = \sqrt{s_1^2 + s^2 + 2 \, s_1 \, s \, \mu}\]

with $\mu=\hat{\mathbf{s}}_1\cdot\hat{\mathbf{s}}$ and where $s_2$ is obtained from the function s2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

See also: s, s2, μ

source
GaPSE.ϕFunction
 ϕ(s, s_min, s_max) ::Float64

Radial part of the survey window function. Return 1.0 if is true that $s_\mathrm{min} < s < s_\mathrm{max}$ and 0.0 otherwise.

In this software we made the assuption that the survey window function can be separated into a radial and angular part, i.e.:

\[ \phi(\mathbf{s}) = \phi(s) \, W(\mathbf{\hat{s}})\]

See also: W

source
GaPSE.WFunction
 W(θ, θ_max) ::Float64

Angular part of the survey window function. Return 1.0 if is true that $0 \leq \theta < \theta_\mathrm{max}$ and 0.0 otherwise. It is implicitly assumed an azimutal simmetry of the survey.

In this software we made the assuption that the survey window function can be separated into a radial and angular part, i.e.:

\[ \phi(\mathbf{s}) = \phi(s) \, W(\mathbf{\hat{s}})\]

See also: ϕ

source
GaPSE.V_surveyFunction
 V_survey(s_min, s_max, θ_max) ::Float64

Return the volume of a survey with azimutal simmetry, i.e.:

\[\begin{split} +\frac{ + \int \mathrm{d}^3\mathbf{s} \, \phi^2(\mathbf{s}) \, z(s) + }{ + \int \mathrm{d}^3\mathbf{s}\, \phi^2(\mathbf{s}) + } &= \frac{ + \int_0^\infty \mathrm{d}s \, s^2 \, \phi^2(s) \, z(s) \times + \int_{4\pi}\mathrm{d}^2\hat{\mathbf{s}} \, W^2(\hat{\mathbf{s}}) + }{ + \int_0^\infty \mathrm{d}s \, s^2 \, \phi^2(s)\times + \int_{4\pi}\mathrm{d}^2\hat{\mathbf{s}} \, W^2(\hat{\mathbf{s}}) + } \\[5pt] + &= \frac{ + \int_0^\infty \mathrm{d}s \, s^2 \, \phi^2(s) \, z(s) + }{ + \int_0^\infty \mathrm{d}s \, s^2 \, \phi^2(s) + } \\[4pt] + &= \frac{3}{s_\mathrm{max}^3 - s_\mathrm{min}^3} \, + \int_{s_\mathrm{min}}^{s_\mathrm{max}} \mathrm{d}s \, s^2 \, z(s) \; . +\end{split}\]

We have used our assuption concerning the separability of the window function of the survey $\phi(\mathbf{s})$ into a radial and angular part, respectively $\phi(s)$ and $W(\mathbf{\hat{s}})$:

\[ \phi(\mathbf{s}) = \phi(s) \, W(\mathbf{\hat{s}}) \; .\]

We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$. The final integration over $\mathrm{d}s$ is performed through the function quadgk of the QuadGK.jl Julia package.

See also: ϕ, W

source
GaPSE.sFunction
s(s1, s2, y) ::Float64

Return the value $s = s(s_1, s_2, y) = \sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$

See also: μ, s2, y

source
GaPSE.μFunction
μ(s1, s2, y) ::Float64

Return the cosine $\mu=\hat{\mathbf{s}}_1\cdot\hat{\mathbf{s}}$ of the angle between the comoving distances $\mathbf{s}_1$ and $\mathbf{s} = \mathbf{s}_2 - \mathbf{s}_1$. It can be easily shown that:

\[\mu = \mu(s_1, s_2, y) = \frac{y \, s_2 - s_1}{s(s_1, s_2, y)} \;, +\quad s = s(s_1, s_2, y) = \sqrt{s_1^2 + s^2 - 2 \, s_1 \, s_2 \, y}\]

with $y=\cos\theta=\hat{\mathbf{s}}_1\cdot\hat{\mathbf{s}}_2$ and where $s$ is obtained from the function s. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

See also: s, s2, y

source
GaPSE.s2Function
s2(s1, s, μ) ::Float64

Return the value $s_2 = \sqrt{s_1^2 + s^2 + 2 \, s_1 \, s \, \mu}$

See also: s, μ, y

source
GaPSE.yFunction
y(s1, s, y) ::Float64

Return the cosine $y=\cos\theta=\hat{\mathbf{s}}_1\cdot\hat{\mathbf{s}}_2$ of the angle between the comoving distances $\mathbf{s}_1$ and $\mathbf{s}_2 = \mathbf{s}_1 + \mathbf{s}$. It can be easily shown that:

\[y = y(s_1, s, \mu) = \frac{\mu \, s + s_1}{s_2(s_1, s, \mu)} \;, +\quad s_2 = s_2(s_1, s, \mu) = \sqrt{s_1^2 + s^2 + 2 \, s_1 \, s \, \mu}\]

with $\mu=\hat{\mathbf{s}}_1\cdot\hat{\mathbf{s}}$ and where $s_2$ is obtained from the function s2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

See also: s, s2, μ

source
GaPSE.ϕFunction
ϕ(s, s_min, s_max) ::Float64

Radial part of the survey window function. Return 1.0 if is true that $s_\mathrm{min} < s < s_\mathrm{max}$ and 0.0 otherwise.

In this software we made the assuption that the survey window function can be separated into a radial and angular part, i.e.:

\[ \phi(\mathbf{s}) = \phi(s) \, W(\mathbf{\hat{s}})\]

See also: W

source
GaPSE.WFunction
W(θ, θ_max) ::Float64

Angular part of the survey window function. Return 1.0 if is true that $0 \leq \theta < \theta_\mathrm{max}$ and 0.0 otherwise. It is implicitly assumed an azimutal simmetry of the survey.

In this software we made the assuption that the survey window function can be separated into a radial and angular part, i.e.:

\[ \phi(\mathbf{s}) = \phi(s) \, W(\mathbf{\hat{s}})\]

See also: ϕ

source
GaPSE.V_surveyFunction
V_survey(s_min, s_max, θ_max) ::Float64

Return the volume of a survey with azimutal simmetry, i.e.:

\[\begin{split} V(s_\mathrm{max}, s_\mathrm{min}, \theta_\mathrm{max}) &= \; C_\mathrm{up} - C_\mathrm{down} + TC \\ &C_\mathrm{up} = \frac{\pi}{3} s_\mathrm{max}^3 \, (1 - \cos\theta_\mathrm{max})^2 \, (2 + \cos\theta_\mathrm{max}) \\ @@ -30,8 +30,8 @@ &TC = \frac{\pi}{3} (s_\mathrm{max}^2 + s_\mathrm{min}^2 + s_\mathrm{max} \,s_\mathrm{min}) \, (s_\mathrm{max} - s_\mathrm{min})\, \cos\theta_\mathrm{max}\, \sin^2\theta_\mathrm{max} -\end{split}\]

source
GaPSE.AFunction
 A(s_min, s_max, θ_max) ::Float64

Return the Power Spectrum multipole normalization coefficient A, i.e.:

\[ A(s_\mathrm{max}, s_\mathrm{min}, \theta_\mathrm{max})= - \frac{ - V(s_\mathrm{max}, s_\mathrm{min}, \theta_\mathrm{max}) - }{4 \, \pi^2}\]

where $V(s_\mathrm{max}, s_\mathrm{min}, \theta_\mathrm{max})$ is the survey volume.

Pay attention: this is NOT used for the normalization of PS, see instead A_prime

See also: V_survey

source
GaPSE.A_primeConstant
 A_prime :: Float64

It's the Power Spectrum multipole normalization coefficient $A^{'}$, i.e.:

\[ A^{'} = \frac{3 \, A}{ (s_\mathrm{max}^3 - s_\mathrm{min}^3)} = - \frac{1}{4\,\pi}\]

See also: A, V_survey

source
+\end{split}\]

source
GaPSE.AFunction
A(s_min, s_max, θ_max) ::Float64

Return the Power Spectrum multipole normalization coefficient A, i.e.:

\[ A(s_\mathrm{max}, s_\mathrm{min}, \theta_\mathrm{max})= + \frac{ + V(s_\mathrm{max}, s_\mathrm{min}, \theta_\mathrm{max}) + }{4 \, \pi^2}\]

where $V(s_\mathrm{max}, s_\mathrm{min}, \theta_\mathrm{max})$ is the survey volume.

Pay attention: this is NOT used for the normalization of InputPS, see instead A_prime

See also: V_survey

source
GaPSE.A_primeConstant
A_prime :: Float64

It's the Power Spectrum multipole normalization coefficient $A^{'}$, i.e.:

\[ A^{'} = \frac{3 \, A}{ (s_\mathrm{max}^3 - s_\mathrm{min}^3)} = + \frac{1}{4\,\pi}\]

See also: A, V_survey

source
GaPSE.corresponding_redshiftFunction
corresponding_redshift(z, m, file_data::String; names_bg=NAMES_BACKGROUND, h_0=0.7, Z_MAX = 1e3)

For a given file_data containing the csomological background quantities (that will be managed by the struct BackgroundData), return the redshift corresponding (for that cosmology) to the comoving distance equals to m * s(z), where z is the input redshift and m a coeffient.

Essentially, in a sketch:

Input z, m -> Computes s1 = s(z) -> Computes s2 = m * s1 -> Return z2 = z(s2)

This function is not efficient, it should be used only in order to have a rough estimation for the maximum sampling value of the Integrated Window Function.

Optional arguments

  • names = NAMES_BACKGROUND : the column names of the file_data. If the colum order change from the default one NAMES_BACKGROUND, you must set as input the vector of string with the correct one, with the SAME names. They are, with the default order:

    ["z", "proper time [Gyr]", "conf. time [Mpc]", "H [1/Mpc]", "comov. dist.", "ang.diam.dist.", "lum. dist.", "comov.snd.hrz.", "(.)rhog", "(.)rhob", "(.)rhocdm", "(.)rholambda", "(.)rhour", "(.)rhocrit", "gr.fac. D", "gr.fac. f"]

  • h = 0.7 : the adimensional hubble constant. By default, CLASS background data are measured with it numerically expressed (so distances are measured in Mpc, for example), while this code works with h in the unit of measure (so distances are measured in Mpc/h, for example). Change this value to 1.0 if the input data do not have this issue, or to your value of interest (0.67, 0.5, ...).

  • Z_MAX = 1e3 : maximum redshift to consider for BackgroundData; it should be high.

See also: BackgroundData, WindowFIntegrated

source
diff --git a/dev/Cosmology/index.html b/dev/Cosmology/index.html index a77aa73e..565cac59 100644 --- a/dev/Cosmology/index.html +++ b/dev/Cosmology/index.html @@ -1,76 +1,113 @@ -Cosmology Struct · GaPSE.jl

Cosmology struct

GaPSE.func_ℛ_LDFunction
 func_ℛ_LD(s, ℋ; s_lim=0.01, ℋ_0 = ℋ0)

Given in inpuit a comoving distance s and a comoving Hubble parameter , this function returns the following value:

\[\mathscr{R}_\mathrm{LD}(s, \mathcal{H})= -\begin{cases} -1 - \frac{1}{\mathcal{H} \, s} \; , - \quad s > s_\mathrm{lim}\\ -1 - \frac{1}{\mathcal{H}_0 \, s_\mathrm{lim}} \; , - \quad \quad 0 \leq s \leq s_\mathrm{lim} -\end{cases}\]

The $0 \leq s \leq s_\mathrm{lim}$ case is used in order to avoid the divergence of the denominator. This function is used inside a Cosmology for the computations concering the Two-Point Correlation Fuctions (TPCFs) relative to the perturbed Luminosity Distance (LD). The default value of the comoving Hubble parameter nowadays is, in natural system (where the speed of light c=1): $\mathcal{H}_0 \simeq 3.335641\times10^{-4} \; h_0^{-1}\mathrm{Mpc}$

See also: func_ℛ_GNC, Cosmology, ℋ0

source
GaPSE.func_ℛ_GNCFunction
 func_ℛ_GNC(s, ℋ, ℋ_p; s_b = 0.0, 𝑓_evo = 0.0, s_lim=0.01, ℋ_0 = ℋ0)

Given in input a comoving distance s, a comoving Hubble parameter and its first derivative value ℋ_p wrt the comoving time $\tau$, this function returns the following value:

\[\mathscr{R}_\mathrm{GNC}(s, \mathcal{H}; s_{\mathrm{b}})= -\begin{cases} -5 s_{\mathrm{b}} + \frac{2 - 5 s_{\mathrm{b}}}{\mathcal{H} \, s} + - \frac{\dot{\mathcal{H}}}{\mathcal{H}^2} - \mathit{f}_{\mathrm{evo}}\; , - \quad s > s_\mathrm{lim}\\ -1 - \frac{1}{\mathcal{H}_0 \, s_\mathrm{lim}} -5 s_{\mathrm{b}} + \frac{2 - 5 s_{\mathrm{b}}}{\mathcal{H}_0 \, s_\mathrm{lim}} + - \frac{\dot{\mathcal{H}}}{\mathcal{H}_0^2} - \mathit{f}_{\mathrm{evo}}\; , - \quad \quad 0 \leq s \leq s_\mathrm{lim} -\end{cases}\]

where $s_{\mathrm{b}}$ is the magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), $\mathit{f}_{\mathrm{evo}}$ the evolution bias and $\dot{\mathcal{H}} = \mathrm{d}\mathcal{H} / \mathrm{d}\tau$.

The $0 \leq s \leq s_\mathrm{lim}$ case is used in order to avoid the divergence of the denominator. This function is used inside a Cosmology for the computations concering the Two-Point Correlation Fuctions (TPCFs) relative to the Galaxy Number Counts (GNC). The default value of the comoving Hubble parameter nowadays is, in natural system (where the speed of light c=1): $\mathcal{H}_0 \simeq 3.335641\times10^{-4} \; h_0^{-1}\mathrm{Mpc}$

See also: func_ℛ_GNC, Cosmology, ℋ0

source
Missing docstring.

Missing docstring for GaPSE.CosmoSplines. Check Documenter's build log for details.

GaPSE.CosmologyType
 Cosmology(
-      IPS::InputPS
-      params::CosmoParams
-      tools::IPSTools
-      windowF::WindowF
+Cosmology Struct · GaPSE.jl

Cosmology struct

GaPSE.func_ℛ_LDFunction
func_ℛ_LD(s, ℋ; s_lim=0.01, ℋ_0 = ℋ0)

Given in inpuit a comoving distance s and a comoving Hubble parameter , this function returns the following value:

\[\mathfrak{R}(s; s_{\mathrm{lim}})= + \begin{cases} + 1 - \frac{1}{\mathcal{H} \, s} \; , + \quad s > s_\mathrm{lim}\\ + 1 - \frac{1}{\mathcal{H}_0 \, s_\mathrm{lim}} \; , + \quad \quad 0 \leq s \leq s_\mathrm{lim} + \end{cases}\]

The $0 \leq s \leq s_\mathrm{lim}$ case is used in order to avoid the divergence of the denominator. This function is used inside a Cosmology for the computations concering the Two-Point Correlation Fuctions (TPCFs) relative to the perturbed Luminosity Distance (LD). The default value of the comoving Hubble parameter nowadays is, in natural system (where the speed of light c=1): $\mathcal{H}_0 \simeq 3.335641\times10^{-4} \; h_0^{-1}\mathrm{Mpc}$

See also: func_ℛ_GNC, Cosmology, ℋ0

source
GaPSE.func_ℛ_GNCFunction
func_ℛ_GNC(s, ℋ, ℋ_p; s_b = 0.0, 𝑓_evo = 0.0, s_lim=0.01, ℋ_0 = ℋ0)

Given in input a comoving distance s, a comoving Hubble parameter and its first derivative value ℋ_p wrt the comoving time $\tau$, this function returns the following value:

\[\mathcal{R}(s; s_{\mathrm{lim}})= + \begin{cases} + 5 s_{\mathrm{b}} + \frac{2 - 5 s_{\mathrm{b}}}{\mathcal{H} \, s} + + \frac{\dot{\mathcal{H}}}{\mathcal{H}^2} - \mathit{f}_{\mathrm{evo}}\; , + \quad s > s_\mathrm{lim}\\ + 5 s_{\mathrm{b}} + + \frac{2 - 5 s_{\mathrm{b}}}{\mathcal{H}_0 \, s_\mathrm{lim}} + + \frac{\dot{\mathcal{H}}}{\mathcal{H}_0^2} - \mathit{f}_{\mathrm{evo}}\; , + \quad \quad 0 \leq s \leq s_\mathrm{lim} + \end{cases}\]

where $s_{\mathrm{b}}$ is the magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), $\mathit{f}_{\mathrm{evo}}$ the evolution bias and $\dot{\mathcal{H}} = \mathrm{d}\mathcal{H} / \mathrm{d}\tau$.

The $0 \leq s \leq s_\mathrm{lim}$ case is used in order to avoid the divergence of the denominator. This function is used inside a Cosmology for the computations concering the Two-Point Correlation Fuctions (TPCFs) relative to the Galaxy Number Counts (GNC). The default value of the comoving Hubble parameter nowadays is, in natural system (where the speed of light c=1): $\mathcal{H}_0 \simeq 3.335641\times10^{-4} \; h_0^{-1}\mathrm{Mpc}$

See also: func_ℛ_GNC, Cosmology, ℋ0

source
GaPSE.CosmoSplinesType
CosmoSplines(
+    z_of_s::Dierckx.Spline1D
+    D_of_s::Dierckx.Spline1D
+    f_of_s::Dierckx.Spline1D
+    ℋ_of_s::Dierckx.Spline1D
+    ℋ_p_of_s::Dierckx.Spline1D
+    ℛ_LD_of_s::Dierckx.Spline1D
+    ℛ_GNC1_of_s::Dierckx.Spline1D
+    ℛ_GNC2_of_s::Dierckx.Spline1D
 
-      z_of_s::Dierckx.Spline1D
-      D_of_s::Dierckx.Spline1D
-      f_of_s::Dierckx.Spline1D
-      ℋ_of_s::Dierckx.Spline1D
-      ℋ_p_of_s::Dierckx.Spline1D
-      ℛ_LD_of_s::Dierckx.Spline1D
-      ℛ_GNC_of_s::Dierckx.Spline1D
+    s_of_z::Dierckx.Spline1D
 
-      s_of_z::Dierckx.Spline1D
+    z_eff::Float64
+    s_min::Float64
+    s_max::Float64
+    s_eff::Float64
 
-      z_eff::Float64
-      s_min::Float64
-      s_max::Float64
-      s_eff::Float64
+    file_data::String
+    names::Vector{String}
+    z_min::Float64
+    z_max::Float64
+    h::Float64
+    s_lim::Float64
+    z_spline_lim::Float64
+    s_spline_lim::Float64
 
-      volume::Float64
+    s_b1::Float64
+    𝑓_evo1::Float64
+    s_b2::Float64
+    𝑓_evo2::Float64
+)

Struct that contains all the useful cosmological splines. It is used only inside the creation of a Cosmology, check its documentation for further information.

Constructors

CosmoSplines(
+    file_data::String, z_min, z_max; 
+    names::Vector{String} = NAMES_BACKGROUND, h=0.7, 
+    s_lim = 0.01, z_spline_lim=1000.0, s_b1=0.0, s_b2=nothing,
+    𝑓_evo1=0.0, 𝑓_evo2=nothing
+    )
  • file_data::String : file containing all the background data; it is expected that such file is a background output of the CLASS (link: https://github.com/lesgourg/class_public) code. It is managed through the struct BackgroundData.

  • z_min and z_max : the minimum and maximum redshifts of the survey we want to study.

  • names = NAMES_BACKGROUND : the column names of the file_data. If the colum order change from the default one NAMES_BACKGROUND, you must set as input the vector of string with the correct one, with the SAME names. They are, with the default order:

    ["z", "proper time [Gyr]", "conf. time [Mpc]", "H [1/Mpc]", "comov. dist.", "ang.diam.dist.", "lum. dist.", "comov.snd.hrz.", "(.)rhog", "(.)rhob", "(.)rhocdm", "(.)rholambda", "(.)rhour", "(.)rhocrit", "gr.fac. D", "gr.fac. f"]

  • h::Float64 : today's Hubble adimensional parameter (H_0 = h * 100 km/(s * Mpc)).

  • s_lim::Float64 : the lower-bound value for the functions func_ℛ_LD and func_ℛ_GNC; it is necessary, because ℛ_LD and ℛ_GNC blows up for $s \rightarrow 0^{+}$. Consequently, if the func_ℛ_LD/func_ℛ_GNC input value is 0 ≤ s < s_lim, the returned value is always func_ℛ_LD(s_lim)/func_ℛ_GNC(s_lim).

  • z_spline_lim::Float64 : the upper limit where to cut the cosmological splines (it will be used by CosmoSplines); the recommended value is the recombination era (i.e. $z \simeq 1000$).

  • s_spline_lim::Float64 : the comoving distance converted from the redshift z_spline_lim with the spline s_of_z;

  • s_b1::Float64 and s_b2::Float64: magnification biases, i.e. the slope of the luminosity function at the luminosity threshold; you can choose to define both of them (if you are interested in the analysis of two galaxy species) or only the former (and leave the latter as nothing, it will be set equal to the former).

  • 𝑓_evo1::Float64 and 𝑓_evo2::Float64: evolution biases; you can choose to define both of them (if you are interested in the analysis of two galaxy species) or only the former (and leave the latter as nothing, it will be set equal to the former).

See also: Cosmology

source
GaPSE.CosmologyType
Cosmology(
+    IPS::InputPS
+    params::CosmoParams
+    tools::IPSTools
+    windowF::WindowF
 
-      file_data::String
-      file_ips::String
-      file_windowF::String
-      )

Struct that contains all the information that may be used for the Two-Point Correlation Function (TPCF) computations. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

Arguments

  • IPS::InputPS : the matter Input Power Spectrum at present day of the Universe we are focusiong on.

  • params::CosmoParams : options and parameters decided for this Cosmology; check the documentation of CosmoParams for more information.

  • tools::IPSTools : all the functions and integrals depending on the Input Power Spectrum; check the documentation of IPSTools for more information.

  • windowF::WindowF : the window function $F$, defined as:

    \[ \begin{split} - F(x,\mu; \theta_\mathrm{max}) = & \;4\pi - \int_0^{\theta_\mathrm{max}} \mathrm{d}\theta_1 \int_0^\pi \mathrm{d} \theta \; - \, \Theta\left(\frac - {x \cos \theta + \cos \theta_1}{\sqrt{x^1+2+2x\mu}} - - \cos(\theta_\mathrm{max}) - \right) - \, \Theta(\mu-\cos(\theta+\theta_1)) \\ - &\Theta(\cos(\theta - \theta_1)-\mu) \; - \frac{\sin\theta\sin\theta_1} - {\sqrt{(\sin\theta\sin\theta_1)^2-(\cos\theta\cos\theta_1-\mu)^2}} - \end{split}\]

  • windowFint::WindowFIntegrated : the Integrated Window Function $\mathcal{F}$, defined as:

    \[\mathcal{F}(s, \mu) = + z_of_s::Dierckx.Spline1D + D_of_s::Dierckx.Spline1D + f_of_s::Dierckx.Spline1D + ℋ_of_s::Dierckx.Spline1D + ℋ_p_of_s::Dierckx.Spline1D + ℛ_LD_of_s::Dierckx.Spline1D + ℛ_GNC1_of_s::Dierckx.Spline1D + ℛ_GNC2_of_s::Dierckx.Spline1D + + s_of_z::Dierckx.Spline1D + + z_eff::Float64 + s_min::Float64 + s_max::Float64 + s_eff::Float64 + s_spline_lim::Float64 + + volume::Float64 + + file_data::String + file_ips::String + file_windowF::String + )

Struct that contains all the information that may be used for the Two-Point Correlation Function (TPCF) computations. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

Arguments

  • IPS::InputPS : the matter Input Power Spectrum at present day of the Universe we are focusiong on.

  • params::CosmoParams : options and parameters decided for this Cosmology; check the documentation of CosmoParams for more information.

  • tools::IPSTools : all the functions and integrals depending on the Input Power Spectrum; check the documentation of IPSTools for more information.

  • windowF::WindowF : the window function $F$, defined as:

    \[ \begin{split} + F(x,\mu; \theta_\mathrm{max}) = & \;4\pi + \int_0^{\theta_\mathrm{max}} \mathrm{d}\theta_1 \int_0^\pi \mathrm{d} \theta \; + \, \Theta\left(\frac + {x \cos \theta + \cos \theta_1}{\sqrt{x^1+2+2x\mu}} - + \cos(\theta_\mathrm{max}) + \right) + \, \Theta(\mu-\cos(\theta+\theta_1)) \\ + &\Theta(\cos(\theta - \theta_1)-\mu) \; + \frac{\sin\theta\sin\theta_1} + {\sqrt{(\sin\theta\sin\theta_1)^2-(\cos\theta\cos\theta_1-\mu)^2}} + \end{split}\]

  • windowFint::WindowFIntegrated : the Integrated Window Function $\mathcal{F}$, defined as:

    \[\mathcal{F}(s, \mu) = \int_0^\infty \mathrm{d}s_1 \, \phi(s_1) \, \phi\left(\sqrt{s_1^2 + s^2 + 2 \, s_1 \, s \, \mu}\right) \, F\left(\frac{s}{s_1}, \mu \right)\]

    where $\phi$ is the angular part of the survey window function and $F(x, μ)$ is the window function.

  • WFI_norm::Float64 : the norm of the Integrate Window Function, obtained from:

    \[\mathrm{norm \, of } \, \mathcal{F} = \frac{1}{2} \int_{-1}^{1} \, \mathrm{d}\mu \, -\mathcal{F}\left(s = 10 \, h_0^{-1}\, \mathrm{Mpc}, \mu\right) \]

  • z_of_s, D_of_s, f_of_s, ℋ_of_s, ℋ_p_of_s, ℛ_LD_of_s, ℛ_GNC_of_s ::Dierckx.Spline1D : splines obtained from the data stored by BackgroundData applied to the input background data file. Given an input comoving distance s, they return the corresponding value of, respectively:

    • the redshift z;
    • the linear growth factor D (normalized to 1.0 at present day);
    • the linear growth rate f;
    • the comoving Hubble parameter ;
    • the derivative of the comoving Hubble parameter wrt the comoving time ℋ_p;
    • ℛ_LD, obtained from func_ℛ_LD and defined as:

    \[ \mathfrak{R} = 1 - \frac{1}{\mathcal{H} \, s}\]

    where $s$ is the comoving distance and \mathcal{H} is comoving Hubble parameter. It's spline is obtained in a sample of point given by 10.0 .^ range(-4, log10(max(comdist...)), length=1000).

    • ℛ_GNC, obtained from func_ℛ_GNC and defined as:

    \[ \mathcal{R} = 5 s_{\mathrm{b}} + \frac{2 - 5 s_{\mathrm{b}}}{\mathcal{H} \, s} + - \frac{\dot{\mathcal{H}}}{\mathcal{H}^2} - \mathit{f}_{\mathrm{evo}}\]

    where$s$ is the comoving distance, \mathcal{H} is comoving Hubble parameter, $s_{\mathrm{b}}$ is the magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), $\mathit{f}_{\mathrm{evo}}$ the evolution bias and $\dot{\mathcal{H}} = \mathrm{d}\mathcal{H} / \mathrm{d}\tau$ the first derivative of the comoving Hubble parameter wrt the comoving time $\tau$. It's spline is obtained in a sample of point given by 10.0 .^ range(-4, log10(max(comdist...)), length=1000).

  • s_of_z ::Dierckx.Spline1D : spline that returns the value of the comoving distance s corresponding to an input redshift z. Also this spline is obtained from the data stored by BackgroundData applied to the input background data file.

  • z_eff::Float64 : effective redshift of this survey; its value is obtained through the function func_z_eff, with inputs the s_min, s_max and z_of_s here stored.

  • s_min::Float64 and s_max::Float64 : the minimum and maximum comoving distances of the survey considered; they are the corresponding comoving distance to the chosen minimum and maximum redshifts z_min and z_max, stored in the input CosmoParams.

  • s_eff::Float64 : the corresponding comoving distance to the computed effective redshifts z_eff.

  • volume::Float64 : volume of this survey. It is computed applying the function V_survey with inputs s_min, s_max here stored and the θ_max in the input CosmoParams.

  • file_data, file_ips, file_windowF::String : the file names used for this Cosmology.

Constructors

Cosmology(
-      params::CosmoParams,
-      file_data::String,
-      file_ips::String,
-      file_windowF::String,
-      file_IntwindowF::String;
-      names_bg = NAMES_BACKGROUND)
  • params::CosmoParams : parameters to be used for this Cosmology. See the docstring of CosmoParams for more information on the possible inputs.

  • file_data::String : file containing all the background data; it is expected that such file is a background output of the CLASS code. It is managed through the struct BackgroundData.

  • file_ips::String : file containing the Input Power Spectrum at present day; it is expected that such file is a Power Spectrum output of the CLASS code. It is managed through the struct InputPS.

  • file_windowF::String : file containing a map of the window function F. This file is managed through the struct WindowF, and can be produced with the function print_map_F; see their docstrings for more information.

  • file_IntwindowF::String : file containing a map of the Integrated Window Function \mathcal{F}. This file is managed through the struct WindowFIntegrated, and can be produced with the function print_map_IntegartedF; see their docstrings for more information.

  • names = NAMES_BACKGROUND : the column names of the file_data. If the colum order change from the default one NAMES_BACKGROUND, you must set as input the vector of string with the correct one, with the SAME names. They are, with the default order:

    ["z", "proper time [Gyr]", "conf. time [Mpc]", "H [1/Mpc]", "comov. dist.", "ang.diam.dist.", "lum. dist.", "comov.snd.hrz.", "(.)rhog", "(.)rhob", "(.)rhocdm", "(.)rholambda", "(.)rhour", "(.)rhocrit", "gr.fac. D", "gr.fac. f"]

See also: CosmoParams, InputPS, IPSTools, BackgroundData, WindowF, WindowFIntegrated, print_map_F, print_map_IntegratedF, func_z_eff, V_survey, func_ℛ_LD, func_ℛ_GNC,

source
GaPSE.PointType
 Point(
-      z::Float64
-      comdist::Float64
-      D::Float64
-      f::Float64
-      ℋ::Float64
-      ℋ_p::Float64
-      ℛ_LD::Float64
-      ℛ_GNC::Float64
-      a::Float64
-      )

A point in the Universe, placed at redshift z from us. It contains all the relevant cosmological information at that redshift, respectively:

  • the redshift z;
  • the comoving distance s;
  • the linear growth factor D (normalized to 1.0 at present day);
  • the linear growth rate f;
  • the comoving Hubble parameter ;
  • the first derivative ℋ_p of the comoving Hubble parameter wrt the comoving time $\tau$;
  • the derivative of the comoving Hubble parameter wrt the comoving time ℋ_p;
  • ℛ_LD, obtained from func_ℛ_LD and defined as:

    \[\mathfrak{R} = 1 - \frac{1}{\mathcal{H} \, s}\]

    where $s$ is the comoving distance and \mathcal{H} is comoving Hubble parameter.
  • ℛ_GNC, obtained from func_ℛ_GNC and defined as:

    \[\mathcal{R} = 5 s_{\mathrm{b}} + \frac{2 - 5 s_{\mathrm{b}}}{\mathcal{H} \, s} + -\frac{\dot{\mathcal{H}}}{\mathcal{H}^2} - \mathit{f}_{\mathrm{evo}}\]

    where$s$ is the comoving distance, \mathcal{H} is comoving Hubble parameter, $s_{\mathrm{b}}$ is the magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), $\mathit{f}_{\mathrm{evo}}$ the evolution bias and $\dot{\mathcal{H}} = \mathrm{d}\mathcal{H} / \mathrm{d}\tau$ the first derivative of the comoving Hubble parameter wrt the comoving time $\tau$.
  • the scale factor a (normalized to 1.0 at present day);

We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

Constructors

Point(s, cosmo::Cosmology) : given a comoving distance s, it extrapolates all the data from the given input Cosmology.

See also: Cosmology

source
+\mathcal{F}\left(s = 10 \, h_0^{-1}\, \mathrm{Mpc}, \mu\right) \]

  • z_of_s, D_of_s, f_of_s, ℋ_of_s, ℋ_p_of_s, ℛ_LD_of_s, ℛ_GNC1_of_s, ℛ_GNC2_of_s ::Dierckx.Spline1D : splines obtained from the data stored by BackgroundData applied to the input background data file. Given an input comoving distance s, they return the corresponding value of, respectively:

    • the redshift z;
    • the linear growth factor D (normalized to 1.0 at present day);
    • the linear growth rate f;
    • the comoving Hubble parameter ;
    • the derivative of the comoving Hubble parameter wrt the comoving time ℋ_p;
    • ℛ_LD, obtained from func_ℛ_LD and defined as:

    \[ \mathfrak{R} = 1 - \frac{1}{\mathcal{H} \, s}\]

    where $s$ is the comoving distance and \mathcal{H} is comoving Hubble parameter. It's spline is obtained in a sample of point given by 10.0 .^ range(-4, log10(max(comdist...)), length=1000).

    • ℛ_GNC, obtained from func_ℛ_GNC and defined as:

    \[ \mathcal{R} = 5 s_{\mathrm{b}} + \frac{2 - 5 s_{\mathrm{b}}}{\mathcal{H} \, s} + + \frac{\dot{\mathcal{H}}}{\mathcal{H}^2} - \mathit{f}_{\mathrm{evo}}\]

    where$s$ is the comoving distance, \mathcal{H} is comoving Hubble parameter, $s_{\mathrm{b}}$ is the magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), $\mathit{f}_{\mathrm{evo}}$ the evolution bias and $\dot{\mathcal{H}} = \mathrm{d}\mathcal{H} / \mathrm{d}\tau$ the first derivative of the comoving Hubble parameter wrt the comoving time $\tau$. It's spline is obtained in a sample of point given by 10.0 .^ range(-4, log10(max(comdist...)), length=1000). NOTE: there are two of these splines in case you are taking into account two galaxies species (which have different values for galaxy, magnification and evolutionary biases); if you don't (i.e. you set only the first species values in CosmoParams) the two splines coincide.

  • s_of_z ::Dierckx.Spline1D : spline that returns the value of the comoving distance s corresponding to an input redshift z. Also this spline is obtained from the data stored by BackgroundData applied to the input background data file.

  • z_eff::Float64 : effective redshift of this survey; its value is obtained through the function func_z_eff, with inputs the s_min, s_max and z_of_s here stored.

  • s_min::Float64 and s_max::Float64 : the minimum and maximum comoving distances of the survey considered; they are the corresponding comoving distance to the chosen minimum and maximum redshifts z_min and z_max, stored in the input CosmoParams.

  • s_eff::Float64 : the corresponding comoving distance to the computed effective redshifts z_eff.

  • s_spline_lim::Float64 : the comoving distance converted from the redshift z_spline_lim with the spline s_of_z; z_spline_lim is the upper limit where to cut the cosmological splines, the recommended value is the recombination era (i.e. $z \simeq 1000$); it is set in CosmoParams.

  • volume::Float64 : volume of this survey. It is computed applying the function V_survey with inputs s_min, s_max here stored and the θ_max in the input CosmoParams.

  • file_data, file_ips, file_windowF::String : the file names used for this Cosmology.

  • Constructors

    Cosmology(
    +    params::CosmoParams,
    +    file_data::String,
    +    file_ips::String,
    +    file_windowF::String,
    +    file_IntwindowF::String;
    +    names_bg = NAMES_BACKGROUND)

    See also: CosmoParams, InputPS, IPSTools, BackgroundData, WindowF, WindowFIntegrated, print_map_F, print_map_IntegratedF, func_z_eff, V_survey, func_ℛ_LD, func_ℛ_GNC,

    source
    GaPSE.PointType
    Point(
    +    z::Float64
    +    comdist::Float64
    +    D::Float64
    +    f::Float64
    +    ℋ::Float64
    +    ℋ_p::Float64
    +    ℛ_LD::Float64
    +    ℛ_GNC::Float64
    +    a::Float64
    +    )

    A point in the Universe, placed at redshift z from us. It contains all the relevant cosmological information at that redshift, respectively:

    • the redshift z;

    • the comoving distance s;

    • the linear growth factor D (normalized to 1.0 at present day);

    • the linear growth rate f;

    • the comoving Hubble parameter ;

    • the first derivative ℋ_p of the comoving Hubble parameter wrt the comoving time $\tau$;

    • the derivative of the comoving Hubble parameter wrt the comoving time ℋ_p;

    • ℛ_LD, obtained from func_ℛ_LD and defined as:

      \[\mathfrak{R} = 1 - \frac{1}{\mathcal{H} \, s}\]

      where $s$ is the comoving distance and \mathcal{H} is comoving Hubble parameter.

    • ℛ_GNC, obtained from func_ℛ_GNC and defined as:

      \[\mathcal{R} = 5 s_{\mathrm{b}} + \frac{2 - 5 s_{\mathrm{b}}}{\mathcal{H} \, s} + +\frac{\dot{\mathcal{H}}}{\mathcal{H}^2} - \mathit{f}_{\mathrm{evo}}\]

      where$s$ is the comoving distance, \mathcal{H} is comoving Hubble parameter, $s_{\mathrm{b}}$ is the magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), $\mathit{f}_{\mathrm{evo}}$ the evolution bias and $\dot{\mathcal{H}} = \mathrm{d}\mathcal{H} / \mathrm{d}\tau$ the first derivative of the comoving Hubble parameter wrt the comoving time $\tau$. NOTE: there are two of these values in case you are taking into account two galaxies species (which have different values for galaxy, magnification and evolutionary biases); if you don't (i.e. you set only the first species values in CosmoParams) the two splines coincide.

    • the scale factor a (normalized to 1.0 at present day);

    We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    Constructors

    Point(s, cosmo::Cosmology) : given a comoving distance s, it extrapolates all the data from the given input Cosmology.

    See also: Cosmology

    source
    diff --git a/dev/Dicts/index.html b/dev/Dicts/index.html index 5221cb36..ffcddcf0 100644 --- a/dev/Dicts/index.html +++ b/dev/Dicts/index.html @@ -1,167 +1,170 @@ -Dictionaries and names · GaPSE.jl

    Dictionaries and other consts

    GaPSE.VALID_INTEGRATION_ALGORITHMConstant
     const VALID_INTEGRATION_ALGORITHM = [:lobatto, :quad, :trap]

    Valid integration lgorithm that can be used in order to perform an integration over the $\mu$ angle cosine.

    source
    GaPSE.GR_EFFECTS_LDConstant
     const GR_EFFECTS_LD = [
    -      "auto_doppler", "auto_lensing",
    -      "auto_localgp", "auto_integratedgp", 
    -      
    -      "lensing_doppler", "doppler_lensing",
    -      "doppler_localgp", "localgp_doppler",
    -      "doppler_integratedgp", "integratedgp_doppler",
    -      "lensing_localgp", "localgp_lensing",
    -      "lensing_integratedgp", "integratedgp_lensing",
    -      "localgp_integratedgp", "integratedgp_localgp",
    - ]

    The names of the GR effects implemented. Their order is associated with the one in VEC_ξs_LD, so be careful to change it.

    See also: VEC_ξs_LD

    source
    GaPSE.VEC_ξs_LDConstant
     const VEC_ξs_LD = [
    -      ξ_LD_Doppler, ξ_LD_Lensing, ξ_LD_LocalGP, ξ_LD_IntegratedGP, 
    -      ξ_LD_Lensing_Doppler, ξ_LD_Doppler_Lensing,
    -      ξ_LD_Doppler_LocalGP, ξ_LD_LocalGP_Doppler,
    -      ξ_LD_Doppler_IntegratedGP, ξ_LD_IntegratedGP_Doppler,
    -      ξ_LD_Lensing_LocalGP, ξ_LD_LocalGP_Lensing,
    -      ξ_LD_Lensing_IntegratedGP, ξ_LD_IntegratedGP_Lensing,
    -      ξ_LD_LocalGP_IntegratedGP, ξ_LD_IntegratedGP_LocalGP
    - ]

    The names of the GR effect TPCFs implemented. Their order is associated with the one in GR_EFFECTS_LD, so be careful to change it.

    See also: GR_EFFECTS_LD

    source
    GaPSE.DICT_GR_ξs_LDConstant
     const DICT_GR_ξs_LD::Dict{String,Function}

    For an input key string effect from GR_EFFECTS_LD, return the associated TPCF DICT_GR_ξs_LD[effect] from VEC_ξs_LD.

    Example

    julia> GaPSE.DICT_GR_ξs_LD["auto_doppler"]
    -ξ_LD_Doppler

    See also: GR_EFFECTS_LD, VEC_ξs_LD

    source
    GaPSE.INDEX_GR_EFFECT_LDConstant
     const INDEX_GR_EFFECT_LD::Dict{String,Integer}

    For an input key string effect from GR_EFFECTS_LD, return the associated index position in that vector.

    Example

    julia> GaPSE.INDEX_GR_EFFECT_LD["auto_doppler"]
    -1

    See also: GR_EFFECTS_LD

    source
    GaPSE.GR_EFFECT_INDEX_LDConstant
     const GR_EFFECT_INDEX_LD::Dict{Integer,String}

    For an input index position i of GR_EFFECTS_LD, return the associated key string effect.

    Example

    julia> GaPSE.DICT_GR_ξs_LD[1]
    -"auto_doppler"

    See also: GR_EFFECTS_LD

    source
    GaPSE.GR_EFFECTS_GNCConstant
     const GR_EFFECTS_GNC = [
    -      "auto_newton", "auto_doppler", "auto_lensing",
    -      "auto_localgp", "auto_integratedgp", 
    -      
    -      "newton_doppler", "doppler_newton",
    -      "newton_lensing", "lensing_newton",
    -      "newton_localgp", "localgp_newton",
    -      "newton_integratedgp", "integratedgp_newton",
    -      "lensing_doppler", "doppler_lensing",
    -      "doppler_localgp", "localgp_doppler",
    -      "doppler_integratedgp", "integratedgp_doppler",
    -      "lensing_localgp", "localgp_lensing",
    -      "lensing_integratedgp", "integratedgp_lensing",
    -      "localgp_integratedgp", "integratedgp_localgp",
    - ]

    The names of the GR effects implemented. Their order is associated with the one in VEC_ξs_GNC, so be careful to change it.

    See also: VEC_ξs_GNC

    source
    GaPSE.VEC_ξs_GNCConstant
     const VEC_ξs_GNC = [
    -      ξ_GNC_Newtonian, ξ_GNC_Doppler, ξ_GNC_Lensing,
    -      ξ_GNC_LocalGP, ξ_GNC_IntegratedGP, 
    -      
    -      ξ_GNC_Newtonian_Doppler, ξ_GNC_Doppler_Newtonian,
    -      ξ_GNC_Newtonian_Lensing, ξ_GNC_Lensing_Newtonian,
    -      ξ_GNC_Newtonian_LocalGP, ξ_GNC_LocalGP_Newtonian,
    -      ξ_GNC_Newtonian_IntegratedGP, ξ_GNC_IntegratedGP_Newtonian,
    -      ξ_GNC_Lensing_Doppler, ξ_GNC_Doppler_Lensing,
    -      ξ_GNC_Doppler_LocalGP, ξ_GNC_LocalGP_Doppler,
    -      ξ_GNC_Doppler_IntegratedGP, ξ_GNC_IntegratedGP_Doppler,
    -      ξ_GNC_Lensing_LocalGP, ξ_GNC_LocalGP_Lensing,
    -      ξ_GNC_Lensing_IntegratedGP, ξ_GNC_IntegratedGP_Lensing,
    -      ξ_GNC_LocalGP_IntegratedGP, ξ_GNC_IntegratedGP_LocalGP
    - ]

    The names of the GR effect TPCFs implemented. Their order is associated with the one in GR_EFFECTS_GNC, so be careful to change it.

    See also: GR_EFFECTS_GNC

    source
    GaPSE.DICT_GR_ξs_GNCConstant
     const DICT_GR_ξs_GNC::Dict{String,Function}

    For an input key string effect from GR_EFFECTS_GNC, return the associated TPCF DICT_GR_ξs_GNC[effect] from VEC_ξs_GNC.

    Example

    julia> GaPSE.DICT_GR_ξs_GNC["auto_doppler"]
    -ξ_GNC_Doppler

    See also: GR_EFFECTS_GNC, VEC_ξs_GNC

    source
    GaPSE.DICT_ξs_GR_GNCConstant
     const DICT_GR_ξs_GNC::Dict{Function,String}

    For an input key TPCF function func from VEC_ξs_GNC, return the associated string DICT_GR_ξs_GNC[func] from GR_EFFECTS_GNC,

    Example

    julia> GaPSE.DICT_GR_ξs_GNC[ξ_GNC_Doppler]
    -"auto_doppler"

    See also: GR_EFFECTS_GNC, VEC_ξs_GNC

    source
    GaPSE.INDEX_GR_EFFECT_GNCConstant
     const INDEX_GR_EFFECT_GNC::Dict{String,Integer}

    For an input key string effect from GR_EFFECTS_GNC, return the associated index position in that vector.

    Example

    julia> GaPSE.INDEX_GR_EFFECT_GNC["auto_doppler"]
    -1

    See also: GR_EFFECTS_GNC

    source
    GaPSE.GR_EFFECT_INDEX_GNCConstant
     const GR_EFFECT_INDEX_GNC::Dict{Integer,String}

    For an input index position i of GR_EFFECTS_GNC, return the associated key string effect.

    Example

    julia> GaPSE.DICT_GR_ξs_GNC[1]
    -"auto_doppler"

    See also: GR_EFFECTS_GNC

    source
    GaPSE.EFFECTS_WITH_OBS_VELConstant
     const EFFECTS_WITH_OBS_VEL = [
    -      "auto_doppler",
    -      "newton_doppler", "doppler_newton",
    -      "lensing_doppler", "doppler_lensing",
    -      "doppler_localgp", "localgp_doppler",
    -      "doppler_integratedgp", "integratedgp_doppler",
    - ]

    Contains the names of the GNC effects that have observer terms derived from a non-zero observer velocity.

    source
    GaPSE.VALID_OBS_VALUESConstant
     const VALID_OBS_VALUES = [:yes, :no, :noobsvel]

    Contains the valid Symbols for the variable "obs", which refers to the GNC terms related to the observer.

    source
    GaPSE.GR_EFFECTS_GNCxLDConstant
     const GR_EFFECTS_GNCxLD = [
    -      "newton_doppler", 
    -      "newton_lensing", 
    -      "newton_localgp", 
    -      "newton_integratedgp",
    +Dictionaries and names · GaPSE.jl

    Dictionaries and other consts

    GaPSE.VALID_INTEGRATION_ALGORITHMConstant
    const VALID_INTEGRATION_ALGORITHM = [:lobatto, :quad, :trap]

    Valid integration lgorithm that can be used in order to perform an integration over the $\mu$ angle cosine.

    source
    GaPSE.VALID_KWARGS_GNCConstant
    const VALID_KWARGS_GNC = [
    +    :L, :use_windows, :alg, :obs,
    +    :N_trap, :N_lob, :atol_quad, :rtol_quad,
    +    :N_χs :N_χs_2, :pr, :suit_sampling]

    Valid keyword argument names for the GNC function group.

    source
    GaPSE.GR_EFFECTS_LDConstant
    const GR_EFFECTS_LD = [
    +    "auto_doppler", "auto_lensing",
    +    "auto_localgp", "auto_integratedgp", 
    +    
    +    "lensing_doppler", "doppler_lensing",
    +    "doppler_localgp", "localgp_doppler",
    +    "doppler_integratedgp", "integratedgp_doppler",
    +    "lensing_localgp", "localgp_lensing",
    +    "lensing_integratedgp", "integratedgp_lensing",
    +    "localgp_integratedgp", "integratedgp_localgp",
    +]

    The names of the GR effects implemented. Their order is associated with the one in VEC_ξs_LD, so be careful to change it.

    See also: VEC_ξs_LD

    source
    GaPSE.VEC_ξs_LDConstant
    const VEC_ξs_LD = [
    +    ξ_LD_Doppler, ξ_LD_Lensing, ξ_LD_LocalGP, ξ_LD_IntegratedGP, 
    +    ξ_LD_Lensing_Doppler, ξ_LD_Doppler_Lensing,
    +    ξ_LD_Doppler_LocalGP, ξ_LD_LocalGP_Doppler,
    +    ξ_LD_Doppler_IntegratedGP, ξ_LD_IntegratedGP_Doppler,
    +    ξ_LD_Lensing_LocalGP, ξ_LD_LocalGP_Lensing,
    +    ξ_LD_Lensing_IntegratedGP, ξ_LD_IntegratedGP_Lensing,
    +    ξ_LD_LocalGP_IntegratedGP, ξ_LD_IntegratedGP_LocalGP
    +]

    The names of the GR effect TPCFs implemented. Their order is associated with the one in GR_EFFECTS_LD, so be careful to change it.

    See also: GR_EFFECTS_LD

    source
    GaPSE.DICT_GR_ξs_LDConstant
    const DICT_GR_ξs_LD::Dict{String,Function}

    For an input key string effect from GR_EFFECTS_LD, return the associated TPCF DICT_GR_ξs_LD[effect] from VEC_ξs_LD.

    Example

    julia> GaPSE.DICT_GR_ξs_LD["auto_doppler"]
    +ξ_LD_Doppler

    See also: GR_EFFECTS_LD, VEC_ξs_LD

    source
    GaPSE.INDEX_GR_EFFECT_LDConstant
    const INDEX_GR_EFFECT_LD::Dict{String,Integer}

    For an input key string effect from GR_EFFECTS_LD, return the associated index position in that vector.

    Example

    julia> GaPSE.INDEX_GR_EFFECT_LD["auto_doppler"]
    +1

    See also: GR_EFFECTS_LD

    source
    GaPSE.GR_EFFECT_INDEX_LDConstant
    const GR_EFFECT_INDEX_LD::Dict{Integer,String}

    For an input index position i of GR_EFFECTS_LD, return the associated key string effect.

    Example

    julia> GaPSE.DICT_GR_ξs_LD[1]
    +"auto_doppler"

    See also: GR_EFFECTS_LD

    source
    GaPSE.GR_EFFECTS_GNCConstant
    const GR_EFFECTS_GNC = [
    +    "auto_newton", "auto_doppler", "auto_lensing",
    +    "auto_localgp", "auto_integratedgp", 
    +    
    +    "newton_doppler", "doppler_newton",
    +    "newton_lensing", "lensing_newton",
    +    "newton_localgp", "localgp_newton",
    +    "newton_integratedgp", "integratedgp_newton",
    +    "lensing_doppler", "doppler_lensing",
    +    "doppler_localgp", "localgp_doppler",
    +    "doppler_integratedgp", "integratedgp_doppler",
    +    "lensing_localgp", "localgp_lensing",
    +    "lensing_integratedgp", "integratedgp_lensing",
    +    "localgp_integratedgp", "integratedgp_localgp",
    +]

    The names of the GR effects implemented. Their order is associated with the one in VEC_ξs_GNC, so be careful to change it.

    See also: VEC_ξs_GNC

    source
    GaPSE.VEC_ξs_GNCConstant
    const VEC_ξs_GNC = [
    +    ξ_GNC_Newtonian, ξ_GNC_Doppler, ξ_GNC_Lensing,
    +    ξ_GNC_LocalGP, ξ_GNC_IntegratedGP, 
    +    
    +    ξ_GNC_Newtonian_Doppler, ξ_GNC_Doppler_Newtonian,
    +    ξ_GNC_Newtonian_Lensing, ξ_GNC_Lensing_Newtonian,
    +    ξ_GNC_Newtonian_LocalGP, ξ_GNC_LocalGP_Newtonian,
    +    ξ_GNC_Newtonian_IntegratedGP, ξ_GNC_IntegratedGP_Newtonian,
    +    ξ_GNC_Lensing_Doppler, ξ_GNC_Doppler_Lensing,
    +    ξ_GNC_Doppler_LocalGP, ξ_GNC_LocalGP_Doppler,
    +    ξ_GNC_Doppler_IntegratedGP, ξ_GNC_IntegratedGP_Doppler,
    +    ξ_GNC_Lensing_LocalGP, ξ_GNC_LocalGP_Lensing,
    +    ξ_GNC_Lensing_IntegratedGP, ξ_GNC_IntegratedGP_Lensing,
    +    ξ_GNC_LocalGP_IntegratedGP, ξ_GNC_IntegratedGP_LocalGP
    +]

    The names of the GR effect TPCFs implemented. Their order is associated with the one in GR_EFFECTS_GNC, so be careful to change it.

    See also: GR_EFFECTS_GNC

    source
    GaPSE.DICT_GR_ξs_GNCConstant
    const DICT_GR_ξs_GNC::Dict{String,Function}

    For an input key string effect from GR_EFFECTS_GNC, return the associated TPCF DICT_GR_ξs_GNC[effect] from VEC_ξs_GNC.

    Example

    julia> GaPSE.DICT_GR_ξs_GNC["auto_doppler"]
    +ξ_GNC_Doppler

    See also: GR_EFFECTS_GNC, VEC_ξs_GNC

    source
    GaPSE.DICT_ξs_GR_GNCConstant
    const DICT_GR_ξs_GNC::Dict{Function,String}

    For an input key TPCF function func from VEC_ξs_GNC, return the associated string DICT_GR_ξs_GNC[func] from GR_EFFECTS_GNC,

    Example

    julia> GaPSE.DICT_GR_ξs_GNC[ξ_GNC_Doppler]
    +"auto_doppler"

    See also: GR_EFFECTS_GNC, VEC_ξs_GNC

    source
    GaPSE.INDEX_GR_EFFECT_GNCConstant
    const INDEX_GR_EFFECT_GNC::Dict{String,Integer}

    For an input key string effect from GR_EFFECTS_GNC, return the associated index position in that vector.

    Example

    julia> GaPSE.INDEX_GR_EFFECT_GNC["auto_doppler"]
    +1

    See also: GR_EFFECTS_GNC

    source
    GaPSE.GR_EFFECT_INDEX_GNCConstant
    const GR_EFFECT_INDEX_GNC::Dict{Integer,String}

    For an input index position i of GR_EFFECTS_GNC, return the associated key string effect.

    Example

    julia> GaPSE.DICT_GR_ξs_GNC[1]
    +"auto_doppler"

    See also: GR_EFFECTS_GNC

    source
    GaPSE.EFFECTS_WITH_OBS_VELConstant
    const EFFECTS_WITH_OBS_VEL = [
    +    "auto_doppler",
    +    "newton_doppler", "doppler_newton",
    +    "lensing_doppler", "doppler_lensing",
    +    "doppler_localgp", "localgp_doppler",
    +    "doppler_integratedgp", "integratedgp_doppler",
    +]

    Contains the names of the GNC effects that have observer terms derived from a non-zero observer velocity.

    source
    GaPSE.VALID_OBS_VALUESConstant
    const VALID_OBS_VALUES = [:yes, :no, :noobsvel]

    Contains the valid Symbols for the variable "obs", which refers to the GNC terms related to the observer.

    source
    GaPSE.GR_EFFECTS_GNCxLDConstant
    const GR_EFFECTS_GNCxLD = [
    +    "newton_doppler", 
    +    "newton_lensing", 
    +    "newton_localgp", 
    +    "newton_integratedgp",
     
    -      "doppler_doppler",
    -      "doppler_lensing",
    -      "doppler_localgp", 
    -      "doppler_integratedgp",
    +    "doppler_doppler",
    +    "doppler_lensing",
    +    "doppler_localgp", 
    +    "doppler_integratedgp",
     
    -      "lensing_doppler",
    -      "lensing_lensing",
    -      "lensing_localgp",
    -      "lensing_integratedgp",
    -      
    -      "localgp_doppler",
    -      "localgp_lensing",
    -      "localgp_localgp",
    -      "localgp_integratedgp",
    +    "lensing_doppler",
    +    "lensing_lensing",
    +    "lensing_localgp",
    +    "lensing_integratedgp",
    +    
    +    "localgp_doppler",
    +    "localgp_lensing",
    +    "localgp_localgp",
    +    "localgp_integratedgp",
     
    -      "integratedgp_doppler",
    -      "integratedgp_lensing",
    -      "integratedgp_localgp",
    -      "integratedgp_integratedgp",
    - ]

    The names of the GR effects implemented. Their order is associated with the one in VEC_ξs_GNCxLD, so be careful to change it.

    See also: VEC_ξs_GNCxLD

    source
    GaPSE.GR_EFFECTS_LDxGNCConstant
     const GR_EFFECTS_LDxGNC = [
    -      "doppler_newton", 
    -      "lensing_newton", 
    -      "localgp_newton", 
    -      "integratedgp_newton",
    +    "integratedgp_doppler",
    +    "integratedgp_lensing",
    +    "integratedgp_localgp",
    +    "integratedgp_integratedgp",
    +]

    The names of the GR effects implemented. Their order is associated with the one in VEC_ξs_GNCxLD, so be careful to change it.

    See also: VEC_ξs_GNCxLD

    source
    GaPSE.GR_EFFECTS_LDxGNCConstant
    const GR_EFFECTS_LDxGNC = [
    +    "doppler_newton", 
    +    "lensing_newton", 
    +    "localgp_newton", 
    +    "integratedgp_newton",
     
    -      "doppler_doppler",
    -      "lensing_doppler",
    -      "localgp_doppler", 
    -      "integratedgp_doppler",
    +    "doppler_doppler",
    +    "lensing_doppler",
    +    "localgp_doppler", 
    +    "integratedgp_doppler",
     
    -      "doppler_lensing",
    -      "lensing_lensing",
    -      "localgp_lensing",
    -      "integratedgp_lensing",
    -      
    -      "doppler_localgp",
    -      "lensing_localgp",
    -      "localgp_localgp",
    -      "integratedgp_localgp",
    +    "doppler_lensing",
    +    "lensing_lensing",
    +    "localgp_lensing",
    +    "integratedgp_lensing",
    +    
    +    "doppler_localgp",
    +    "lensing_localgp",
    +    "localgp_localgp",
    +    "integratedgp_localgp",
     
    -      "doppler_integratedgp",
    -      "lensing_integratedgp",
    -      "localgp_integratedgp",
    -      "integratedgp_integratedgp",
    - ]

    The names of the GR effects implemented. Their order is associated with the one in VEC_ξs_LDxGNC, so be careful to change it.

    See also: VEC_ξs_LDxGNC

    source
    GaPSE.VEC_ξs_GNCxLDConstant
     const VEC_ξs_GNCxLD = [
    -      ξ_GNCxLD_Newtonian_Doppler,
    -      ξ_GNCxLD_Newtonian_Lensing, 
    -      ξ_GNCxLD_Newtonian_LocalGP, 
    -      ξ_GNCxLD_Newtonian_IntegratedGP, 
    +    "doppler_integratedgp",
    +    "lensing_integratedgp",
    +    "localgp_integratedgp",
    +    "integratedgp_integratedgp",
    +]

    The names of the GR effects implemented. Their order is associated with the one in VEC_ξs_LDxGNC, so be careful to change it.

    See also: VEC_ξs_LDxGNC

    source
    GaPSE.VEC_ξs_GNCxLDConstant
    const VEC_ξs_GNCxLD = [
    +    ξ_GNCxLD_Newtonian_Doppler,
    +    ξ_GNCxLD_Newtonian_Lensing, 
    +    ξ_GNCxLD_Newtonian_LocalGP, 
    +    ξ_GNCxLD_Newtonian_IntegratedGP, 
     
    -      ξ_GNCxLD_Doppler_Doppler,
    -      ξ_GNCxLD_Doppler_Lensing,
    -      ξ_GNCxLD_Doppler_LocalGP, 
    -      ξ_GNCxLD_Doppler_IntegratedGP, 
    -      
    -      ξ_GNCxLD_Lensing_Doppler,
    -      ξ_GNCxLD_Lensing_Lensing,
    -      ξ_GNCxLD_Lensing_LocalGP,
    -      ξ_GNCxLD_Lensing_IntegratedGP,
    +    ξ_GNCxLD_Doppler_Doppler,
    +    ξ_GNCxLD_Doppler_Lensing,
    +    ξ_GNCxLD_Doppler_LocalGP, 
    +    ξ_GNCxLD_Doppler_IntegratedGP, 
    +    
    +    ξ_GNCxLD_Lensing_Doppler,
    +    ξ_GNCxLD_Lensing_Lensing,
    +    ξ_GNCxLD_Lensing_LocalGP,
    +    ξ_GNCxLD_Lensing_IntegratedGP,
     
    -      ξ_GNCxLD_LocalGP_Doppler,
    -      ξ_GNCxLD_LocalGP_Lensing,
    -      ξ_GNCxLD_LocalGP_LocalGP,
    -      ξ_GNCxLD_LocalGP_IntegratedGP,
    +    ξ_GNCxLD_LocalGP_Doppler,
    +    ξ_GNCxLD_LocalGP_Lensing,
    +    ξ_GNCxLD_LocalGP_LocalGP,
    +    ξ_GNCxLD_LocalGP_IntegratedGP,
     
    -      ξ_GNCxLD_IntegratedGP_Doppler,
    -      ξ_GNCxLD_IntegratedGP_Lensing,
    -      ξ_GNCxLD_IntegratedGP_LocalGP,
    -      ξ_GNCxLD_IntegratedGP_IntegratedGP,
    - ]

    The names of the GR effect TPCFs implemented. Their order is associated with the one in GR_EFFECTS_GNCxLD, so be careful to change it.

    See also: GR_EFFECTS_GNCxLD

    source
    GaPSE.VEC_ξs_LDxGNCConstant
     const VEC_ξs_LDxGNC = [
    -      ξ_LDxGNC_Doppler_Newtonian,
    -      ξ_LDxGNC_Lensing_Newtonian,
    -      ξ_LDxGNC_LocalGP_Newtonian,
    -      ξ_LDxGNC_IntegratedGP_Newtonian,
    +    ξ_GNCxLD_IntegratedGP_Doppler,
    +    ξ_GNCxLD_IntegratedGP_Lensing,
    +    ξ_GNCxLD_IntegratedGP_LocalGP,
    +    ξ_GNCxLD_IntegratedGP_IntegratedGP,
    +]

    The names of the GR effect TPCFs implemented. Their order is associated with the one in GR_EFFECTS_GNCxLD, so be careful to change it.

    See also: GR_EFFECTS_GNCxLD

    source
    GaPSE.VEC_ξs_LDxGNCConstant
    const VEC_ξs_LDxGNC = [
    +    ξ_LDxGNC_Doppler_Newtonian,
    +    ξ_LDxGNC_Lensing_Newtonian,
    +    ξ_LDxGNC_LocalGP_Newtonian,
    +    ξ_LDxGNC_IntegratedGP_Newtonian,
     
    -      ξ_LDxGNC_Doppler_Doppler,
    -      ξ_LDxGNC_Lensing_Doppler,
    -      ξ_LDxGNC_LocalGP_Doppler,
    -      ξ_LDxGNC_IntegratedGP_Doppler,
    +    ξ_LDxGNC_Doppler_Doppler,
    +    ξ_LDxGNC_Lensing_Doppler,
    +    ξ_LDxGNC_LocalGP_Doppler,
    +    ξ_LDxGNC_IntegratedGP_Doppler,
     
    -      ξ_LDxGNC_Doppler_Lensing,
    -      ξ_LDxGNC_Lensing_Lensing,
    -      ξ_LDxGNC_LocalGP_Lensing,
    -      ξ_LDxGNC_IntegratedGP_Lensing,
    +    ξ_LDxGNC_Doppler_Lensing,
    +    ξ_LDxGNC_Lensing_Lensing,
    +    ξ_LDxGNC_LocalGP_Lensing,
    +    ξ_LDxGNC_IntegratedGP_Lensing,
     
    -      ξ_LDxGNC_Doppler_LocalGP,
    -      ξ_LDxGNC_Lensing_LocalGP,
    -      ξ_LDxGNC_LocalGP_LocalGP,
    -      ξ_LDxGNC_IntegratedGP_LocalGP,
    +    ξ_LDxGNC_Doppler_LocalGP,
    +    ξ_LDxGNC_Lensing_LocalGP,
    +    ξ_LDxGNC_LocalGP_LocalGP,
    +    ξ_LDxGNC_IntegratedGP_LocalGP,
     
    -      ξ_LDxGNC_Doppler_IntegratedGP,
    -      ξ_LDxGNC_Lensing_IntegratedGP,
    -      ξ_LDxGNC_LocalGP_IntegratedGP,
    -      ξ_LDxGNC_IntegratedGP_IntegratedGP,
    - ]

    The names of the GR effect TPCFs implemented. Their order is associated with the one in GR_EFFECTS_LDxGNC, so be careful to change it.

    See also: GR_EFFECTS_LDxGNC

    source
    GaPSE.DICT_GR_ξs_GNCxLDConstant
     const DICT_GR_ξs_GNCxLD::Dict{String,Function}

    For an input key string effect from GR_EFFECTS_GNCxLD, return the associated TPCF DICT_GR_ξs_GNCxLD[effect] from VEC_ξs_GNCxLD.

    Example

    julia> GaPSE.DICT_GR_ξs_GNCxLD["lensing_doppler"]
    -ξ_GNCxLD_Lensing_Doppler

    See also: GR_EFFECTS_GNCxLD, VEC_ξs_GNCxLD

    source
    GaPSE.DICT_GR_ξs_LDxGNCConstant
     const DICT_GR_ξs_LDxGNC::Dict{String,Function}

    For an input key string effect from GR_EFFECTS_LDxGNC, return the associated TPCF DICT_GR_ξs_LDxGNC[effect] from VEC_ξs_v.

    Example

    julia> GaPSE.DICT_GR_ξs_LDxGNC["lensing_doppler"]
    -ξ_LDxGNC_Lensing_Doppler

    See also: GR_EFFECTS_LDxGNC, VEC_ξs_LDxGNC

    source
    GaPSE.INDEX_GR_EFFECT_GNCxLDConstant
     const INDEX_GR_EFFECT_GNCxLD::Dict{String,Integer}

    For an input key string effect from GR_EFFECTS_GNCxLD, return the associated index position in that vector.

    Example

    julia> GaPSE.INDEX_GR_EFFECT_GNCxLD["newton_lensing"]
    -2

    See also: GR_EFFECTS_GNCxLD

    source
    GaPSE.INDEX_GR_EFFECT_LDxGNCConstant
     const INDEX_GR_EFFECT_LDxGNC::Dict{String,Integer}

    For an input key string effect from GR_EFFECTS_LDxGNC, return the associated index position in that vector.

    Example

    julia> GaPSE.INDEX_GR_EFFECT_LDxGNC["lensing_newton"]
    -2

    See also: GR_EFFECTS_LDxGNC

    source
    GaPSE.GR_EFFECT_INDEX_GNCxLDConstant
     const GR_EFFECT_INDEX_GNCxLD::Dict{Integer,String}

    For an input index position i of GR_EFFECTS_GNCxLD, return the associated key string effect.

    Example

    julia> GaPSE.DICT_GR_ξs_GNCxLD[2]
    -"newton_doppler"

    See also: GR_EFFECTS_GNCxLD

    source
    GaPSE.GR_EFFECT_INDEX_LDxGNCConstant
     const GR_EFFECT_INDEX_LDxGNC::Dict{Integer,String}

    For an input index position i of GR_EFFECTS_LDxGNC, return the associated key string effect.

    Example

    julia> GaPSE.DICT_GR_ξs_LDxGNC[2]
    -"doppler_newton"

    See also: GR_EFFECTS_LDxGNC

    source
    + ξ_LDxGNC_Doppler_IntegratedGP, + ξ_LDxGNC_Lensing_IntegratedGP, + ξ_LDxGNC_LocalGP_IntegratedGP, + ξ_LDxGNC_IntegratedGP_IntegratedGP, +]

    The names of the GR effect TPCFs implemented. Their order is associated with the one in GR_EFFECTS_LDxGNC, so be careful to change it.

    See also: GR_EFFECTS_LDxGNC

    source
    GaPSE.DICT_GR_ξs_GNCxLDConstant
    const DICT_GR_ξs_GNCxLD::Dict{String,Function}

    For an input key string effect from GR_EFFECTS_GNCxLD, return the associated TPCF DICT_GR_ξs_GNCxLD[effect] from VEC_ξs_GNCxLD.

    Example

    julia> GaPSE.DICT_GR_ξs_GNCxLD["lensing_doppler"]
    +ξ_GNCxLD_Lensing_Doppler

    See also: GR_EFFECTS_GNCxLD, VEC_ξs_GNCxLD

    source
    GaPSE.DICT_GR_ξs_LDxGNCConstant
    const DICT_GR_ξs_LDxGNC::Dict{String,Function}

    For an input key string effect from GR_EFFECTS_LDxGNC, return the associated TPCF DICT_GR_ξs_LDxGNC[effect] from VEC_ξs_v.

    Example

    julia> GaPSE.DICT_GR_ξs_LDxGNC["lensing_doppler"]
    +ξ_LDxGNC_Lensing_Doppler

    See also: GR_EFFECTS_LDxGNC, VEC_ξs_LDxGNC

    source
    GaPSE.INDEX_GR_EFFECT_GNCxLDConstant
    const INDEX_GR_EFFECT_GNCxLD::Dict{String,Integer}

    For an input key string effect from GR_EFFECTS_GNCxLD, return the associated index position in that vector.

    Example

    julia> GaPSE.INDEX_GR_EFFECT_GNCxLD["newton_lensing"]
    +2

    See also: GR_EFFECTS_GNCxLD

    source
    GaPSE.INDEX_GR_EFFECT_LDxGNCConstant
    const INDEX_GR_EFFECT_LDxGNC::Dict{String,Integer}

    For an input key string effect from GR_EFFECTS_LDxGNC, return the associated index position in that vector.

    Example

    julia> GaPSE.INDEX_GR_EFFECT_LDxGNC["lensing_newton"]
    +2

    See also: GR_EFFECTS_LDxGNC

    source
    GaPSE.GR_EFFECT_INDEX_GNCxLDConstant
    const GR_EFFECT_INDEX_GNCxLD::Dict{Integer,String}

    For an input index position i of GR_EFFECTS_GNCxLD, return the associated key string effect.

    Example

    julia> GaPSE.DICT_GR_ξs_GNCxLD[2]
    +"newton_doppler"

    See also: GR_EFFECTS_GNCxLD

    source
    GaPSE.GR_EFFECT_INDEX_LDxGNCConstant
    const GR_EFFECT_INDEX_LDxGNC::Dict{Integer,String}

    For an input index position i of GR_EFFECTS_LDxGNC, return the associated key string effect.

    Example

    julia> GaPSE.DICT_GR_ξs_LDxGNC[2]
    +"doppler_newton"

    See also: GR_EFFECTS_LDxGNC

    source
    diff --git a/dev/GNC_Correlations/index.html b/dev/GNC_Correlations/index.html deleted file mode 100644 index 28992b0a..00000000 --- a/dev/GNC_Correlations/index.html +++ /dev/null @@ -1,1386 +0,0 @@ - -GNC · GaPSE.jl

    GNC TPCFs

    Two-Point Auto-Correlation Functions

    GaPSE.ξ_GNC_NewtonianFunction
     ξ_GNC_Newtonian(P1::Point, P2::Point, y, cosmo::Cosmology; 
    -      obs::Union{Bool, Symbol} = :noobsvel) ::Float64
    -
    - ξ_GNC_Newtonian(s1, s2, y, cosmo::Cosmology; 
    -      kwargs...) ::Float64

    Return the Two-Point Correlation Function (TPCF) of the Newtonian auto-correlation effect arising from the Galaxy Number Counts (GNC).

    In the first method, you should pass the two Point (P1 and P2) where to evaluate the function, while in the second method (that internally recalls the first) you must provide the two corresponding comoving distances s1 and s2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this term is the following:

    \[\begin{split} - \xi^{\delta\delta} ( s_1 , s_2 , y ) = D_1 D_2 - \left[ - J_{00}^{\delta\delta} I_0^0 (s) + - J_{02}^{\delta\delta} I_2^0 (s) + - J_{04}^{\delta\delta} I_4^0 (s) - \right] \, , -\end{split}\]

    where

    \[\begin{split} - J_{00}^{\delta\delta} &= \frac{1}{15} - \left[ - 15 b_1 b_2 + 5 b_1 f_2 + 5 b_2 f_1 + - (2 y^2 + 1) f_1 f_2 - \right] - \, , \\ - %%%%%%%%%%%%%%%%%% - J_{02}^{\delta\delta} &= - \frac{1}{21 s^2} - \left\{ - s_1^2 \left[ - 14 b_2 f_1 + - 7 b_1 f_2 (3 y^2 - 1) + - (11 y^2 + 1) f_1 f_2 - \right] \right. \\ - &\left.\qquad \qquad - + s_2^2 \left[ - 14 b_1 f_2 + - 7 b_2 f_1 (3 y^2 - 1) + - (11 y^2 + 1) f_1 f_2 - \right] \right. \\ - &\left. \qquad \qquad - - 4 y s_1 s_2 \left[ - 7 b_2 f_1 + 7 b_1 f_2 + - (y^2 + 5) f_1 f_2 - \right] - \right\} - \, , \\ - %%%%%%%%%%%%%%%%%% - J_{04}^{\delta\delta} &= \frac{f_1 f_2}{35 s^4} - \left[ - 4 (3 y^2 - 1) (s_1^4 + s_2^4) + - 3 (3 + y^2)^2 s_1^2 s_2^2 - - 8 y s_1 s_2 (s_1^2 + s_2^2) (3 + y^2) - \right] - \, . -\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + -\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $b_1 = b(s_1)$, $s_{\mathrm{b}, 1} = s_{\mathrm{b}}(s_1)$, $\mathit{f}_{\mathrm{evo}}$, ... : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias (the first two evaluated in $s_1$); they are all stored in cosmo;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , -\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    In this TPCF there are no observer terms. The obs keyword is inserted only for compatibility with the other GNC TPCFs.

    Inputs

    • P1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • obs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?
      • :yes or true -> all the observer effects will be considered
      • :no or false -> no observer term will be taken into account
      • :noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole

    source
    GaPSE.ξ_GNC_DopplerFunction
     ξ_GNC_Doppler(P1::Point, P2::Point, y, cosmo::Cosmology; 
    -    obs::Union{Bool, Symbol} = :noobsvel) ::Float64
    -
    - ξ_GNC_Doppler(s1, s2, y, cosmo::Cosmology; 
    -    kwargs...) ::Float64

    Return the Two-Point Correlation Function (TPCF) of the Doppler auto-correlation effect arising from the Galaxy Number Counts (GNC).

    In the first method, you should pass the two Point (P1 and P2) where to evaluate the function, while in the second method (that internally recalls the first) you must provide the two corresponding comoving distances s1 and s2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this term is the following:

    \[\begin{split} - \xi^{v_{\parallel} v_{\parallel}}( s_1, s_2 , y ) &= - D_1 D_2 J_{\alpha}^{v_{\parallel} v_{\parallel}} - \left[ - J_{\beta}^{v_{\parallel} v_{\parallel}} - \left( - \frac{1}{45} I_0^0(s) + - \frac{2}{63} I_2^0 (s) + - \frac{1}{105} I_4^0(s) - \right) + - J^{v_{\parallel} v_{\parallel}}_{20} I_0^2 (s) - \right] - \\ - & + D_1 \left[ - J^{v_{\parallel} v_{\parallel}}_{31} ( s_1 , s_2) I_1^3 (s_1) + - J^{v_{\parallel} v_{\parallel}}_{11} ( s_1 , s_2) I_1^1 (s_1) + - J^{v_{\parallel} v_{\parallel}}_{13} ( s_1 ,s_2) I_3^1 (s_1) - \right] - \\ - & + D_2 \left[ - J^{v_{\parallel} v_{\parallel}}_{31} ( s_2 , s_1) I_1^3 (s_2) + - J^{v_{\parallel} v_{\parallel}}_{11} ( s_2 , s_1) I_1^1 (s_2) + - J^{v_{\parallel} v_{\parallel}}_{13} ( s_2 , s_1) I_3^1 (s_2) - \right] - \\ - & + J^{v_{\parallel} v_{\parallel}}_{\sigma2} \sigma_2 \, , -\end{split}\]

    with

    \[\begin{split} - J_{\alpha}^{v_{\parallel} v_{\parallel}} &= - f_1 f_2\mathcal{H}_1 \mathcal{H}_2 \mathcal{R}_1 \mathcal{R}_2 - \, , \\ - %%%%%%%%%%%%%% - J_{\beta}^{v_{\parallel} v_{\parallel}} &= - y^2 s_1 s_2 - 2 y (s_1^2 + s_2^2) + 3 s_1 s_2 - \, , \\ - %%%%%%%%%%%%%% - J_{20}^{v_{\parallel} v_{\parallel}} &= - \frac{1}{3} y s^2 - \, , \\ - %%%%%%%%%%%%%% - J_{31}^{v_{\parallel} v_{\parallel}} (s_1, s_2) &= - -y f_0 \mathcal{H}_0 s_1^2 f_1 \mathcal{R}_1 (\mathcal{R}_2 - 5 s_{\mathrm{b}, 2} + 2) - \, , \\ - %%%%%%%%%%%%%% - J_{11}^{v_{\parallel} v_{\parallel}} (s_1, s_2) &= - \frac{1}{5} y f_0 \mathcal{H}_0 s_1^2 f_1 \mathcal{H}_1 \mathcal{R}_1 - (\mathcal{R}_2 - 5 s_{\mathrm{b}, 2} + 2) - \, , \\ - %%%%%%%%%%%%%% - J_{13}^{v_{\parallel} v_{\parallel}} (s_1, s_2) &= - \frac{1}{5} y f_0 \mathcal{H}_0 s_1^2 f_1 \mathcal{H}_1 \mathcal{R}_1 - (\mathcal{R}_2 - 5 s_{\mathrm{b}, 2} + 2) - \, , \\ - %%%%%%%%%%%%%% - J_{\sigma2}^{v_{\parallel} v_{\parallel}} &= - \frac{1}{3} y f_0^2 \mathcal{H}_0^2 (\mathcal{R}_1 - 5 s_{\mathrm{b}, 1} + 2) - (\mathcal{R}_2 - 5 s_{\mathrm{b}, 2} + 2) - \, . -\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + -\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $b_1 = b(s_1)$, $s_{\mathrm{b}, 1} = s_{\mathrm{b}}(s_1)$, $\mathit{f}_{\mathrm{evo}}$, ... : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias (the first two evaluated in $s_1$); they are all stored in cosmo;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , -\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    In this TPCF, the only non-observer term is the first one (i.e. the bracket proportional to $D(s_1) \, D(s_2)$). The other three ones are all observer terms related to the observer velocity, so if you set obs = :no, obs = false or even obs = :noobsvel they will not be computed.

    Inputs

    • P1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • obs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?
      • :yes or true -> all the observer effects will be considered
      • :no or false -> no observer term will be taken into account
      • :noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole

    source
    GaPSE.ξ_GNC_LensingFunction
     ξ_GNC_Lensing(P1::Point, P2::Point, y, cosmo::Cosmology;
    -      obs::Union{Bool, Symbol} = :noobsvel,
    -      en::Float64 = 1e6, Δχ_min::Float64 = 1e-1,
    -      N_χs_2::Int = 100) ::Float64
    -
    - ξ_GNC_Lensing(s1, s2, y, cosmo::Cosmology; 
    -      kwargs...) ::Float64

    Return the Two-Point Correlation Function (TPCF) of the Lensing auto-correlation effect arising from the Galaxy Number Counts (GNC).

    In the first method, you should pass the two Point (P1 and P2) where to evaluate the function, while in the second method (that internally recalls the first) you must provide the two corresponding comoving distances s1 and s2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this term is the following:

    \[\begin{split} - \xi^{\kappa\kappa} (s_1, s_2, y) = - \int_0^{s_1} \mathrm{d}\chi_1 \int_0^{s_2} \mathrm{d}\chi_2\; - J^{\kappa\kappa}_{\alpha} - &\left[ - J^{\kappa\kappa}_{00} I_0^0(\Delta\chi) + - J^{\kappa\kappa}_{02} I_2^0(\Delta\chi) + - \right.\\ - &\left. - J^{\kappa\kappa}_{31} I_1^3(\Delta\chi) + - J^{\kappa\kappa}_{22} I_2^2(\Delta\chi) - \right] \, , -\end{split}\]

    where

    \[\begin{split} - J^{\kappa\kappa}_{\alpha} & = - \frac{ - \mathcal{H}_0^4 \Omega_{\mathrm{M}0}^2 D(\chi_1) D(\chi_2) - }{ - s_1 s_2 a(\chi_1) a(\chi_2)} - (\chi_1 - s_1)(\chi_2 - s_2) - (5 s_{\mathrm{b}, 1} - 2)(5 s_{\mathrm{b}, 2} - 2) - \, , \\ - %%%%&%%%%%%%%%%%%% - J^{\kappa\kappa}_{00} & = - -\frac{ 3 \chi_1^2 \chi_2^2}{4 \Delta\chi^4} (y^2 - 1) - \left[ - 8 y (\chi_1^2 + \chi_2^2) - 9\chi_1\chi_2y^2 - - 7\chi_1\chi_2 - \right] - \, , \\ - %%%%&%%%%%%%%%%%%% - J^{\kappa\kappa}_{02} & = - -\frac{ 3 \chi_1^2 \chi_2^2}{2 \Delta\chi^4}(y^2 - 1) - \left[ - 4 y (\chi_1^2 + \chi_2^2) - 3 \chi_1 \chi_2 y^2 - - 5 \chi_1 \chi_2 - \right] - \, , \\ - %%%%%%%%%%%%%%%%%% - J^{\kappa\kappa}_{31} & = 9 y \Delta\chi^2 - \, , \\ - %%%%%%%%%%%%%%%%%% - J^{\kappa\kappa}_{22} & = - \frac{9 \chi_1 \chi_2}{4 \Delta\chi^4} - \left[ - 2(\chi_1^4 + \chi_2^4)(7 y^2 - 3) - - 16 y \chi_1 \chi_2 (\chi_1^2 + \chi_2^2)(y^2 + 1) + - \right.\\ - &\left.\qquad\qquad\qquad - \chi_1^2 \chi_2^2 (11y^4 + 14y^2 + 23) - \right] - \, . -\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + -\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $b_1 = b(s_1)$, $s_{\mathrm{b}, 1} = s_{\mathrm{b}}(s_1)$, $\mathit{f}_{\mathrm{evo}}$, ... : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias (the first two evaluated in $s_1$); they are all stored in cosmo;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , -\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    In this TPCF there are no observer terms. The obs keyword is inserted only for compatibility with the other GNC TPCFs.

    This function is computed integrating integrand_ξ_GNC_Lensing with trapz from the Trapz Julia package.

    Inputs

    • P1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • obs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?

      • :yes or true -> all the observer effects will be considered
      • :no or false -> no observer term will be taken into account
      • :noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account
    • en::Float64 = 1e6: just a float number used in order to deal better with small numbers;

    • Δχ_min::Float64 = 1e-4 : when $\Delta\chi = \sqrt{\chi_1^2 + \chi_2^2 - 2 \, \chi_1 \chi_2 y} \to 0^{+}$, some $I_\ell^n$ term diverges, but the overall parenthesis has a known limit:

      \[ \lim_{\Delta\chi \to 0^{+}} \left( - J_{00}^{\kappa\kappa} \, I^0_0(\Delta\chi) + - J_{02}^{\kappa\kappa} \, I^0_2(\Delta\chi) + - J_{31}^{\kappa\kappa} \, I^3_1(\Delta\chi) + - J_{22}^{\kappa\kappa} \, I^2_2(\Delta\chi) - \right) = - 3 \, \sigma_2 + \frac{6}{5} \, \chi_2^2 \, \sigma_0\]

      So, when it happens that $\Delta\chi < \Delta\chi_\mathrm{min}$, the function considers this limit as the result of the parenthesis instead of calculating it in the normal way; it prevents computational divergences.

    • N_χs_2::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ1) and (0, s2) (for χ2); it has been checked that with N_χs_2 ≥ 50 the result is stable.

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, integrand_ξ_GNC_Lensing

    source
    GaPSE.ξ_GNC_LocalGPFunction
     ξ_GNC_LocalGP(P1::Point, P2::Point, y, cosmo::Cosmology; 
    -      obs::Union{Bool, Symbol} = :noobsvel) ::Float64
    -
    - ξ_GNC_LocalGP(s1, s2, y, cosmo::Cosmology; 
    -      kwargs...) ::Float64

    Return the Two-Point Correlation Function (TPCF) of the Local Gravitational Potential (GP) auto-correlation effect arising from the Galaxy Number Counts (GNC).

    In the first method, you should pass the two Point (P1 and P2) where to evaluate the function, while in the second method (that internally recalls the first) you must provide the two corresponding comoving distances s1 and s2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this term is the following:

    \[\begin{split} - \xi^{\phi\phi}( s_1 , s_2, y ) &= - D_1 D_2 J_{40}^{\phi\phi}( s_1, s_2 ) \tilde{I}_0^4 (s) - + D_2 J_{40}^{\phi_0 \phi}(s_1,s_2) \tilde{I}_0^4 (s_2) - \\ - &+ D_1 J_{40}^{\phi_0 \phi}(s_2,s_1) \tilde{I}_0^4 (s_1) - + J_{\sigma4}^{\phi\phi} (s_1, s_2) \sigma_4 \, , -\end{split}\]

    where

    \[\begin{split} - J_{40}^{\phi\phi} (s_1, s_2) &= - \frac{s^4}{4 a_1 a_2} - \left[ - 2 a_2 f_2 (\mathit{f}_{\mathrm{evo}, 2} - 3) \mathcal{H}_2^2 + - 3 \mathcal{H}_0^2 \Omega_{\mathrm{M}0} (f_2 + \mathcal{R}_2 + 5 s_{\mathrm{b}, 2} - 2) - \right] \times - \\ - &\qquad\qquad - \left[ - 2 a_1 f_1(\mathit{f}_{\mathrm{evo}, 1}-3) \mathcal{H}_1^2 + - 3 \mathcal{H}_0^2 \Omega_{\mathrm{M}0} (f_1 + \mathcal{R}_1 + 5 s_{\mathrm{b}, 1} - 2) - \right] - \, ,\\ -%%%%%%%%%%%%%%%%% - J_{40}^{\phi_0 \phi}(s_1, s_2) &= - \frac{\mathcal{H}_0 s_2^4}{4 s_1 a_2} - \left[ - \mathcal{H}_0 s_1 (2 f_0-3 \Omega_{\mathrm{M}0}) \mathcal{R}_1 + - 2 f_0 (5 s_{\mathrm{b}, 1}-2) - \right] \times - \\ - &\qquad\qquad\left[ - 2 a_2 f_2 (\mathit{f}_{\mathrm{evo}, 2} - 3) \mathcal{H}_2^2 + - 3 \mathcal{H}_0^2 \Omega_{\mathrm{M}0} (f_2 + \mathcal{R}_2 + 5 s_{\mathrm{b}, 2} - 2) - \right] - \, , \\ -%%%%%%%%%%%%%%%%%%%% - J_{\sigma 4}(s_1, s_2)&= - \frac{\mathcal{H}_0^2 }{4 s_1 s_2} - \left[ - \mathcal{H}_0 s_1 (2 f_0-3 \Omega_{\mathrm{M}0}) \mathcal{R}_1 + - 2 f_0(5 s_{\mathrm{b}, 1}-2) - \right] \times - \\ - &\qquad\qquad\left[ - 3 \Omega_{\mathrm{M}0} \mathcal{H}_0 s_2 \mathcal{R}_2 + - 2 f_0 (\mathcal{H}_0 s_2 \mathcal{R}_2 + 5 s_{\mathrm{b}, 2} - 2) - \right] - \, . -\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + -\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $b_1 = b(s_1)$, $s_{\mathrm{b}, 1} = s_{\mathrm{b}}(s_1)$, $\mathit{f}_{\mathrm{evo}}$, ... : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias (the first two evaluated in $s_1$); they are all stored in cosmo;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , -\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    In this TPCF, the only non-observer term is the first one (i.e. the bracket proportional to $D(s_1) \, D(s_2)$), so if you set obs = :no or obs = false that is the only one computed. The other three terms are all observer terms, but not related to the observer velocity, so if you set obs = :noobsvel they will still be computed.

    Inputs

    • P1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • obs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?
      • :yes or true -> all the observer effects will be considered
      • :no or false -> no observer term will be taken into account
      • :noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole

    source
    GaPSE.ξ_GNC_IntegratedGPFunction
     ξ_GNC_IntegratedGP(
    -      P1::Point, P2::Point, y, cosmo::Cosmology;
    -      en::Float64=1e10, N_χs_2::Int=100, 
    -      obs::Union{Bool,Symbol}=:noobsvel
    -      ) ::Float64
    -
    - ξ_GNC_IntegratedGP(s1, s2, y, cosmo::Cosmology; 
    -      kwargs...) ::Float64

    Return the Two-Point Correlation Function (TPCF) of the Integrated Gravitational Potential (GP) auto-correlation effect arising from the Galaxy Number Counts (GNC).

    In the first method, you should pass the two Point (P1 and P2) where to evaluate the function, while in the second method (that internally recalls the first) you must provide the two corresponding comoving distances s1 and s2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this term is the following:

    \[\begin{split} - \xi^{\int\!\phi \int \!\phi }( s_1 , s_2, y ) = - \int_0^{s_1}\mathrm{d} \chi_1 \int_0^{s_2}\mathrm{d} \chi_2 \; - J^{\int \!\phi \int \!\phi}_{40} - \tilde{I}_0^4 ( \Delta\chi) \, , -\end{split}\]

    where

    \[\begin{split} - J^{\int \!\phi\int \!\phi}_{40} = - \frac{ - 9 \Delta\chi ^4 \mathcal{H}_0^4 \Omega_{\mathrm{M}, 0}^2 D(\chi_1) D(\chi_2) - }{ - a(\chi_1) a(\chi_2) s_1 s_2 - } - &\left[ - s_1 (f(\chi_1) - 1) \mathcal{H}(\chi_1) \mathcal{R}_1 - 5 s_{\mathrm{b}, 1} + 2 - \right] \times - \nonumber \\ - &\left[ - s_2 (f(\chi_2) - 1) \mathcal{H}(\chi_2) \mathcal{R}_2 - 5 s_{\mathrm{b}, 2} + 2 - \right] - \, . -\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + -\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $b_1 = b(s_1)$, $s_{\mathrm{b}, 1} = s_{\mathrm{b}}(s_1)$, $\mathit{f}_{\mathrm{evo}}$, ... : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias (the first two evaluated in $s_1$); they are all stored in cosmo;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , -\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    In this TPCF there are no observer terms. The obs keyword is inserted only for compatibility with the other GNC TPCFs.

    This function is computed integrating integrand_ξ_GNC_IntegratedGP with trapz from the Trapz Julia package.

    Inputs

    • P1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • obs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?

      • :yes or true -> all the observer effects will be considered
      • :no or false -> no observer term will be taken into account
      • :noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account
    • en::Float64 = 1e6: just a float number used in order to deal better with small numbers;

    • N_χs_2::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ1) and (0, s2) (for χ2); it has been checked that with N_χs_2 ≥ 50 the result is stable.

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, integrand_ξ_GNC_IntegratedGP

    source
    GaPSE.integrand_ξ_GNC_LensingFunction
     integrand_ξ_GNC_Lensing(
    -       IP1::Point, IP2::Point,
    -       P1::Point, P2::Point,
    -       y, cosmo::Cosmology;
    -       Δχ_min::Float64=1e-1, 
    -       obs::Union{Bool,Symbol}=:noobsvel
    -       ) ::Float64
    -
    - integrand_ξ_GNC_Lensing(
    -       χ1::Float64, χ2::Float64,
    -       s1::Float64, s2::Float64,
    -       y, cosmo::Cosmology;
    -       kwargs... )::Float64

    Return the integrand of the Two-Point Correlation Function (TPCF) of the Lensing auto-correlation effect arising from the Galaxy Number Counts (GNC).

    In the first method, you should pass the two extreme Points (P1 and P2) and the two intermediate integrand Points (IP1 and IP2) where to evaluate the function. In the second method (that internally recalls the first), you must provide the four corresponding comoving distances s1, s2, χ1, χ2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this integrand is the following:

    \[\begin{equation} - f^{\kappa\kappa} (\chi_1, \chi_2, s_1, s_2, y) = - J^{\kappa\kappa}_{\alpha} - \left[ - J^{\kappa\kappa}_{00} I_0^0(\Delta\chi) + - J^{\kappa\kappa}_{02} I_2^0(\Delta\chi) + - J^{\kappa\kappa}_{31} I_1^3(\Delta\chi) + - J^{\kappa\kappa}_{22} I_2^2(\Delta\chi) - \right] \, , -\end{equation}\]

    where

    \[\begin{split} - J^{\kappa\kappa}_{\alpha} & = - \frac{ - \mathcal{H}_0^4 \Omega_{\mathrm{M}0}^2 D(\chi_1) D(\chi_2) - }{ - s_1 s_2 a(\chi_1) a(\chi_2)} - (\chi_1 - s_1)(\chi_2 - s_2) - (5 s_{\mathrm{b}, 1} - 2)(5 s_{\mathrm{b}, 2} - 2) - \, , \\ - %%%%&%%%%%%%%%%%%% - J^{\kappa\kappa}_{00} & = - -\frac{ 3 \chi_1^2 \chi_2^2}{4 \Delta\chi^4} (y^2 - 1) - \left[ - 8 y (\chi_1^2 + \chi_2^2) - 9\chi_1\chi_2y^2 - - 7\chi_1\chi_2 - \right] - \, , \\ - %%%%&%%%%%%%%%%%%% - J^{\kappa\kappa}_{02} & = - -\frac{ 3 \chi_1^2 \chi_2^2}{2 \Delta\chi^4}(y^2 - 1) - \left[ - 4 y (\chi_1^2 + \chi_2^2) - 3 \chi_1 \chi_2 y^2 - - 5 \chi_1 \chi_2 - \right] - \, , \\ - %%%%%%%%%%%%%%%%%% - J^{\kappa\kappa}_{31} & = 9 y \Delta\chi^2 - \, , \\ - %%%%%%%%%%%%%%%%%% - J^{\kappa\kappa}_{22} & = - \frac{9 \chi_1 \chi_2}{4 \Delta\chi^4} - \left[ - 2(\chi_1^4 + \chi_2^4)(7 y^2 - 3) - - 16 y \chi_1 \chi_2 (\chi_1^2 + \chi_2^2)(y^2 + 1) + - \right.\\ - &\left.\qquad\qquad\qquad - \chi_1^2 \chi_2^2 (11y^4 + 14y^2 + 23) - \right] - \, . -\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + -\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $b_1 = b(s_1)$, $s_{\mathrm{b}, 1} = s_{\mathrm{b}}(s_1)$, $\mathit{f}_{\mathrm{evo}}$, ... : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias (the first two evaluated in $s_1$); they are all stored in cosmo;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , -\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    In this TPCF there are no observer terms. The obs keyword is inserted only for compatibility with the other GNC TPCFs.

    This function is used inside ξ_GNC_Lensing with trapz from the Trapz Julia package.

    Inputs

    • IP1::Point, IP2::Point, P1::Point, P2::Point or χ1, χ2, s1, s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • obs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?

      • :yes or true -> all the observer effects will be considered
      • :no or false -> no observer term will be taken into account
      • :noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account
    • Δχ_min::Float64 = 1e-4 : when $\Delta\chi = \sqrt{\chi_1^2 + \chi_2^2 - 2 \, \chi_1 \chi_2 y} \to 0^{+}$, some $I_\ell^n$ term diverges, but the overall parenthesis has a known limit:

      \[ \lim_{\Delta\chi \to 0^{+}} \left( - J_{00}^{\kappa\kappa} \, I^0_0(\Delta\chi) + - J_{02}^{\kappa\kappa} \, I^0_2(\Delta\chi) + - J_{31}^{\kappa\kappa} \, I^3_1(\Delta\chi) + - J_{22}^{\kappa\kappa} \, I^2_2(\Delta\chi) - \right) = - 3 \, \sigma_2 + \frac{6}{5} \, \chi_2^2 \, \sigma_0\]

      So, when it happens that $\Delta\chi < \Delta\chi_\mathrm{min}$, the function considers this limit as the result of the parenthesis instead of calculating it in the normal way; it prevents computational divergences.

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_Lensing

    source
    GaPSE.integrand_ξ_GNC_IntegratedGPFunction
     integrand_ξ_GNC_IntegratedGP(
    -      IP1::Point, IP2::Point,
    -      P1::Point, P2::Point,
    -      y, cosmo::Cosmology; 
    -      obs::Union{Bool,Symbol}=:noobsvel
    -      ) ::Float64
    -
    - integrand_ξ_GNC_IntegratedGP(
    -      χ1::Float64, χ2::Float64,
    -      s1::Float64, s2::Float64,
    -      y, cosmo::Cosmology;
    -      kwargs...) ::Float64

    Return the integrand of the Two-Point Correlation Function (TPCF) of the Integrated Gravitational Potential (GP) auto-correlation effect arising from the Galaxy Number Counts (GNC).

    In the first method, you should pass the two extreme Points (P1 and P2) and the two intermediate integrand Points (IP1 and IP2) where to evaluate the function. In the second method (that internally recalls the first), you must provide the four corresponding comoving distances s1, s2, χ1, χ2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this integrand is the following:

    \[\begin{equation} - f^{\int \!\phi\int \!\phi} (\chi_1, \chi_2, s_1, s_2, y) = - J^{\int \!\phi \int \!\phi}_{40} - \tilde{I}_0^4 ( \Delta\chi) \, , -\end{equation}\]

    where

    \[\begin{split} - J^{\int \!\phi\int \!\phi}_{40} = - \frac{ - 9 \Delta\chi ^4 \mathcal{H}_0^4 \Omega_{\mathrm{M}0}^2 D(\chi_1) D(\chi_2) - }{ - a(\chi_1) a(\chi_2) s_1 s_2 - } - &\left[ - s_1 (f(\chi_1) - 1) \mathcal{H}(\chi_1) \mathcal{R}_1 - 5 s_{\mathrm{b}, 1} + 2 - \right] \times - \nonumber \\ - &\left[ - s_2 (f(\chi_2) - 1) \mathcal{H}(\chi_2) \mathcal{R}_2 - 5 s_{\mathrm{b}, 2} + 2 - \right] - \, . -\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + -\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $b_1 = b(s_1)$, $s_{\mathrm{b}, 1} = s_{\mathrm{b}}(s_1)$, $\mathit{f}_{\mathrm{evo}}$, ... : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias (the first two evaluated in $s_1$); they are all stored in cosmo;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , -\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    In this TPCF there are no observer terms. The obs keyword is inserted only for compatibility with the other GNC TPCFs.

    This function is used inside ξ_GNC_IntegratedGP with trapz from the Trapz Julia package.

    Inputs

    • IP1::Point, IP2::Point, P1::Point, P2::Point or χ1, χ2, s1, s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • obs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?
      • :yes or true -> all the observer effects will be considered
      • :no or false -> no observer term will be taken into account
      • :noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_IntegratedGP

    source

    Two-Point Cross-Correlation Functions

    GaPSE.ξ_GNC_Newtonian_DopplerFunction
     ξ_GNC_Newtonian_Doppler(
    -      P1::Point, P2::Point, y, cosmo::Cosmology; 
    -      obs::Union{Bool, Symbol} = :noobsvel
    -      ) ::Float64
    -
    - ξ_GNC_Newtonian_Doppler(s1, s2, y, cosmo::Cosmology;
    -      kwargs...) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Newtonian and the Doppler effects arising from the Galaxy Number Counts (GNC).

    In the first method, you should pass the two Point (P1 and P2) where to evaluate the function, while in the second method (that internally recalls the first) you must provide the two corresponding comoving distances s1 and s2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this term is the following:

    \[\begin{split} - \xi^{\delta v_{\parallel}}( s_1 , s_2, y ) &= - D_1 D_2 J^{\delta v_{\parallel}}_{\alpha} \left[ - J^{\delta v_{\parallel}}_{00} I^0_{0} (s) + - J^{\delta v_{\parallel}}_{02} I^0_2 (s) + - J^{\delta v_{\parallel}}_{04} I^0_4 (s) - \right]\nonumber \\ - &+ D_1 J^{\delta v_{\parallel}}_{\beta} \left[ - J^{\delta v_{\parallel}}_{11} I^1_{1} (s_1) + - J^{\delta v_{\parallel}}_{13} I^1_{3} (s_1) - \right] -\end{split}\]

    where

    \[\begin{split} - J^{\delta v_{\parallel}}_{\alpha} &= f_2 \mathcal{H}_2 \mathcal{R}_2 - \, , \\ - %%%%%%%%%%%%%%%%%%%%% - J^{\delta v_{\parallel}}_{\beta} &= - y f_0 \mathcal{H}_0 s_1 (\mathcal{R}_2 - 5s_{\mathrm{b}, 2} + 2) - \, , \\ - %%%%%%%%%%%%%%%%%%%%% - J^{\delta v_{\parallel}}_{00} &= - \frac{1}{15} \left\{ - s_2 \left[ 5 b_1 + (2 y^2 + 1) f_1 \right] - - y s_1 \left[ 3 f_1 + 5 b_1 \right] - \right\} - \, , \\ - %%%%%%%%%%%%%%%%%%%%% - J^{\delta v_{\parallel}}_{02} &= - \frac{1}{21 s^2} - \left\{ - \left[ - (y^2 + 1) f_1 + 7 b_1 - \right] s_2^3 - - y \left[ - 21 b_1 + (5 y^2 + 4) f_1 - \right] s_1 s_2^2 + - \right.\nonumber \\ - &\left. \qquad \qquad - \left[ - 7 (2 y^2 + 1) b_1 + (10 y^2 - 1) f_1 - \right] s_1^2 s_2 - - y \left[ - 7 b_1 + 3 f_1 - \right] s_1^3 - \right\} - \, , \\ - %%%%%%%%%%%%%%%%%%%%% - J^{\delta v_{\parallel}}_{04} &= - \frac{f_1}{35 s^2} - \left[ - 2 y s_1 ^3 - - 2 (y^2 + 2) s_1 ^2 s_2 + - y (y^2 + 5) s_1 s_2^2 + - (1 - 3 y^2) s_2 ^3 - \right] - \, , \\ - %%%%%%%%%%%%%%%%%%%%% - J^{\delta v_{\parallel}}_{11} &= \frac{1}{5} (5b_1+3 f_1 ) - \, , \\ - %%%%%%%%%%%%%%%%%%%%% - J^{\delta v_{\parallel}}_{13} &= -\frac{2}{5} f_1 - \, . -\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + -\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $b_1 = b(s_1)$, $s_{\mathrm{b}, 1} = s_{\mathrm{b}}(s_1)$, $\mathit{f}_{\mathrm{evo}}$, ... : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias (the first two evaluated in $s_1$); they are all stored in cosmo;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , -\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    In this TPCF, the term proportional to only$D(s_1)$ is an observer term (while the term proportional to $D(s_1) \, D(s_2)$ is not) and it does depend on the observer velocity. Consequently, if you set obs = :yes or obs = true both of them will computed, while for obs = :no, obs = false or even obs = :noobsvel only the first one will be taken into account.

    Inputs

    • P1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • obs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?
      • :yes or true -> all the observer effects will be considered
      • :no or false -> no observer term will be taken into account
      • :noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole

    source
    GaPSE.ξ_GNC_Doppler_NewtonianFunction
     ξ_GNC_Doppler_Newtonian(s1, s2, y, cosmo::Cosmology; kwargs...) = 
    -      ξ_GNC_Newtonian_Doppler(s2, s1, y, cosmo; kwargs...)

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Doppler and the Newtonian effects arising from the Galaxy Number Counts (GNC).

    It's computed through the symmetric function ξ_GNC_Newtonian_Doppler; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    Inputs

    • s1 and s2: comoving distances where the TPCF has to be calculated;

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • kwargs... : Keyword arguments to be passed to the symmetric TPCF

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_Newtonian_Doppler

    source
    GaPSE.ξ_GNC_Newtonian_LensingFunction
     ξ_GNC_Newtonian_Lensing(s1, s2, y, cosmo::Cosmology;
    -      en::Float64=1e6, N_χs::Int=100, Δχ_min::Float64=1e-1,
    -      obs::Union{Bool,Symbol}=:noobsvel, suit_sampling::Bool = true)

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Newtonian and the Lensing effects arising from the Galaxy Number Counts (GNC).

    You must provide the two comoving distances s1 and s2 where to evaluate the function. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this term is the following:

    \[\begin{equation} - \xi^{\delta \kappa} ( s_1 , s_2, y ) = - D_1 \int_0^{s_2}\mathrm{d} \chi_2 - J^{\delta \kappa}_{\alpha} - \left[ - J^{\delta \kappa}_{00} I_0^0 ( \Delta\chi_2 ) + - J^{\delta \kappa}_{02} I_2^0 ( \Delta \chi_2 ) + - J^{\delta \kappa}_{04} I_4^0 ( \Delta \chi_2 ) - \right] \, , -\end{equation}\]

    where

    \[\begin{split} - J^{\delta \kappa}_{\alpha} &= - \frac{ - \mathcal{H}_0 ^2 \Omega_{\mathrm{M}0} D (\chi_2) - }{ - a(\chi_2 ) s_2 - } - (\chi_2 - s_2 ) (5s_{\mathrm{b}, 2} - 2) - \, , \\ - %%%%%%%%%%%%%%%%%%%%%%%% - J^{\delta \kappa}_{00} &= - \frac{1}{5} - \left[ - (3 y^2 - 1) \chi_2 f_1 - y s_1(3 f_1 + 5 b_1) - \right] - \, , \\ - %%%%%%%%%%%%%%%%%%%%%%%% - J^{\delta \kappa}_{02} &= - \frac{1}{14 \Delta\chi_2^2} - \left\{ - 4 f_1 (3 y^2 - 1) \chi_2^3 - - 2 y - \left[ - (3 y^2 + 8) f_1 + 7 b_1 - \right] s_1 \chi_2^2 + - \right. \nonumber \\ - &\left.\qquad \qquad\qquad - \left[ - (9 y^2 + 11) f_1 - 7 (y^2 + 3) b_1 - \right] s_1^2 \chi_2 - - 2 y \left[7 b_1 + 3 f_1 \right] s_1^3 - \right\} - \, , \\ - %%%%%%%%%%%%%%%%%%%%%%%% - J^{\delta \kappa}_{04} &= - \frac{f_1}{70 \Delta\chi_2^4 } - \left\{ - (6 y^2 - 2) \chi_2^5 + - 6 y (y^2 - 3) s_1 \chi_2^4 - - (y^4 + 12 y^2 - 21) s_1^2 \chi_2^3 + - \right.\nonumber \\ - &\left.\qquad\qquad\qquad - 2 y (y^2 + 3) s_1^3 \chi_2^2 - - 12 \chi_2 s_1^4 + - 4 y s_1 ^5 - \right\} - \, . -\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + -\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $b_1 = b(s_1)$, $s_{\mathrm{b}, 1} = s_{\mathrm{b}}(s_1)$, $\mathit{f}_{\mathrm{evo}}$, ... : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias (the first two evaluated in $s_1$); they are all stored in cosmo;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , -\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    In this TPCF there are no observer terms. The obs keyword is inserted only for compatibility with the other GNC TPCFs.

    This function is computed integrating integrand_ξ_GNC_Newtonian_Lensing with trapz from the Trapz Julia package.

    Inputs

    • s1 and s2: comoving distances where the TPCF has to be calculated.

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • en::Float64 = 1e6: just a float number used in order to deal better with small numbers;

    • Δχ_min::Float64 = 1e-4 : when $\Delta\chi_2 = \sqrt{s_1^2 + \chi_2^2 - 2 \, s_1 \chi_2 y} \to 0^{+}$, some $I_\ell^n$ term diverges, but the overall parenthesis has a known limit:

      \[ \lim_{\Delta \chi_2 \to 0^{+}} - \left( - J_{00}^{\delta \kappa} \, I^0_0(\Delta \chi_2 ) + - J_{02}^{\delta \kappa} \, I^0_2(\Delta \chi_2 ) + - J_{04}^{\delta \kappa} \, I^4_0(\Delta \chi_2 ) - \right) = - - \frac{1}{5} \, s_1 \left(f_1 + 5 b_1\right) \, \sigma_0\]

      So, when it happens that $\Delta \chi_2 < \Delta\chi_\mathrm{min}$, the function considers this limit as the result of the parenthesis instead of calculating it in the normal way; it prevents computational divergences.

    • N_χs::Int = 100: number of points to be used for sampling the integral along the range (0, s2) (for χ2); it has been checked that with N_χs ≥ 100 the result is stable.

    • suit_sampling::Bool = true :

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, integrand_ξ_GNC_Newtonian_Lensing

    source
    GaPSE.ξ_GNC_Lensing_NewtonianFunction
     ξ_GNC_Lensing_Newtonian(s1, s2, y, cosmo::Cosmology; kwargs...) = 
    -      ξ_GNC_Newtonian_Lensing(s2, s1, y, cosmo; kwargs...)

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Lensing and the Newtonian effects arising from the Galaxy Number Counts (GNC).

    It's computed through the symmetric function ξ_GNC_Newtonian_Lensing; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    Inputs

    • s1 and s2: comoving distances where the TPCF has to be calculated;

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • kwargs... : Keyword arguments to be passed to the symmetric TPCF

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_Newtonian_Lensing

    source
    GaPSE.ξ_GNC_Newtonian_LocalGPFunction
     ξ_GNC_Newtonian_LocalGP(
    -      P1::Point, P2::Point, y, cosmo::Cosmology; 
    -      obs::Union{Bool, Symbol} = :noobsvel
    -      ) ::Float64
    -
    - ξ_GNC_Newtonian_LocalGP(s1, s2, y, cosmo::Cosmology;
    -      kwargs...) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Newtonian and the Local Gravitational Potential (GP) effects arising from the Galaxy Number Counts (GNC).

    In the first method, you should pass the two Point (P1 and P2) where to evaluate the function, while in the second method (that internally recalls the first) you must provide the two corresponding comoving distances s1 and s2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this term is the following:

    \[\begin{split} - \xi^{\delta \phi}( s_1 , s_2, y ) &= - D_1 D_2 J^{\delta \phi}_{\alpha} \left[ - J^{\delta \phi}_{\beta} - \left( - \frac{1}{30} I_0^0 (s) + - \frac{1}{21} I_2^0 (s) + - \frac{1}{70} I_4^0 (s) - \right) + - J^{\delta \phi}_{20} I_0^2 (s) - \right] \nonumber \\ - & + D_1 J^{\delta \phi}_{\gamma} \left[ - J^{\delta \phi}_{31} I^3_{1} (s_1) + - J^{\delta \phi}_{11} I^1_{1} (s_1) + - J^{\delta \phi}_{13} I^1_{3} (s_1) - \right] -\end{split}\]

    where

    \[\begin{split} - J^{\delta \phi}_{\alpha} &= - \frac{1}{3 a_2} \left[ - 2 f_2 a_2 \mathcal{H}_2^2 (\mathit{f}_{\mathrm{evo}, 2} - 3) + - 3 \mathcal{H}_0^2 \Omega_{\mathrm{M}0} (f_2 + \mathcal{R}_2 + 5 s_{\mathrm{b}, 2} - 2) - \right] - \, , \\ - %%%%%%%%%%%%%%%%%%%%% - J^{\delta \phi}_{\beta} &= - f_1 \left[ - (3 y^2 - 1) s_2^2 - 4 y s_1 s_2 + 2 s_1^2 - \right] - \, , \\ - %%%%%%%%%%%%%%%%%%%%% - J^{\delta \phi}_{\gamma} &= - \frac{\mathcal{H}_0 s_1^2}{2 s_2} \left[ - 2 f_0 (\mathcal{H}_0 s_2 \mathcal{R}_2 + 5 s_{\mathrm{b}, 2} - 2) - - 3 \mathcal{H}_0 s_2 \mathcal{R}_2 - \right] - \, , \\ - %%%%%%%%%%%%%%%%%%%%% - J^{\delta \phi}_{20} &= - - \frac{1}{2}(3 b_1 + f_1) (s_1^2 + s_2^2 - 2 y s_1 s_2) - \, , \\ - %%%%%%%%%%%%%%%%%%%%% - J^{\delta \phi}_{31} &= - (3 b_1 + f_1) - \, , \\ - %%%%%%%%%%%%%%%%%%%%% - J^{\delta \phi}_{11} &= - J^{\delta \phi}_{13} = \frac{1}{5}(b_1 + f_1) - \, . -\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + -\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $b_1 = b(s_1)$, $s_{\mathrm{b}, 1} = s_{\mathrm{b}}(s_1)$, $\mathit{f}_{\mathrm{evo}}$, ... : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias (the first two evaluated in $s_1$); they are all stored in cosmo;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , -\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    In this TPCF, the term proportional to only$D(s_1)$ is an observer term (while the term proportional to $D(s_1) \, D(s_2)$ is not), but does not depend on the observer velocitz. Consequently, if you set obs = :yes, obs = true or even obs = :noobsvel both of them will computed, while for obs = :no or obs = false only the first one will be taken into account.

    Inputs

    • P1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • obs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?
      • :yes or true -> all the observer effects will be considered
      • :no or false -> no observer term will be taken into account
      • :noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole

    source
    GaPSE.ξ_GNC_LocalGP_NewtonianFunction
     ξ_GNC_LocalGP_Newtonian(s1, s2, y, cosmo::Cosmology; kwargs...) = 
    -      ξ_GNC_Newtonian_LocalGP(s2, s1, y, cosmo; kwargs...)

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Local Gravitational Potential (GP) and the Newtonian effects arising from the Galaxy Number Counts (GNC).

    It's computed through the symmetric function ξ_GNC_Newtonian_LocalGP; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    Inputs

    • s1 and s2: comoving distances where the TPCF has to be calculated;

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • kwargs... : Keyword arguments to be passed to the symmetric TPCF

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_Newtonian_LocalGP

    source
    GaPSE.ξ_GNC_Newtonian_IntegratedGPFunction
    ξ_GNC_Newtonian_IntegratedGP(
    -    s1, s2, y, cosmo::Cosmology;
    -    en::Float64=1e6, N_χs::Int=100, 
    -    obs::Union{Bool,Symbol}=:noobsvel
    -    ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Newtonian and the Integrated Gravitational Potential (GP) effects arising from the Galaxy Number Counts (GNC).

    You must provide the two comoving distances s1 and s2 where to evaluate the function. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this integrand is the following:

    \[\begin{split} - \xi^{\delta \int\!\phi}( s_1 , s_2, y ) = - D_1 \int_0^{s_2}\mathrm{d} \chi_2 \; - &J^{\delta \int\!\phi}_{\alpha} - \left[ - J^{\delta \int\!\phi}_{20} I_0^2 ( \Delta\chi_2 ) + - \right. \\ - & \left. - J^{\delta \int\!\phi}_{\beta} - \left( - \frac{1}{15} I_0^0 ( \Delta\chi_2 ) + - \frac{1}{21} I_2^0 ( \Delta\chi_2 ) + - \frac{1}{35} I_4^0 ( \Delta\chi_2 ) - \right) - \right] \, , \nonumber -\end{split}\]

    where

    \[\begin{split} - J^{\delta \int\!\phi}_{\alpha} &= - \frac{\mathcal{H}_0^2 \Omega_{\mathrm{M}0} D(\chi_2)}{3 a(\chi_2) s_2} - \left[ - s_2 \mathcal{R}_2 \mathcal{H}(\chi_2) ( f(\chi_2) - 1) - 5 s_{\mathrm{b}, 2} + 2 - \right] - \, , \\ - %%%%%%%%%%%%%%%%%%%%% - J^{\delta \int\!\phi}_{\beta} &= - f_1 \left[ - (3 y^2 - 1) \chi_2^2 - 4 y s_1 \chi_2 + 2 s_1^2 - \right] - \, , \\ - %%%%%%%%%%%%%%%%%%%%% - J^{\delta \int\!\phi}_{20} &= - - \Delta\chi_2^2 ( 3 b_1 + f_1) - \, . -\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + -\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $b_1 = b(s_1)$, $s_{\mathrm{b}, 1} = s_{\mathrm{b}}(s_1)$, $\mathit{f}_{\mathrm{evo}}$, ... : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias (the first two evaluated in $s_1$); they are all stored in cosmo;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , -\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    In this TPCF there are no observer terms. The obs keyword is inserted only for compatibility with the other GNC TPCFs.

    This function is computed integrating integrand_ξ_GNC_Newtonian_IntegratedGP with trapz from the Trapz Julia package.

    Inputs

    • P1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • obs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?

      • :yes or true -> all the observer effects will be considered
      • :no or false -> no observer term will be taken into account
      • :noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account
    • en::Float64 = 1e6: just a float number used in order to deal better with small numbers;

    • N_χs::Int = 100: number of points to be used for sampling the integral along the range (0, s2) (for χ2); it has been checked that with N_χs ≥ 100 the result is stable.

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, integrand_ξ_GNC_Newtonian_IntegratedGP

    source
    GaPSE.ξ_GNC_IntegratedGP_NewtonianFunction
     ξ_GNC_IntegratedGP_Newtonian(s1, s2, y, cosmo::Cosmology; kwargs...) = 
    -      ξ_GNC_Newtonian_IntegratedGP(s2, s1, y, cosmo; kwargs...)

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Integrated Gravitational Potential (GP) and the Newtonian effects arising from the Galaxy Number Counts (GNC).

    It's computed through the symmetric function ξ_GNC_Newtonian_IntegratedGP; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    Inputs

    • s1 and s2: comoving distances where the TPCF has to be calculated;

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • kwargs... : Keyword arguments to be passed to the symmetric TPCF

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_Newtonian_IntegratedGP

    source
    GaPSE.ξ_GNC_Doppler_LensingFunction
     ξ_GNC_Doppler_Lensing(s1, s2, y, cosmo::Cosmology; kwargs...) = 
    -      ξ_GNC_Lensing_Doppler(s2, s1, y, cosmo; kwargs...)

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Doppler and the Lensing effects arising from the Galaxy Number Counts (GNC).

    It's computed through the symmetric function ξ_GNC_Lensing_Doppler; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    Inputs

    • s1 and s2: comoving distances where the TPCF has to be calculated;

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • kwargs... : Keyword arguments to be passed to the symmetric TPCF

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_Lensing_Doppler

    source
    GaPSE.ξ_GNC_Lensing_DopplerFunction
     ξ_GNC_Lensing_Doppler(
    -      s1, s2, y, cosmo::Cosmology;
    -      en::Float64=1e6, N_χs::Int=100, 
    -      obs::Union{Bool,Symbol}=:noobsvel,
    -      Δχ_min::Float64=1e-1
    -      ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Lensing and the Doppler effects arising from the Galaxy Number Counts (GNC).

    You must provide the two comoving distances s1 and s2 where to evaluate the function. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this integrand is the following:

    \[\begin{split} - \xi^{\kappa v_{\parallel}} ( s_1 , s_2, y ) &= - D_2 \int_0^{s_1}\dd \chi_1 - J^{\kappa v_{\parallel}}_{\alpha} \left[ - J^{\kappa v_{\parallel}}_{00} I_0^0 ( \Delta \chi_1 ) + - J^{\kappa v_{\parallel}}_{02} I_2^0 ( \Delta \chi_1 ) - \right. \nonumber \\ - & \left. - + J^{\kappa v_{\parallel}}_{04} I_4^0 ( \Delta \chi_1 ) - + J^{\kappa v_{\parallel}}_{20} I_0^2 ( \Delta \chi_1 ) - \right] - + \int_0^{s_1}\dd \chi_1 - J^{\kappa v_{\parallel}}_{31} I_1^3 ( \chi_1 ) \, , -\end{split}\]

    where

    \[\begin{split} - J^{\kappa v_{\parallel}}_{\alpha} &= - \frac{\mathcal{H}_0^2 \Omega_{\mathrm{M}0} D(\chi_1)}{a(\chi_1) s_1} - f_2 \mathcal{H}_2 \mathcal{R}_2 (\chi_1 - s_1) (5 s_{\mathrm{b}, 1} - 2) - \, , \\ - %%%%%%%%%%%%%%%%% - J^{\kappa v_{\parallel}}_{00} &= - \frac{1}{15} - \left[ - \chi_1^2 y + \chi_1 s_2 (4 y^2 - 3) - 2 y s_2^2 - \right] - \, , \\ - %%%%%%%%%%%%%%%%% - J^{\kappa v_{\parallel}}_{02} &= - \frac{1}{42 \Delta\chi_1^2} \left[ - 4 y \chi_1^4 + 4 (2 y^2 - 3) s_2 \chi_1^3 + - y (11 - 23 y^2) s_2^2 \chi_1^2 + - \right.\\ - &\left.\qquad\qquad\qquad - (23 y^2 - 3) s_2^3 \chi_1 - 8 y s_2^4 - \right] \nonumber - \, , \\ - %%%%%%%%%%%%%%%%% - J^{\kappa v_{\parallel}}_{04} &= - \frac{1}{70 \Delta\chi_1^2} - \left[ - 2 y \chi_1^4 + 2 (2 y^2 - 3) s_2 \chi_1^3 - - y (y^2 + 5) s_2^2 \chi_1^2 + - (y^2 + 9) s_2^3 \chi_1 - 4 y s_2^4 - \right] - \, , \\ - %%%%%%%%%%%%%%%%% - J^{\kappa v_{\parallel}}_{20} &= y \Delta\chi_1^2 - \, , \\ - %%%%%%%%%%%%%%%%% - J^{\kappa v_{\parallel}}_{31} &= - -\frac{ - 3 \chi_1^2 y f_0 \mathcal{H}_0^3 \Omega_{\mathrm{M}0} D(\chi_1) - }{ - a(\chi_1)s_1 - }(\chi_1 - s_1) (5 s_{\mathrm{b}, 1} - 2) (\mathcal{R}_2 - 5 s_{\mathrm{b}, 2} + 2) - \, . -\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + -\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $b_1 = b(s_1)$, $s_{\mathrm{b}, 1} = s_{\mathrm{b}}(s_1)$, $\mathit{f}_{\mathrm{evo}}$, ... : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias (the first two evaluated in $s_1$); they are all stored in cosmo;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , -\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    In this TPCF, the term proportional to $D(s_1)$ is not an observer term. The other one instead is and it does depend on the observer velocity. Consequently, if you set obs = :yes or obs = true both of them will computed, while for obs = :no, obs = false or even obs = :noobsvel only the first one will be taken into account.

    This function is computed from integrand_ξ_GNC_Lensing_Doppler with trapz from the Trapz Julia package.

    Inputs

    • P1::Point, P2::Point or s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • obs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?

      • :yes or true -> all the observer effects will be considered
      • :no or false -> no observer term will be taken into account
      • :noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account
    • Δχ_min::Float64 = 1e-1 : when $\Delta\chi_1 = \sqrt{\chi_1^2 + s_2^2 - 2 \, \chi_1 s_2 y} \to 0^{+}$, some $I_\ell^n$ term diverges, but the overall parenthesis has a known limit:

      \[ \lim_{\Delta\chi_1 \to 0^{+}} - \left[ - J^{\kappa v_{\parallel}}_{00} I_0^0 ( \Delta \chi_1 ) + - J^{\kappa v_{\parallel}}_{02} I_2^0 ( \Delta \chi_1 ) + - J^{\kappa v_{\parallel}}_{04} I_4^0 ( \Delta \chi_1 ) + - J^{\kappa v_{\parallel}}_{20} I_0^2 ( \Delta \chi_1 ) - \right] = \sigma_2\]

      So, when it happens that $\Delta\chi_1 < \Delta\chi_\mathrm{min}$, the function considers this limit as the result of the parenthesis instead of calculating it in the normal way; it prevents computational divergences.

    • en::Float64 = 1e6: just a float number used in order to deal better with small numbers;

    • N_χs::Int = 100: number of points to be used for sampling the integral along the range (0, s1) (for χ1); it has been checked that with N_χs ≥ 100 the result is stable.

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, integrand_ξ_GNC_Lensing_Doppler

    source
    GaPSE.ξ_GNC_Doppler_LocalGPFunction
     ξ_GNC_Doppler_LocalGP(
    -      P1::Point, P2::Point, y, cosmo::Cosmology; 
    -      obs::Union{Bool,Symbol}=:noobsvel
    -      ) ::Float64
    -
    - ξ_GNC_Doppler_LocalGP(
    -      s1, s2, y, cosmo::Cosmology; 
    -      kwargs...) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Doppler and the Local Gravitational Potential (GP) effects arising from the Galaxy Number Counts (GNC).

    In the first method, you should pass the two Point (P1 and P2) where to evaluate the function, while in the second method (that internally recalls the first) you must provide the two corresponding comoving distances s1 and s2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this term is the following:

    \[\begin{split} - \xi^{v_{\parallel} \phi} ( s_1 , s_2, y ) &= - D_1 D_2 J^{v_{\parallel} \phi}_{\alpha} - \left[ - \frac{1}{90} I_0^0 (s) + - \frac{1}{63} I_2^0 (s) + - \frac{1}{210} I_4^0 (s) + - \frac{1}{6} I_0^2 (s) - \right] - \nonumber \\ - & + - D_1 J^{v_{\parallel} \phi_0 }_{31} I^3_1 (s_1) + - D_2 J^{v_{\parallel, 0} \phi }_{31} I^3_1 (s_2) \, , -\end{split}\]

    where

    \[\begin{split} - J^{v_{\parallel} \phi}_{\alpha} &= - \frac{f_1 \mathcal{H}_1 \mathcal{R}_1 s^2}{a_2} (y s_2 - s_1) - \times\\ - &\qquad\qquad\qquad - \left[ - 2 f_2 a_2 \mathcal{H}_2^2 (\mathit{f}_{\mathrm{evo}, 2} - 3) + - 3 \mathcal{H}_0^2 \Omega_{\mathrm{M}0} (f_2 + \mathcal{R}_2 + 5 s_{\mathrm{b}, 2} - 2) - \right] - \, , \nonumber \\ - %%%%%%%%%%%%%%%%%%%% - J^{v_{\parallel} \phi_0 }_{31} &= - \frac{ f_1 \mathcal{H}_1 \mathcal{R}_1}{2 s_2} \mathcal{H}_0 s_1^3 - \left[ - 3 \mathcal{H}_0 \Omega_{\mathrm{M}0} s_2 \mathcal{R}_2 - - 2 f_0 \left( \mathcal{H}_0 s_2 \mathcal{R}_2 + 5 s_{\mathrm{b}, 2} - 2 \right) - \right] - \, , \\ - %%%%%%%%%%%%%%%%%%%% - J^{v_{\parallel, 0} \, \phi }_{31} &= - -\frac{y f_0 \mathcal{H}_0 s_2^3}{2 a_2} (\mathcal{R}_1 - 5 s_{\mathrm{b}, 1} + 2) - \times \\ - &\qquad\qquad\qquad - \left[ - 2 a_2 f_2 \mathcal{H}_2^2 (\mathit{f}_{\mathrm{evo}, 2} - 3) + - 3 \mathcal{H}_0^2 \Omega_{\mathrm{M}0} (f_2 + \mathcal{R}_2 + 5 s_{\mathrm{b}, 2} - 2) - \right] - \nonumber \, . -\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + -\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $b_1 = b(s_1)$, $s_{\mathrm{b}, 1} = s_{\mathrm{b}}(s_1)$, $\mathit{f}_{\mathrm{evo}}$, ... : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias (the first two evaluated in $s_1$); they are all stored in cosmo;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , -\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    In this TPCF, the terms proportional to $D(s_1)$ and $D(s_2)$ are observer terms (while the term proportional to $D(s_1) \, D(s_2)$ is not), but only the $\propto D(s_2)$ one depends on the observer velocity. Consequently, if you set:

    • obs = :yes or obs = true all of them will be computed
    • obs = :noobsvel then the $\propto D(s_2)$ term will be neglected
    • obs = :no or obs = false only the first one $\propto D(s_1) \, D(s_2)$ will be taken into account.

    Inputs

    • P1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • obs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?
      • :yes or true -> all the observer effects will be considered
      • :no or false -> no observer term will be taken into account
      • :noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole

    source
    GaPSE.ξ_GNC_LocalGP_DopplerFunction
     ξ_GNC_LocalGP_Doppler(s1, s2, y, cosmo::Cosmology; kwargs...) = 
    -      ξ_GNC_Doppler_LocalGP(s2, s1, y, cosmo; kwargs...)

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Local Gravitational Potential (GP) and the Doppler effects arising from the Galaxy Number Counts (GNC).

    It's computed through the symmetric function ξ_GNC_Doppler_LocalGP; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    Inputs

    • s1 and s2: comoving distances where the TPCF has to be calculated;

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • kwargs... : Keyword arguments to be passed to the symmetric TPCF

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_Doppler_LocalGP

    source
    GaPSE.ξ_GNC_Doppler_IntegratedGPFunction
     ξ_GNC_Doppler_IntegratedGP(
    -      s1, s2, y, cosmo::Cosmology;
    -      en::Float64=1e6, N_χs::Int=100, 
    -      obs::Union{Bool,Symbol}=:noobsvel
    -      ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Doppler and the Integrated Gravitational Potential (GP) effects arising from the Galaxy Number Counts (GNC).

    You must provide the two comoving distances s1 and s2 where to evaluate the function. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this integrand is the following:

    \[\begin{split} - \xi^{v_{\parallel} \int\!\phi} \left( s_1 , s_2, y \right) &= D_1 \int_0^{s_2}\mathrm{d} \chi_2 \; - J^{v_{\parallel} \int\!\phi}_{\alpha} - \left[ - \frac{1}{15} I_0^0 ( \Delta\chi_2 ) + - \frac{2}{21} I_2^0 ( \Delta\chi_2 ) + - \right. \\ - &\left. - \frac{1}{35} I_4^0 ( \Delta\chi_2 ) + - I^2_0 ( \Delta\chi_2) - \right] - + \int_0^{s_2}\mathrm{d} \chi_2 - J^{v_{\parallel} \int\!\phi}_{31} I^3_1 (\chi_2) - \, ,\nonumber -\end{split}\]

    where

    \[\begin{split} - J^{v_{\parallel} \int\!\phi}_{\alpha} &= - \frac{f_1 \mathcal{H}_1 \mathcal{R}_1}{s_2 a(\chi_2)} - D(\chi_2) \mathcal{H}_0^2 \Omega_{\mathrm{M}0} \Delta\chi_2^2 - (\chi_2 y - s_1) - \left[ - s_2 \mathcal{H}(\chi_2) \mathcal{R}_2 (f(\chi_2) - 1) - 5 s_{\mathrm{b}, 2} + 2 - \right] - \, , \\ - %%%%%%%%%%%%%%%%%%%%% - J^{v_{\parallel} \int\!\phi}_{31} &= - -\frac{ - 3 \chi_2^3 y f_0 \mathcal{H}_0^3 \Omega_{\mathrm{M}0} D(\chi_2) - }{ - s_2 a(\chi_2) - }(\mathcal{R}_1 - 5 s_{\mathrm{b}, 1} + 2) - \left[ - s_2 \mathcal{H}(\chi_2) \mathcal{R}_2 (f(\chi_2) - 1) - 5 s_{\mathrm{b}, 2} + 2) - \right] - \, . -\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + -\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $b_1 = b(s_1)$, $s_{\mathrm{b}, 1} = s_{\mathrm{b}}(s_1)$, $\mathit{f}_{\mathrm{evo}}$, ... : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias (the first two evaluated in $s_1$); they are all stored in cosmo;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , -\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    In this TPCF, the term proportional to $D(s_1)$ is not an observer term. The other one instead is and it does depend on the observer velocity. Consequently, if you set obs = :yes or obs = true both of them will computed, while for obs = :no, obs = false or even obs = :noobsvel only the $\propto D(s_1)$ one will be taken into account.

    This function is computed integrating integrand_ξ_GNC_Doppler_IntegratedGP with trapz from the Trapz Julia package.

    Inputs

    • P1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • obs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?

      • :yes or true -> all the observer effects will be considered
      • :no or false -> no observer term will be taken into account
      • :noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account
    • en::Float64 = 1e6: just a float number used in order to deal better with small numbers;

    • N_χs::Int = 100: number of points to be used for sampling the integral along the range (0, s2) (for χ2); it has been checked that with N_χs ≥ 100 the result is stable.

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, integrand_ξ_GNC_Doppler_IntegratedGP

    source
    GaPSE.ξ_GNC_IntegratedGP_DopplerFunction
     ξ_GNC_IntegratedGP_Doppler(s1, s2, y, cosmo::Cosmology; kwargs...) = 
    -      ξ_GNC_Doppler_IntegratedGP(s2, s1, y, cosmo; kwargs...)

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Integrated Gravitational Potential (GP) and the Doppler effects arising from the Galaxy Number Counts (GNC).

    It's computed through the symmetric function ξ_GNC_Doppler_IntegratedGP; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    Inputs

    • s1 and s2: comoving distances where the TPCF has to be calculated;

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • kwargs... : Keyword arguments to be passed to the symmetric TPCF

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_Doppler_IntegratedGP

    source
    GaPSE.ξ_GNC_Lensing_LocalGPFunction
     ξ_GNC_Lensing_LocalGP(
    -      s1, s2, y, cosmo::Cosmology;
    -      en::Float64=1e6, N_χs::Int=100, 
    -      obs::Union{Bool,Symbol}=:noobsvel
    -      ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Lensing and the Local Gravitational Potential (GP) effects arising from the Galaxy Number Counts (GNC).

    You must provide the two comoving distances s1 and s2 where to evaluate the function. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this integrand is the following:

    \[\begin{split} - \xi^{\kappa \phi} ( s_1 , s_2, y ) &= - D_2 \int_0^{s_1}\mathrm{d} \chi_1 \; - J^{\kappa \phi}_{\alpha}\left[ - J^{\kappa \phi}_{20} I_0^2 ( \Delta \chi_1 ) + - \right.\nonumber \\ - &\left.\qquad - J^{\kappa \phi}_{\beta} - \left( - \frac{1}{60} I_0^0 ( \Delta \chi_1 ) + - \frac{1}{42} I_2^0 ( \Delta \chi_1 ) + - \frac{1}{140} I_4^0 ( \Delta \chi_1 ) - \right) - \right] \, , -\end{split}\]

    where

    \[\begin{split} - J^{\kappa \phi}_{\alpha} &= - \frac{\mathcal{H}_0^2 \Omega_{\mathrm{M}0} s_2 D(\chi_1)}{a(\chi_1) a_2 s_1} - (\chi_1 - s_1) (5s_{\mathrm{b}, 1} - 2) - \times\\ - &\qquad\qquad - \left[ - 2 f_2 a_2 \mathcal{H}_2^2 (\mathit{f}_{\mathrm{evo}, 2} - 3) + - 3 \mathcal{H}_0^2 \Omega_{\mathrm{M}0} (f_2 + \mathcal{R}_2 + 5s_{\mathrm{b}, 2} - 2) - \right] \nonumber - \, , \\ - %%%%%%%%%%%%%%%%%%% - J^{\kappa \phi}_{\beta} &= - 2 y \chi_1^2 - \chi_1 s_2 (y^2 + 3) + 2 y s_2^2 - \, ,\\ - %%%%%%%%%%%%%%%%%%% - J^{\kappa \phi}_{20} &= \frac{1}{2} y \Delta\chi_1^2\, . -\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + -\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $b_1 = b(s_1)$, $s_{\mathrm{b}, 1} = s_{\mathrm{b}}(s_1)$, $\mathit{f}_{\mathrm{evo}}$, ... : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias (the first two evaluated in $s_1$); they are all stored in cosmo;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , -\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    In this TPCF there are no observer terms. The obs keyword is inserted only for compatibility with the other GNC TPCFs.

    This function is computed from integrand_ξ_GNC_Lensing_LocalGP with trapz from the Trapz Julia package.

    Inputs

    • P1::Point, P2::Point or s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • obs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?

      • :yes or true -> all the observer effects will be considered
      • :no or false -> no observer term will be taken into account
      • :noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account
    • en::Float64 = 1e6: just a float number used in order to deal better with small numbers;

    • N_χs::Int = 100: number of points to be used for sampling the integral along the range (0, s1) (for χ1); it has been checked that with N_χs ≥ 100 the result is stable.

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, integrand_ξ_GNC_Lensing_LocalGP

    source
    GaPSE.ξ_GNC_LocalGP_LensingFunction
     ξ_GNC_LocalGP_Lensing(s1, s2, y, cosmo::Cosmology; kwargs...) = 
    -      ξ_GNC_Lensing_LocalGP(s2, s1, y, cosmo; kwargs...)

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Local Gravitational Potential (GP) and the Lensing effects arising from the Galaxy Number Counts (GNC).

    It's computed through the symmetric function ξ_GNC_Lensing_LocalGP; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    Inputs

    • s1 and s2: comoving distances where the TPCF has to be calculated;

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • kwargs... : Keyword arguments to be passed to the symmetric TPCF

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_Lensing_LocalGP

    source
    GaPSE.ξ_GNC_Lensing_IntegratedGPFunction
     ξ_GNC_Lensing_IntegratedGP(
    -      P1::Point, P2::Point, y, cosmo::Cosmology;
    -      en::Float64=1e6, N_χs_2::Int=100, 
    -      obs::Union{Bool,Symbol}=:noobsvel
    -      ) ::Float64
    -
    - ξ_GNC_Lensing_IntegratedGP(
    -      s1, s2, y, cosmo::Cosmology; 
    -      kwargs...) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Lensing and the Integrated Gravitational Potential (GP) effects arising from the Galaxy Number Counts (GNC).

    In the first method, you should pass the two Point (P1 and P2) where to evaluate the function, while in the second method (that internally recalls the first) you must provide the two corresponding comoving distances s1 and s2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this integrand is the following:

    \[\begin{split} - \xi^{\kappa \int\!\phi} ( s_1 , s_2, y ) = - \int_0^{s_1}\mathrm{d} \chi_1 \int_0^{s_2}\mathrm{d} \chi_2 \; - J_{\alpha}^{\kappa \int\!\phi} - \left[ - J_{31}^{\kappa \int\!\phi} I_1^3 ( \Delta \chi ) + - J_{22}^{\kappa \int\!\phi} I_2^2 ( \Delta \chi ) - \right] \, , -\end{split}\]

    where

    \[\begin{split} - J_{\alpha}^{\kappa \int\!\phi} &= - \frac{ - 9 \chi_2 \ \mathcal{H}_0^4 \Omega_{\mathrm{M}0}^2 D(\chi_1) D(\chi_2) - }{ - a(\chi_1) a(\chi_2) s_1 s_2 - } - (\chi_1 - s_1) (5 s_{\mathrm{b}, 1} - 2) \times\\ - &\qquad\qquad\qquad\qquad\qquad\qquad - \left[ - \ \mathcal{H}(\chi_2) \mathcal{R}_2 s_1 (f(\chi_2) - 1) - 5 s_{\mathrm{b}, 1} + 2 - \right] \nonumber - \, , \\ - %%%%%%%%%%%%% - J_{31}^{\kappa \int\!\phi} &= y \Delta\chi^2 - \, , \\ - %%%%%%%%%%%%% - J_{22}^{\kappa \int\!\phi} &= - \frac{1}{2} (y^2 - 1) \chi_1 \chi_2 - \, . -\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + -\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $b_1 = b(s_1)$, $s_{\mathrm{b}, 1} = s_{\mathrm{b}}(s_1)$, $\mathit{f}_{\mathrm{evo}}$, ... : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias (the first two evaluated in $s_1$); they are all stored in cosmo;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , -\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    In this TPCF there are no observer terms. The obs keyword is inserted only for compatibility with the other GNC TPCFs.

    This function is computed from integrand_ξ_GNC_Lensing_IntegratedGP with trapz from the Trapz Julia package.

    Inputs

    • P1::Point, P2::Point or s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • obs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?

      • :yes or true -> all the observer effects will be considered
      • :no or false -> no observer term will be taken into account
      • :noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning IntegratedGP) will be neglected, the other ones will be taken into account
    • en::Float64 = 1e6: just a float number used in order to deal better with small numbers;

    • N_χs_2::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ1) and (0, s2) (for χ2); it has been checked that with N_χs_2 ≥ 50 the result is stable.

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, integrand_ξ_GNC_Lensing_IntegratedGP

    source
    GaPSE.ξ_GNC_IntegratedGP_LensingFunction
     ξ_GNC_IntegratedGP_Lensing(s1, s2, y, cosmo::Cosmology; kwargs...) = 
    -      ξ_GNC_Lensing_IntegratedGP(s2, s1, y, cosmo; kwargs...)

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Integrated Gravitational Potential (GP) and the Lensing effects arising from the Galaxy Number Counts (GNC).

    It's computed through the symmetric function ξ_GNC_Lensing_IntegratedGP; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    Inputs

    • s1 and s2: comoving distances where the TPCF has to be calculated;

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • kwargs... : Keyword arguments to be passed to the symmetric TPCF

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_Lensing_IntegratedGP

    source
    GaPSE.ξ_GNC_LocalGP_IntegratedGPFunction
     ξ_GNC_LocalGP_IntegratedGP(
    -      s1, s2, y, cosmo::Cosmology;
    -      en::Float64=1e6, N_χs::Int=100, 
    -      obs::Union{Bool,Symbol}=:noobsvel
    -      ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Local Gravitational Potential (GP) and the Integrated Gravitational Potential (GP) effects arising from the Galaxy Number Counts (GNC).

    You must provide the two comoving distances s1 and s2 where to evaluate the function. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this integrand is the following:

    \[\begin{split} - \xi^{\phi \int\!\phi} (\chi_2, s_1 , s_2, y ) = - D_1 \int_0^{s_2}\mathrm{d} \chi_2 - J^{\phi \int\!\phi}_{40} \tilde{I}_0^4 ( \Delta\chi_2 ) + - \int_0^{s_2}\mathrm{d} \chi_2 - J^{\phi_0 \int\!\phi}_{04} \tilde{I}_0^4 ( \chi_2 ) \, , -\end{split}\]

    where

    \[\begin{split} - J^{\phi \int\!\phi}_{40} &= - \frac{ - 3 \Delta\chi_2^4 \mathcal{H}_0^2 \Omega_{\mathrm{M}0} D(\chi_2) - }{ - 2 s_2 a(\chi_2) a_1 - } \left[ - s_2 \mathcal{H}(\chi_2) \mathcal{R}_2(f(\chi_2)-1) -5 s_{\mathrm{b}, 2}+2 - \right] - \times\\ - &\qquad\qquad\qquad - \left[ - 2 a_1 f_1 \mathcal{H}_1^2 (\mathit{f}_{\mathrm{evo}, 1} - 3) + - 3 \mathcal{H}_0^2 \Omega_{\mathrm{M}0} (f_1 + \mathcal{R}_1 + 5 s_{\mathrm{b}, 1} - 2) - \right] - \, , \nonumber \\ - %%%%%%%%%%%%%%%%% - J^{\phi_0 \int\!\phi}_{40} &= - \frac{ - 3 \chi_2^4 \mathcal{H}_0^3 \Omega_{\mathrm{M}0} D(\chi_2) - }{ - 2 s_1 s_2 a(\chi_2) - } \left[ - s_2 \mathcal{H}(\chi_2) \mathcal{R}_2 (f(\chi_2) - 1) - 5 s_{\mathrm{b}, 2} + 2 - \right]\times - \nonumber \\ - &\qquad\qquad\qquad - \left[ - - 3 \Omega_{\mathrm{M}0} \mathcal{H}_0 s_1 \mathcal{R}_1 + - 2 f_0 (\mathcal{H}_0 s_1 \mathcal{R}_1 + 5 s_{\mathrm{b}, 1} - 2) - \right] - \, . -\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + -\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $b_1 = b(s_1)$, $s_{\mathrm{b}, 1} = s_{\mathrm{b}}(s_1)$, $\mathit{f}_{\mathrm{evo}}$, ... : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias (the first two evaluated in $s_1$); they are all stored in cosmo;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , -\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    In this TPCF, the term proportional to $D(s_1)$ is not an observer term. The other one instead is, and it does also depend on the observer velocity. Consequently, if you set obs = :yes or obs = true both of them will computed, while for obs = :no, obs = false or even obs = :noobsvel only the first one will be taken into account.

    This function is computed from integrand_ξ_GNC_LocalGP_IntegratedGP with trapz from the Trapz Julia package.

    Inputs

    • P1::Point, P2::Point or s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • obs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?

      • :yes or true -> all the observer effects will be considered
      • :no or false -> no observer term will be taken into account
      • :noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account
    • en::Float64 = 1e6: just a float number used in order to deal better with small numbers;

    • N_χs::Int = 100: number of points to be used for sampling the integral along the range (0, s2) (for χ2); it has been checked that with N_χs ≥ 100 the result is stable.

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, integrand_ξ_GNC_LocalGP_IntegratedGP

    source
    GaPSE.ξ_GNC_IntegratedGP_LocalGPFunction
     ξ_GNC_IntegratedGP_LocalGP(s1, s2, y, cosmo::Cosmology; kwargs...) = 
    -      ξ_GNC_LocalGP_IntegratedGP(s2, s1, y, cosmo; kwargs...)

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Integrated Gravitational Potential (GP) and the Local Gravitational Potential (GP) effects arising from the Galaxy Number Counts (GNC).

    It's computed through the symmetric function ξ_GNC_LocalGP_IntegratedGP; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    Inputs

    • s1 and s2: comoving distances where the TPCF has to be calculated;

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • kwargs... : Keyword arguments to be passed to the symmetric TPCF

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_LocalGP_IntegratedGP

    source
    GaPSE.integrand_ξ_GNC_Newtonian_LensingFunction
     integrand_ξ_GNC_Newtonian_Lensing(
    -      IP::Point, P1::Point, P2::Point,
    -      y, cosmo::Cosmology;
    -      Δχ_min::Float64=1e-1, 
    -      obs::Union{Bool,Symbol}=:noobsvel
    -      ) ::Float64
    -
    - integrand_ξ_GNC_Newtonian_Lensing(
    -      χ2::Float64, s1::Float64, s2::Float64,
    -      y, cosmo::Cosmology;
    -      kwargs... )::Float64

    Return the integrand of the Two-Point Correlation Function (TPCF) given by the cross correlation between the Newtonian and the Lensing effects arising from the Galaxy Number Counts (GNC).

    In the first method, you should pass the two extreme Points (P1 and P2) and the intermediate integrand Point (IP) where to evaluate the function. In the second method (that internally recalls the first), you must provide the three corresponding comoving distances s1, s2, χ2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this integrand is the following:

    \[\begin{equation} - f^{\delta\kappa} (\chi_2, s_1, s_2, y) = - D_1 J^{\delta \kappa}_{\alpha} - \left[ - J^{\delta \kappa}_{00} I_0^0 ( \Delta\chi_2 ) + - J^{\delta \kappa}_{02} I_2^0 ( \Delta \chi_2 ) + - J^{\delta \kappa}_{04} I_4^0 ( \Delta \chi_2 ) - \right] \, , -\end{equation}\]

    where

    \[\begin{split} - J^{\delta \kappa}_{\alpha} &= - \frac{ - \mathcal{H}_0 ^2 \Omega_{\mathrm{M}0} D (\chi_2) - }{ - a(\chi_2 ) s_2 - } - (\chi_2 - s_2 ) (5s_{\mathrm{b}, 2} - 2) - \, , \\ - %%%%%%%%%%%%%%%%%%%%%%%% - J^{\delta \kappa}_{00} &= - \frac{1}{5} - \left[ - (3 y^2 - 1) \chi_2 f_1 - y s_1(3 f_1 + 5 b_1) - \right] - \, , \\ - %%%%%%%%%%%%%%%%%%%%%%%% - J^{\delta \kappa}_{02} &= - \frac{1}{14 \Delta\chi_2^2} - \left\{ - 4 f_1 (3 y^2 - 1) \chi_2^3 - - 2 y - \left[ - (3 y^2 + 8) f_1 + 7 b_1 - \right] s_1 \chi_2^2 + - \right. \nonumber \\ - &\left.\qquad \qquad\qquad - \left[ - (9 y^2 + 11) f_1 - 7 (y^2 + 3) b_1 - \right] s_1^2 \chi_2 - - 2 y \left[7 b_1 + 3 f_1 \right] s_1^3 - \right\} - \, , \\ - %%%%%%%%%%%%%%%%%%%%%%%% - J^{\delta \kappa}_{04} &= - \frac{f_1}{70 \Delta\chi_2^4 } - \left\{ - (6 y^2 - 2) \chi_2^5 + - 6 y (y^2 - 3) s_1 \chi_2^4 - - (y^4 + 12 y^2 - 21) s_1^2 \chi_2^3 + - \right.\nonumber \\ - &\left.\qquad\qquad\qquad - 2 y (y^2 + 3) s_1^3 \chi_2^2 - - 12 \chi_2 s_1^4 + - 4 y s_1 ^5 - \right\} - \, . -\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + -\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $b_1 = b(s_1)$, $s_{\mathrm{b}, 1} = s_{\mathrm{b}}(s_1)$, $\mathit{f}_{\mathrm{evo}}$, ... : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias (the first two evaluated in $s_1$); they are all stored in cosmo;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , -\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    In this TPCF there are no observer terms. The obs keyword is inserted only for compatibility with the other GNC TPCFs.

    This function is used inside ξ_GNC_Newton_Lensing with the trapz from the Trapz Julia package.

    Inputs

    • IP::Point, P1::Point, P2::Point or χ2,s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • obs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?

      • :yes or true -> all the observer effects will be considered
      • :no or false -> no observer term will be taken into account
      • :noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account
    • Δχ_min::Float64 = 1e-4 : when $\Delta\chi_2 = \sqrt{s_1^2 + \chi_2^2 - 2 \, s_1 \chi_2 y} \to 0^{+}$, some $I_\ell^n$ term diverges, but the overall parenthesis has a known limit:

      \[ \lim_{\Delta \chi_2 \to 0^{+}} - \left( - J_{00}^{\delta \kappa} \, I^0_0(\Delta \chi_2 ) + - J_{02}^{\delta \kappa} \, I^0_2(\Delta \chi_2 ) + - J_{04}^{\delta \kappa} \, I^4_0(\Delta \chi_2 ) - \right) = - - \frac{1}{5} \, s_1 \left(f_1 + 5 b_1\right) \, \sigma_0\]

      So, when it happens that $\Delta \chi_2 < \Delta\chi_\mathrm{min}$, the function considers this limit as the result of the parenthesis instead of calculating it in the normal way; it prevents computational divergences.

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_Newton_Lensing

    source
    GaPSE.integrand_ξ_GNC_Newtonian_IntegratedGPFunction
     integrand_ξ_GNC_Newtonian_IntegratedGP(
    -      IP::Point, P1::Point, P2::Point,
    -      y, cosmo::Cosmology; 
    -      obs::Union{Bool,Symbol}=:noobsvel
    -      ) ::Float64
    -
    - integrand_ξ_GNC_Newtonian_IntegratedGP(
    -      χ2::Float64, s1::Float64, s2::Float64,
    -      y, cosmo::Cosmology;
    -      kwargs... )::Float64

    Return the integrand of the Two-Point Correlation Function (TPCF) given by the cross correlation between the Newtonian and the Integrated Gravitational Potential (GP) effects arising from the Galaxy Number Counts (GNC).

    In the first method, you should pass the two extreme Points (P1 and P2) and the intermediate integrand Point (IP) where to evaluate the function. In the second method (that internally recalls the first), you must provide the three corresponding comoving distances s1, s2, χ2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this integrand is the following:

    \[\begin{split} - f^{\delta \int\!\phi}(\chi_2, s_1 , s_2, y ) = - D_1 \; - &J^{\delta \int\!\phi}_{\alpha} - \left[ - J^{\delta \int\!\phi}_{20} I_0^2 ( \Delta\chi_2 ) + - \right. \\ - & \left. - J^{\delta \int\!\phi}_{\beta} - \left( - \frac{1}{15} I_0^0 ( \Delta\chi_2 ) + - \frac{1}{21} I_2^0 ( \Delta\chi_2 ) + - \frac{1}{35} I_4^0 ( \Delta\chi_2 ) - \right) - \right] \, , \nonumber -\end{split}\]

    where

    \[\begin{split} - J^{\delta \int\!\phi}_{\alpha} &= - \frac{\mathcal{H}_0^2 \Omega_{\mathrm{M}0} D(\chi_2)}{3 a(\chi_2) s_2} - \left[ - s_2 \mathcal{R}_2 \mathcal{H}(\chi_2) ( f(\chi_2) - 1) - 5 s_{\mathrm{b}, 2} + 2 - \right] - \, , \\ - %%%%%%%%%%%%%%%%%%%%% - J^{\delta \int\!\phi}_{\beta} &= - f_1 \left[ - (3 y^2 - 1) \chi_2^2 - 4 y s_1 \chi_2 + 2 s_1^2 - \right] - \, , \\ - %%%%%%%%%%%%%%%%%%%%% - J^{\delta \int\!\phi}_{20} &= - - \Delta\chi_2^2 ( 3 b_1 + f_1) - \, . -\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + -\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $b_1 = b(s_1)$, $s_{\mathrm{b}, 1} = s_{\mathrm{b}}(s_1)$, $\mathit{f}_{\mathrm{evo}}$, ... : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias (the first two evaluated in $s_1$); they are all stored in cosmo;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , -\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    In this TPCF there are no observer terms. The obs keyword is inserted only for compatibility with the other GNC TPCFs.

    This function is used inside ξ_GNC_Newtonian_IntegratedGP with trapz from the Trapz Julia package.

    Inputs

    • IP::Point, P1::Point, P2::Point or χ2,s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • obs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?
      • :yes or true -> all the observer effects will be considered
      • :no or false -> no observer term will be taken into account
      • :noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_Newtonian_IntegratedGP

    source
    GaPSE.integrand_ξ_GNC_Doppler_IntegratedGPFunction
     integrand_ξ_GNC_Doppler_IntegratedGP(
    -      IP::Point, P1::Point, P2::Point,
    -      y, cosmo::Cosmology; 
    -      obs::Union{Bool,Symbol}=:noobsvel
    -      ) ::Float64
    -
    - integrand_ξ_GNC_Doppler_IntegratedGP(
    -      χ2::Float64, s1::Float64, s2::Float64,
    -      y, cosmo::Cosmology; 
    -      kwargs...) ::Float64

    Return the integrand of the Two-Point Correlation Function (TPCF) given by the cross correlation between the Doppler and the Integrated Gravitational Potential (GP) effects arising from the Galaxy Number Counts (GNC).

    In the first method, you should pass the two extreme Points (P1 and P2) and the intermediate integrand Point (IP) where to evaluate the function. In the second method (that internally recalls the first), you must provide the three corresponding comoving distances s1, s2, χ2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this integrand is the following:

    \[\begin{split} - f^{v_{\parallel} \int\!\phi} \left(\chi_2, s_1 , s_2, y \right) &= - D_1 \; - J^{v_{\parallel} \int\!\phi}_{\alpha} - \left[ - \frac{1}{15} I_0^0 ( \Delta\chi_2 ) + - \frac{2}{21} I_2^0 ( \Delta\chi_2 ) + - \right. \\ - &\left. - \frac{1}{35} I_4^0 ( \Delta\chi_2 ) + - I^2_0 ( \Delta\chi_2) - \right] - + - J^{v_{\parallel} \int\!\phi}_{31} I^3_1 (\chi_2) - \, ,\nonumber -\end{split}\]

    where

    \[\begin{split} - J^{v_{\parallel} \int\!\phi}_{\alpha} &= - \frac{f_1 \mathcal{H}_1 \mathcal{R}_1}{s_2 a(\chi_2)} - D(\chi_2) \mathcal{H}_0^2 \Omega_{\mathrm{M}0} \Delta\chi_2^2 - (\chi_2 y - s_1) - \left[ - s_2 \mathcal{H}(\chi_2) \mathcal{R}_2 (f(\chi_2) - 1) - 5 s_{\mathrm{b}, 2} + 2 - \right] - \, , \\ - %%%%%%%%%%%%%%%%%%%%% - J^{v_{\parallel} \int\!\phi}_{31} &= - -\frac{ - 3 \chi_2^3 y f_0 \mathcal{H}_0^3 \Omega_{\mathrm{M}0} D(\chi_2) - }{ - s_2 a(\chi_2) - }(\mathcal{R}_1 - 5 s_{\mathrm{b}, 1} + 2) - \left[ - s_2 \mathcal{H}(\chi_2) \mathcal{R}_2 (f(\chi_2) - 1) - 5 s_{\mathrm{b}, 2} + 2) - \right] - \, . -\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + -\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $b_1 = b(s_1)$, $s_{\mathrm{b}, 1} = s_{\mathrm{b}}(s_1)$, $\mathit{f}_{\mathrm{evo}}$, ... : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias (the first two evaluated in $s_1$); they are all stored in cosmo;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , -\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    In this TPCF, the term proportional to $D(s_1)$ is not an observer term. The other one instead is and it does depend on the observer velocity. Consequently, if you set obs = :yes or obs = true both of them will computed, while for obs = :no, obs = false or even obs = :noobsvel only the $\propto D(s_1)$ one will be taken into account.

    This function is used inside ξ_GNC_Doppler_IntegratedGP with trapz from the Trapz Julia package.

    Inputs

    • IP::Point, P1::Point and P2::Point, or χ2,s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • obs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?
      • :yes or true -> all the observer effects will be considered
      • :no or false -> no observer term will be taken into account
      • :noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_Doppler_IntegratedGP

    source
    GaPSE.integrand_ξ_GNC_Lensing_DopplerFunction
     integrand_ξ_GNC_Lensing_Doppler(
    -      IP::Point, P1::Point, P2::Point,
    -      y, cosmo::Cosmology;
    -      Δχ_min::Float64=1e-1, 
    -      obs::Union{Bool,Symbol}=:noobsvel
    -      ) ::Float64
    -
    - integrand_ξ_GNC_Lensing_Doppler(
    -      χ1::Float64, s1::Float64, s2::Float64,
    -      y, cosmo::Cosmology;
    -      kwargs... )::Float64

    Return the integrand of the Two-Point Correlation Function (TPCF) given by the cross correlation between the Lensing and the Doppler effects arising from the Galaxy Number Counts (GNC).

    In the first method, you should pass the two extreme Points (P1 and P2) and the intermediate integrand Point (IP) where to evaluate the function. In the second method (that internally recalls the first), you must provide the three corresponding comoving distances s1, s2, χ1. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this integrand is the following:

    \[\begin{split} - f^{\kappa \phi} (\chi_1, s_1 , s_2, y ) &= - D_2 - J^{\kappa v_{\parallel}}_{\alpha} \left[ - J^{\kappa v_{\parallel}}_{00} I_0^0 ( \Delta \chi_1 ) + - J^{\kappa v_{\parallel}}_{02} I_2^0 ( \Delta \chi_1 ) - \right. \nonumber \\ - & \left. - + J^{\kappa v_{\parallel}}_{04} I_4^0 ( \Delta \chi_1 ) - + J^{\kappa v_{\parallel}}_{20} I_0^2 ( \Delta \chi_1 ) - \right] - + - J^{\kappa v_{\parallel}}_{31} I_1^3 ( \chi_1 ) \, , -\end{split}\]

    where

    \[\begin{split} - J^{\kappa v_{\parallel}}_{\alpha} &= - \frac{\mathcal{H}_0^2 \Omega_{\mathrm{M}0} D(\chi_1)}{a(\chi_1) s_1} - f_2 \mathcal{H}_2 \mathcal{R}_2 (\chi_1 - s_1) (5 s_{\mathrm{b}, 1} - 2) - \, , \\ - %%%%%%%%%%%%%%%%% - J^{\kappa v_{\parallel}}_{00} &= - \frac{1}{15} - \left[ - \chi_1^2 y + \chi_1 s_2 (4 y^2 - 3) - 2 y s_2^2 - \right] - \, , \\ - %%%%%%%%%%%%%%%%% - J^{\kappa v_{\parallel}}_{02} &= - \frac{1}{42 \Delta\chi_1^2} \left[ - 4 y \chi_1^4 + 4 (2 y^2 - 3) s_2 \chi_1^3 + - y (11 - 23 y^2) s_2^2 \chi_1^2 + - \right.\\ - &\left.\qquad\qquad\qquad - (23 y^2 - 3) s_2^3 \chi_1 - 8 y s_2^4 - \right] \nonumber - \, , \\ - %%%%%%%%%%%%%%%%% - J^{\kappa v_{\parallel}}_{04} &= - \frac{1}{70 \Delta\chi_1^2} - \left[ - 2 y \chi_1^4 + 2 (2 y^2 - 3) s_2 \chi_1^3 - - y (y^2 + 5) s_2^2 \chi_1^2 + - (y^2 + 9) s_2^3 \chi_1 - 4 y s_2^4 - \right] - \, , \\ - %%%%%%%%%%%%%%%%% - J^{\kappa v_{\parallel}}_{20} &= y \Delta\chi_1^2 - \, , \\ - %%%%%%%%%%%%%%%%% - J^{\kappa v_{\parallel}}_{31} &= - -\frac{ - 3 \chi_1^2 y f_0 \mathcal{H}_0^3 \Omega_{\mathrm{M}0} D(\chi_1) - }{ - a(\chi_1)s_1 - }(\chi_1 - s_1) (5 s_{\mathrm{b}, 1} - 2) (\mathcal{R}_2 - 5 s_{\mathrm{b}, 2} + 2) - \, . -\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + -\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $b_1 = b(s_1)$, $s_{\mathrm{b}, 1} = s_{\mathrm{b}}(s_1)$, $\mathit{f}_{\mathrm{evo}}$, ... : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias (the first two evaluated in $s_1$); they are all stored in cosmo;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , -\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    In this TPCF, the term proportional to $D(s_1)$ is not an observer term. The other one instead is and it does depend on the observer velocity. Consequently, if you set obs = :yes or obs = true both of them will computed, while for obs = :no, obs = false or even obs = :noobsvel only the first one will be taken into account.

    This function is used inside ξ_GNC_Lensing_Doppler with trapz from the Trapz Julia package.

    Inputs

    • IP::Point, P1::Point, P2::Point or χ1,s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • obs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?

      • :yes or true -> all the observer effects will be considered
      • :no or false -> no observer term will be taken into account
      • :noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account
    • Δχ_min::Float64 = 1e-1 : when $\Delta\chi_1 = \sqrt{\chi_1^2 + s_2^2 - 2 \, \chi_1 s_2 y} \to 0^{+}$, some $I_\ell^n$ term diverges, but the overall parenthesis has a known limit:

      \[ \lim_{\Delta\chi_1 \to 0^{+}} - \left[ - J^{\kappa v_{\parallel}}_{00} I_0^0 ( \Delta \chi_1 ) + - J^{\kappa v_{\parallel}}_{02} I_2^0 ( \Delta \chi_1 ) + - J^{\kappa v_{\parallel}}_{04} I_4^0 ( \Delta \chi_1 ) + - J^{\kappa v_{\parallel}}_{20} I_0^2 ( \Delta \chi_1 ) - \right] = \sigma_2\]

      So, when it happens that $\Delta\chi_1 < \Delta\chi_\mathrm{min}$, the function considers this limit as the result of the parenthesis instead of calculating it in the normal way; it prevents computational divergences.

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_Lensing_Doppler

    source
    GaPSE.integrand_ξ_GNC_Lensing_LocalGPFunction
     integrand_ξ_GNC_Lensing_LocalGP(
    -      IP::Point, P1::Point, P2::Point,
    -      y, cosmo::Cosmology;
    -      obs::Union{Bool,Symbol}=:noobsvel
    -      ) ::Float64
    -
    - integrand_ξ_GNC_Lensing_LocalGP(
    -      χ1::Float64, s1::Float64, s2::Float64,
    -      y, cosmo::Cosmology;
    -      kwargs... )::Float64

    Return the integrand of the Two-Point Correlation Function (TPCF) given by the cross correlation between the Lensing and the Local Gravitational Potential (GP) effects arising from the Galaxy Number Counts (GNC).

    In the first method, you should pass the two extreme Points (P1 and P2) and the intermediate integrand Point (IP) where to evaluate the function. In the second method (that internally recalls the first), you must provide the three corresponding comoving distances s1, s2, χ1. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this integrand is the following:

    \[\begin{split} - f^{\kappa \phi} (\chi_1, s_1 , s_2, y ) &= - D_2 \; - J^{\kappa \phi}_{\alpha}\left[ - J^{\kappa \phi}_{20} I_0^2 ( \Delta \chi_1 ) + - \right.\nonumber \\ - &\left.\qquad - J^{\kappa \phi}_{\beta} - \left( - \frac{1}{60} I_0^0 ( \Delta \chi_1 ) + - \frac{1}{42} I_2^0 ( \Delta \chi_1 ) + - \frac{1}{140} I_4^0 ( \Delta \chi_1 ) - \right) - \right] \, , -\end{split}\]

    where

    \[\begin{split} - J^{\kappa \phi}_{\alpha} &= - \frac{\mathcal{H}_0^2 \Omega_{\mathrm{M}0} s_2 D(\chi_1)}{a(\chi_1) a_2 s_1} - (\chi_1 - s_1) (5s_{\mathrm{b}, 1} - 2) - \times\\ - &\qquad\qquad - \left[ - 2 f_2 a_2 \mathcal{H}_2^2 (\mathit{f}_{\mathrm{evo}, 2} - 3) + - 3 \mathcal{H}_0^2 \Omega_{\mathrm{M}0} (f_2 + \mathcal{R}_2 + 5s_{\mathrm{b}, 2} - 2) - \right] \nonumber - \, , \\ - %%%%%%%%%%%%%%%%%%% - J^{\kappa \phi}_{\beta} &= - 2 y \chi_1^2 - \chi_1 s_2 (y^2 + 3) + 2 y s_2^2 - \, ,\\ - %%%%%%%%%%%%%%%%%%% - J^{\kappa \phi}_{20} &= \frac{1}{2} y \Delta\chi_1^2\, . -\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + -\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $b_1 = b(s_1)$, $s_{\mathrm{b}, 1} = s_{\mathrm{b}}(s_1)$, $\mathit{f}_{\mathrm{evo}}$, ... : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias (the first two evaluated in $s_1$); they are all stored in cosmo;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , -\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    In this TPCF there are no observer terms. The obs keyword is inserted only for compatibility with the other GNC TPCFs.

    This function is used inside ξ_GNC_Lensing_LocalGP with trapz from the Trapz Julia package.

    Inputs

    • IP::Point, P1::Point, P2::Point or χ1,s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • obs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?
      • :yes or true -> all the observer effects will be considered
      • :no or false -> no observer term will be taken into account
      • :noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_Lensing_LocalGP

    source
    GaPSE.integrand_ξ_GNC_Lensing_IntegratedGPFunction
     integrand_ξ_GNC_Lensing_IntegratedGP(
    -      IP1::Point, IP2::Point,
    -      P1::Point, P2::Point,
    -      y, cosmo::Cosmology; 
    -      obs::Union{Bool,Symbol}=:noobsvel
    -      ) ::Float64
    -
    - integrand_ξ_GNC_Lensing_IntegratedGP(
    -      χ1::Float64, χ2::Float64,
    -      s1::Float64, s2::Float64,
    -      y, cosmo::Cosmology;
    -      kwargs...) ::Float64

    Return the integrand of the Two-Point Correlation Function (TPCF) given by the cross correlation between the Lensing and the Integrated Gravitational Potential (GP) effects arising from the Galaxy Number Counts (GNC).

    In the first method, you should pass the two extreme Points (P1 and P2) and the two intermediate integrand Points (IP1 and IP2) where to evaluate the function. In the second method (that internally recalls the first), you must provide the four corresponding comoving distances s1, s2, χ1, χ2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this integrand is the following:

    \[\begin{split} - f^{\kappa \int\!\phi} (\chi_1, \chi_2, s_1 , s_2, y ) = - J_{\alpha}^{\kappa \int\!\phi} - \left[ - J_{31}^{\kappa \int\!\phi} I_1^3 ( \Delta \chi ) + - J_{22}^{\kappa \int\!\phi} I_2^2 ( \Delta \chi ) - \right] \, , -\end{split}\]

    where

    \[\begin{split} - J_{\alpha}^{\kappa \int\!\phi} &= - \frac{ - 9 \chi_2 \ \mathcal{H}_0^4 \Omega_{\mathrm{M}0}^2 D(\chi_1) D(\chi_2) - }{ - a(\chi_1) a(\chi_2) s_1 s_2 - } - (\chi_1 - s_1) (5 s_{\mathrm{b}, 1} - 2) \times\\ - &\qquad\qquad\qquad\qquad\qquad\qquad - \left[ - \ \mathcal{H}(\chi_2) \mathcal{R}_2 s_1 (f(\chi_2) - 1) - 5 s_{\mathrm{b}, 1} + 2 - \right] \nonumber - \, , \\ - %%%%%%%%%%%%% - J_{31}^{\kappa \int\!\phi} &= y \Delta\chi^2 - \, , \\ - %%%%%%%%%%%%% - J_{22}^{\kappa \int\!\phi} &= - \frac{1}{2} (y^2 - 1) \chi_1 \chi_2 - \, . -\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + -\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $b_1 = b(s_1)$, $s_{\mathrm{b}, 1} = s_{\mathrm{b}}(s_1)$, $\mathit{f}_{\mathrm{evo}}$, ... : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias (the first two evaluated in $s_1$); they are all stored in cosmo;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , -\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    In this TPCF there are no observer terms. The obs keyword is inserted only for compatibility with the other GNC TPCFs.

    This function is used inside ξ_GNC_Lensing_IntegratedGP with trapz from the Trapz Julia package.

    Inputs

    • IP1::Point, IP2::Point, P1::Point, P2::Point or χ1, χ2, s1, s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • obs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?
      • :yes or true -> all the observer effects will be considered
      • :no or false -> no observer term will be taken into account
      • :noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning IntegratedGP) will be neglected, the other ones will be taken into account

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_Lensing_IntegratedGP

    source
    GaPSE.integrand_ξ_GNC_LocalGP_IntegratedGPFunction
     integrand_ξ_GNC_LocalGP_IntegratedGP(
    -      IP::Point, P1::Point, P2::Point,
    -      y, cosmo::Cosmology; 
    -      obs::Union{Bool,Symbol}=:noobsvel
    -      ) ::Float64
    -
    - integrand_ξ_GNC_LocalGP_IntegratedGP(
    -      χ2::Float64, s1::Float64, s2::Float64,
    -      y, cosmo::Cosmology;
    -      kwargs... )::Float64

    Return the integrand of the Two-Point Correlation Function (TPCF) given by the cross correlation between the Local Gravitational Potential (GP) and the Integrated Gravitational Potential (GP) effects arising from the Galaxy Number Counts (GNC).

    In the first method, you should pass the two extreme Points (P1 and P2) and the intermediate integrand Point (IP) where to evaluate the function. In the second method (that internally recalls the first), you must provide the three corresponding comoving distances s1, s2, χ2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this integrand is the following:

    \[\begin{split} - f^{\phi \int\!\phi} (\chi_2, s_1 , s_2, y ) = - D_1 \, J^{\phi \int\!\phi}_{40} \tilde{I}_0^4 ( \Delta\chi_2 ) + - J^{\phi_0 \int\!\phi}_{04} \tilde{I}_0^4 ( \chi_2 ) \, , -\end{split}\]

    where

    \[\begin{split} - J^{\phi \int\!\phi}_{40} &= - \frac{ - 3 \Delta\chi_2^4 \mathcal{H}_0^2 \Omega_{\mathrm{M}0} D(\chi_2) - }{ - 2 s_2 a(\chi_2) a_1 - } \left[ - s_2 \mathcal{H}(\chi_2) \mathcal{R}_2(f(\chi_2)-1) -5 s_{\mathrm{b}, 2}+2 - \right] - \times\\ - &\qquad\qquad\qquad - \left[ - 2 a_1 f_1 \mathcal{H}_1^2 (\mathit{f}_{\mathrm{evo}, 1} - 3) + - 3 \mathcal{H}_0^2 \Omega_{\mathrm{M}0} (f_1 + \mathcal{R}_1 + 5 s_{\mathrm{b}, 1} - 2) - \right] - \, , \nonumber \\ - %%%%%%%%%%%%%%%%% - J^{\phi_0 \int\!\phi}_{40} &= - \frac{ - 3 \chi_2^4 \mathcal{H}_0^3 \Omega_{\mathrm{M}0} D(\chi_2) - }{ - 2 s_1 s_2 a(\chi_2) - } \left[ - s_2 \mathcal{H}(\chi_2) \mathcal{R}_2 (f(\chi_2) - 1) - 5 s_{\mathrm{b}, 2} + 2 - \right]\times - \nonumber \\ - &\qquad\qquad\qquad - \left[ - - 3 \Omega_{\mathrm{M}0} \mathcal{H}_0 s_1 \mathcal{R}_1 + - 2 f_0 (\mathcal{H}_0 s_1 \mathcal{R}_1 + 5 s_{\mathrm{b}, 1} - 2) - \right] - \, . -\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + -\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $b_1 = b(s_1)$, $s_{\mathrm{b}, 1} = s_{\mathrm{b}}(s_1)$, $\mathit{f}_{\mathrm{evo}}$, ... : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias (the first two evaluated in $s_1$); they are all stored in cosmo;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , -\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    In this TPCF, the term proportional to $D(s_1)$ is not an observer term. The other one instead is, and it does also depend on the observer velocity. Consequently, if you set obs = :yes or obs = true both of them will computed, while for obs = :no, obs = false or even obs = :noobsvel only the first one will be taken into account.

    This function is used inside ξ_GNC_LocalGP_IntegratedGP with trapz from the Trapz Julia package.

    Inputs

    • IP::Point, P1::Point, P2::Point or χ2,s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • obs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?
      • :yes or true -> all the observer effects will be considered
      • :no or false -> no observer term will be taken into account
      • :noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_LocalGP_IntegratedGP

    source

    Two-Point Cross-Correlation Function multipoles

    GaPSE.integrand_ξ_GNC_multipoleFunction
     integrand_ξ_GNC_multipole(s1, s, μ, effect::Function, cosmo::Cosmology;
    -      L::Int = 0, use_windows::Bool = true, kwargs...)
    -
    - integrand_ξ_GNC_multipole(s1, s, μ, effect::String, cosmo::Cosmology; kwargs...)

    Return the integrand on $\mu = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}$ of the of the chosen Galaxy Number Counts (GNC) Two-Point Correlation Function (TPCF) term, i.e. the following function $f(s_1, s, \mu)$:

    \[ f_L(s_1, s, \mu) = \xi \left(s_1, s_2, y\right) - \, \mathcal{L}_L(\mu) \, \times - \begin{cases} - \frac{1}{\mathcal{N}}\mathcal{F}(s, \mu) \quad \mathrm{use\_windows == true} \\ - 1 \quad\quad \mathrm{use\_windows == false} - \end{cases}\]

    where:

    • $s_2 = s_2(s_1, s, \mu) = \sqrt{s_1^2 + s^2 + 2 \, s_1 \, s \, \mu}$
    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2 = \frac{\mu \, s + s_1}{s_2(s_1, s, \mu)}$
    • $\xi$ is the corresponding GNC TPCF effect
    • $\mathcal{L}_L(\mu)$ is the Legendre polynomial of order $L$
    • $\mathcal{F}(s, \mu)$ is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)
    • $\mathcal{N}$ is the integrated window function norm (check the documentation of WindowFIntegrated)

    In the former method you have to pass as an input the GNC effect function you want to integrate, while in the (recommended) latter one it's necessary to specify the name of the GNC TPCF term among the following:

    auto_newton , auto_doppler , auto_lensing , auto_localgp , auto_integratedgp , newton_doppler , doppler_newton , newton_lensing , lensing_newton , newton_localgp , localgp_newton , newton_integratedgp , integratedgp_newton , lensing_doppler , doppler_lensing , doppler_localgp , localgp_doppler , doppler_integratedgp , integratedgp_doppler , lensing_localgp , localgp_lensing , lensing_integratedgp , integratedgp_lensing , localgp_integratedgp , integratedgp_localgp ,

    to which correspond the following functions, respectively:

    ξ_GNC_Newtonian , ξ_GNC_Doppler , ξ_GNC_Lensing , ξ_GNC_LocalGP , ξ_GNC_IntegratedGP , ξ_GNC_Newtonian_Doppler , ξ_GNC_Doppler_Newtonian , ξ_GNC_Newtonian_Lensing , ξ_GNC_Lensing_Newtonian , ξ_GNC_Newtonian_LocalGP , ξ_GNC_LocalGP_Newtonian , ξ_GNC_Newtonian_IntegratedGP , ξ_GNC_IntegratedGP_Newtonian , ξ_GNC_Lensing_Doppler , ξ_GNC_Doppler_Lensing , ξ_GNC_Doppler_LocalGP , ξ_GNC_LocalGP_Doppler , ξ_GNC_Doppler_IntegratedGP , ξ_GNC_IntegratedGP_Doppler , ξ_GNC_Lensing_LocalGP , ξ_GNC_LocalGP_Lensing , ξ_GNC_Lensing_IntegratedGP , ξ_GNC_IntegratedGP_Lensing , ξ_GNC_LocalGP_IntegratedGP , ξ_GNC_IntegratedGP_LocalGP ,

    Internally, the second method recall the first, so all the keyword arguments are in common.

    Note that these is an internal conversion of coordiate sistems from (s1, s, μ) to (s1, s2, y) thorugh the functions y and s2. The inverse relations are:

    • $s = s(s_1, s_2, y) = \sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$
    • $\mu = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}} = \frac{y \, s_2 - s_1}{s(s_1, s_2, y)}$.

    Inputs

    • s1: the comoving distance where must be evaluated the integral

    • s: the comoving distance from s1 where must be evaluated the integral

    • μ: the cosine between s1 and s where must be evaluated the integral

    • effect::Function or effect::String : name/function you want to consider, among the ones inside GaPSE.GR_EFFECTS_GNC/GaPSE.VEC_ξs_GNC respectively.

    • cosmo::Cosmology: cosmology to be used in this computation

    Optional arguments

    • L::Int = 0: order of the Legendre polynomial to be used

    • use_windows::Bool = false: tells if the integrand must consider the two window function $\phi$ and $\mathcal{F}$

    • kwargs... : other keyword arguments that will be passed to the selected GR TPCF effect (ξ_GNC_Doppler, ξ_GNC_Lensing, ...)

    See also: ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, WindowFIntegrated, ϕ, Cosmology, y, s2, GR_EFFECTS_GNC, GaPSE.VEC_ξs_GNC

    source
    GaPSE.ξ_GNC_multipoleFunction
     ξ_GNC_multipole(
    -      s1, s, effect::Function, cosmo::Cosmology;
    -      L::Int = 0, alg::Symbol = :lobatto, 
    -      use_windows::Bool = true, 
    -      obs::Union{Bool,Symbol} = :noobsvel,
    -      N_lob::Int = 100, N_trap::Int = 200, 
    -      atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,
    -      enhancer::Float64 = 1e6, 
    -      kwargs...) ::Float64
    -
    - ξ_GNC_multipole(s1, s, effect::String, cosmo::Cosmology; 
    -      kwargs...) ::Float64

    Evaluate the multipole of order L of the chosen Galaxy Number Counts (GNC) Two-Point Correlation Function (TPCF) term i.e. the following function $\xi_L(s_1, s)$:

    \[ \xi_L(s_1, s) = \frac{2 L + 1}{2} \int_{-1}^{+1} \mathrm{d}\mu \; - \xi (s_1, s_2, \cos{\theta}) \, \mathcal{L}_L(\mu) \, \times - \begin{cases} - \frac{1}{\mathcal{N}}\mathcal{F}(s, \mu) \quad \mathrm{use\_windows == true} \\ - 1 \quad\quad \mathrm{use\_windows == false} - \end{cases}\]

    where:

    • $s_2 = s_2(s_1, s, \mu) = \sqrt{s_1^2 + s^2 + 2 \, s_1 \, s \, \mu}$
    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2 = \frac{\mu \, s + s_1}{s_2(s_1, s, \mu)}$
    • $\xi$ is the corresponding GNC TPCF effect
    • $\mathcal{L}_L(\mu)$ is the Legendre polynomial of order $L$
    • $\mathcal{F}(s, \mu)$ is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)
    • $\mathcal{N}$ is the integrated window function norm (check the documentation of WindowFIntegrated)

    In the former method you have to pass as an input the GNC effect function you want to integrate, while in the (recommended) latter one it's necessary to specify the name of the GNC TPCF term among the following:

    auto_newton , auto_doppler , auto_lensing , auto_localgp , auto_integratedgp , newton_doppler , doppler_newton , newton_lensing , lensing_newton , newton_localgp , localgp_newton , newton_integratedgp , integratedgp_newton , lensing_doppler , doppler_lensing , doppler_localgp , localgp_doppler , doppler_integratedgp , integratedgp_doppler , lensing_localgp , localgp_lensing , lensing_integratedgp , integratedgp_lensing , localgp_integratedgp , integratedgp_localgp ,

    to which correspond the following functions:

    ξ_GNC_Newtonian , ξ_GNC_Doppler , ξ_GNC_Lensing , ξ_GNC_LocalGP , ξ_GNC_IntegratedGP , ξ_GNC_Newtonian_Doppler , ξ_GNC_Doppler_Newtonian , ξ_GNC_Newtonian_Lensing , ξ_GNC_Lensing_Newtonian , ξ_GNC_Newtonian_LocalGP , ξ_GNC_LocalGP_Newtonian , ξ_GNC_Newtonian_IntegratedGP , ξ_GNC_IntegratedGP_Newtonian , ξ_GNC_Lensing_Doppler , ξ_GNC_Doppler_Lensing , ξ_GNC_Doppler_LocalGP , ξ_GNC_LocalGP_Doppler , ξ_GNC_Doppler_IntegratedGP , ξ_GNC_IntegratedGP_Doppler , ξ_GNC_Lensing_LocalGP , ξ_GNC_LocalGP_Lensing , ξ_GNC_Lensing_IntegratedGP , ξ_GNC_IntegratedGP_Lensing , ξ_GNC_LocalGP_IntegratedGP , ξ_GNC_IntegratedGP_LocalGP ,

    Internally, the second method recall the first, so all the keyword arguments are in common.

    Note that these is an internal conversion of coordiate sistems from (s1, s, μ) to (s1, s2, y) thorugh the functions y and s2. The inverse relations are:

    • $s = s(s_1, s_2, y) = \sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$
    • $\mu = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}} = \frac{y \, s_2 - s_1}{s(s_1, s_2, y)}$.

    Inputs

    • s1: the comoving distance where must be evaluated the integral

    • s: the comoving distance from s1 where must be evaluated the integral

    • effect::Function or effect::String : name/function you want to consider, among the ones inside GaPSE.GR_EFFECTS_GNC/GaPSE.VEC_ξs_GNC respectively.

    • cosmo::Cosmology: cosmology to be used in this computation

    Optional arguments

    • L::Int = 0: order of the Legendre polynomial to be used

    • alg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):

      • :quad -> the integration over $\mu$ will be preformed through the Julia function quadgk

      from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.

      • :trap -> the integration over $\mu$ will be preformed through the Julia function trapz

      from the Trapz.jl Julia package, that uses the simple trapezoidal rulae.

      • :lobatto -> the integration over $\mu$ will be preformed through the Julia function gausslobatto

      from the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!

    • use_windows::Bool = false: tells if the integrand must consider the two window function $\phi$ and $\mathcal{F}$

    • obs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?

      • :yes or true -> all the observer effects will be considered
      • :no or false -> no observer term will be taken into account
      • :noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account
    • N_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • N_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    • kwargs... : other keyword arguments that will be passed to the selected GNC TPCF effect (ξ_GNC_Doppler, ξ_GNC_Lensing, ...)

    See also: integrand_ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole WindowFIntegrated, Cosmology, y, s2, GR_EFFECTS_GNC, VEC_ξs_GNC

    source
    GaPSE.map_ξ_GNC_multipoleFunction
     map_ξ_GNC_multipole(cosmo::Cosmology,
    -      effect::Union{String,Function}, ss = nothing;
    -      s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,
    -      obs::Union{Bool,Symbol} = :noobsvel,
    -      N_lob::Int = 100, N_trap::Int = 50,
    -      atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,
    -      enhancer::Float64=1e6, N_log::Int = 1000, 
    -      pr::Bool = true,
    -      kwargs...) ::Tuple{Vector{Float64}, Vector{Float64}}

    Evaluate the multipole of order L of the chosen Galaxy Number Counts (GNC) Two-Point Correlation Function (TPCF) term for all the comoving distance values stored inside ss. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). If s1 = nothing, it is set s1 = cosmo.s_eff.

    The function evaluated is then the following $\xi_L(s_1, s)$:

    \[ \xi_L(s_1, s) = \frac{2 L + 1}{2} \int_{-1}^{+1} \mathrm{d}\mu \; - \xi (s_1, s_2, \cos{\theta}) \, \mathcal{L}_L(\mu) \, \times - \begin{cases} - \frac{1}{\mathcal{N}}\mathcal{F}(s, \mu) \quad \mathrm{use\_windows == true} \\ - 1 \quad\quad \mathrm{use\_windows == false} - \end{cases}\]

    where:

    • $s_2 = s_2(s_1, s, \mu) = \sqrt{s_1^2 + s^2 + 2 \, s_1 \, s \, \mu}$
    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2 = \frac{\mu \, s + s_1}{s_2(s_1, s, \mu)}$
    • $\xi$ is the corresponding GNC TPCF effect
    • $\mathcal{L}_L(\mu)$ is the Legendre polynomial of order $L$
    • $\mathcal{F}(s, \mu)$ is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)
    • $\mathcal{N}$ is the integrated window function norm (check the documentation of WindowFIntegrated)

    Note that these is an internal conversion of coordiate sistems from (s1, s, μ) to (s1, s2, y) thorugh the functions y and s2. The inverse relations are:

    • $s = s(s_1, s_2, y) = \sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$
    • $\mu = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}} = \frac{y \, s_2 - s_1}{s(s_1, s_2, y)}$.

    Inputs

    • cosmo::Cosmology : cosmology to be used in this computation

    • effect::Union{String,Function} : the GR effect TPCF you want to consider; you may specify the name of the effect as one of the following strings (recommended):

      auto_newton , auto_doppler , auto_lensing , auto_localgp , auto_integratedgp , newton_doppler , doppler_newton , newton_lensing , lensing_newton , newton_localgp , localgp_newton , newton_integratedgp , integratedgp_newton , lensing_doppler , doppler_lensing , doppler_localgp , localgp_doppler , doppler_integratedgp , integratedgp_doppler , lensing_localgp , localgp_lensing , lensing_integratedgp , integratedgp_lensing , localgp_integratedgp , integratedgp_localgp ,

      or directly the name of the function among the following:

      ξ_GNC_Newtonian , ξ_GNC_Doppler , ξ_GNC_Lensing , ξ_GNC_LocalGP , ξ_GNC_IntegratedGP , ξ_GNC_Newtonian_Doppler , ξ_GNC_Doppler_Newtonian , ξ_GNC_Newtonian_Lensing , ξ_GNC_Lensing_Newtonian , ξ_GNC_Newtonian_LocalGP , ξ_GNC_LocalGP_Newtonian , ξ_GNC_Newtonian_IntegratedGP , ξ_GNC_IntegratedGP_Newtonian , ξ_GNC_Lensing_Doppler , ξ_GNC_Doppler_Lensing , ξ_GNC_Doppler_LocalGP , ξ_GNC_LocalGP_Doppler , ξ_GNC_Doppler_IntegratedGP , ξ_GNC_IntegratedGP_Doppler , ξ_GNC_Lensing_LocalGP , ξ_GNC_LocalGP_Lensing , ξ_GNC_Lensing_IntegratedGP , ξ_GNC_IntegratedGP_Lensing , ξ_GNC_LocalGP_IntegratedGP , ξ_GNC_IntegratedGP_LocalGP ,

    • ss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). This is why it is returned also the vector of the "input" values.

    Optional arguments

    • s1 = nothing : comoving distance from the observer where the TPCF should be evaluated; if s1 = nothing, it is automatically set s1 = cosmo.s_eff from the given input cosmo::Cosmology.

    • L::Int = 0: order of the Legendre polynomial to be used

    • alg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):

      • :quad -> the integration over $\mu$ will be preformed through the Julia function quadgk

      from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.

      • :trap -> the integration over $\mu$ will be preformed through the Julia function trapz

      from the Trapz.jl Julia package, that uses the simple trapezoidal rulae.

      • :lobatto -> the integration over $\mu$ will be preformed through the Julia function gausslobatto

      from the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!

    • use_windows::Bool = false: tells if the integrand must consider the two window function $\phi$ and $\mathcal{F}$

    • obs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?

      • :yes or true -> all the observer effects will be considered
      • :no or false -> no observer term will be taken into account
      • :noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account
    • N_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • N_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    • N_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing

    • pr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)

    • kwargs... : other keyword arguments that will be passed to the selected GNC TPCF effect (ξ_GNC_Doppler, ξ_GNC_Lensing, ...)

    Returns

    A Tuple{Vector{Float64}, Vector{Float64}}, which has as first element the ss vector and as second one the corresponding ξ value evaluated.

    See also: integrand_ξ_GNC_multipole, ξ_GNC_multipole, print_map_ξ_GNC_multipole, WindowFIntegrated, Cosmology, y, s2, GR_EFFECTS_GNC, GaPSE.VEC_ξs_GNC

    source
    GaPSE.print_map_ξ_GNC_multipoleFunction
     print_map_ξ_GNC_multipole(
    -      cosmo::Cosmology, out::String,
    -      effect::Union{String,Function},
    -      ss = nothing;
    -      s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,
    -      obs::Union{Bool,Symbol} = :noobsvel,
    -      N_lob::Int = 100, N_trap::Int = 50,
    -      atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,
    -      enhancer::Float64=1e6, N_log::Int = 1000, 
    -      pr::Bool = true,
    -      kwargs...)

    Evaluate the multipole of order L of the chosen Galaxy Number Counts (GNC) Two-Point Correlation Function (TPCF) term for all the comoving distance values stored inside ss, and print the results (with all the options used) in a file named out. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). If s1 = nothing, it is set s1 = cosmo.s_eff.

    The function evaluated is then the following $\xi_L(s_1, s)$:

    \[ \xi_L(s_1, s) = \frac{2 L + 1}{2} \int_{-1}^{+1} \mathrm{d}\mu \; - \xi (s_1, s_2, \cos{\theta}) \, \mathcal{L}_L(\mu) \, \times - \begin{cases} - \frac{1}{\mathcal{N}}\mathcal{F}(s, \mu) \quad \mathrm{use\_windows == true} \\ - 1 \quad\quad \mathrm{use\_windows == false} - \end{cases}\]

    where:

    • $s_2 = s_2(s_1, s, \mu) = \sqrt{s_1^2 + s^2 + 2 \, s_1 \, s \, \mu}$
    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2 = \frac{\mu \, s + s_1}{s_2(s_1, s, \mu)}$
    • $\xi$ is the corresponding GNC TPCF effect
    • $\mathcal{L}_L(\mu)$ is the Legendre polynomial of order $L$
    • $\mathcal{F}(s, \mu)$ is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)
    • $\mathcal{N}$ is the integrated window function norm (check the documentation of WindowFIntegrated)

    Note that these is an internal conversion of coordiate sistems from (s1, s, μ) to (s1, s2, y) thorugh the functions y and s2. The inverse relations are:

    • $s = s(s_1, s_2, y) = \sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$
    • $\mu = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}} = \frac{y \, s_2 - s_1}{s(s_1, s_2, y)}$.

    Inputs

    • cosmo::Cosmology : cosmology to be used in this computation

    • effect::Union{String,Function} : the GR effect TPCF you want to consider; you may specify the name of the effect as one of the following strings (recommended):

      auto_newton , auto_doppler , auto_lensing , auto_localgp , auto_integratedgp , newton_doppler , doppler_newton , newton_lensing , lensing_newton , newton_localgp , localgp_newton , newton_integratedgp , integratedgp_newton , lensing_doppler , doppler_lensing , doppler_localgp , localgp_doppler , doppler_integratedgp , integratedgp_doppler , lensing_localgp , localgp_lensing , lensing_integratedgp , integratedgp_lensing , localgp_integratedgp , integratedgp_localgp ,

      or directly the name of the function among the following:

      ξ_GNC_Newtonian , ξ_GNC_Doppler , ξ_GNC_Lensing , ξ_GNC_LocalGP , ξ_GNC_IntegratedGP , ξ_GNC_Newtonian_Doppler , ξ_GNC_Doppler_Newtonian , ξ_GNC_Newtonian_Lensing , ξ_GNC_Lensing_Newtonian , ξ_GNC_Newtonian_LocalGP , ξ_GNC_LocalGP_Newtonian , ξ_GNC_Newtonian_IntegratedGP , ξ_GNC_IntegratedGP_Newtonian , ξ_GNC_Lensing_Doppler , ξ_GNC_Doppler_Lensing , ξ_GNC_Doppler_LocalGP , ξ_GNC_LocalGP_Doppler , ξ_GNC_Doppler_IntegratedGP , ξ_GNC_IntegratedGP_Doppler , ξ_GNC_Lensing_LocalGP , ξ_GNC_LocalGP_Lensing , ξ_GNC_Lensing_IntegratedGP , ξ_GNC_IntegratedGP_Lensing , ξ_GNC_LocalGP_IntegratedGP , ξ_GNC_IntegratedGP_LocalGP ,

    • out::String : name of the file where the results must be stored.

    • ss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log).

    Optional arguments

    This function recall internally map_ξ_GNC_multipole, so the kwargs are the same; we report them for comfortness:

    • s1 = nothing : comoving distance from the observer where the TPCF should be evaluated; if s1 = nothing, it is automatically set s1 = cosmo.s_eff from the given input cosmo::Cosmology.

    • L::Int = 0: order of the Legendre polynomial to be used

    • alg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):

      • :quad -> the integration over $\mu$ will be preformed through the Julia function quadgk

      from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.

      • :trap -> the integration over $\mu$ will be preformed through the Julia function trapz

      from the Trapz.jl Julia package, that uses the simple trapezoidal rulae.

      • :lobatto -> the integration over $\mu$ will be preformed through the Julia function gausslobatto

      from the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!

    • use_windows::Bool = false: tells if the integrand must consider the two window function $\phi$ and $\mathcal{F}$

    • obs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?

      • :yes or true -> all the observer effects will be considered
      • :no or false -> no observer term will be taken into account
      • :noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account
    • N_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • N_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    • N_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing

    • pr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)

    • kwargs... : other keyword arguments that will be passed to the selected GNC TPCF effect (ξ_GNC_Doppler, ξ_GNC_Lensing, ...)

    See also: integrand_ξ_GNC_multipole, ξ_GNC_multipole, print_map_ξ_GNC_multipole, WindowFIntegrated, Cosmology, y, s2, GR_EFFECTS_GNC, GaPSE.VEC_ξs_GNC

    source

    Two-Point Cross-Correlation Function Sum multipoles

    GaPSE.sum_ξ_GNC_multipoleFunction
     sum_ξ_GNC_multipole(s1, s, cosmo::Cosmology;
    -      s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,
    -      obs::Union{Bool,Symbol} = :noobsvel,
    -      N_lob::Int = 100, N_trap::Int = 50,
    -      atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,
    -      enhancer::Float64=1e6, N_log::Int = 1000, 
    -      pr::Bool = true,
    -      kwargs...) ::Tuple{Float64, Vector{Float64}}

    Evaluate the multipole of order L of all the Galaxy Number Counts (GNC) Two-Point Correlation Function (TPCF) multipoles and their sum in the comoving distance s1 and a comoving distance s from it for the input cosmo::Cosmology. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    This function makes a for-loop on the GaPSE.GR_EFFECTS_GNC strings, calling ξ_GNC_multipole for each of them. To each string corresponds pretty intuitively one of the 25 GNC effects. They are currently, in order:

    auto_newton , auto_doppler , auto_lensing , auto_localgp , auto_integratedgp , newton_doppler , doppler_newton , newton_lensing , lensing_newton , newton_localgp , localgp_newton , newton_integratedgp , integratedgp_newton , lensing_doppler , doppler_lensing , doppler_localgp , localgp_doppler , doppler_integratedgp , integratedgp_doppler , lensing_localgp , localgp_lensing , lensing_integratedgp , integratedgp_lensing , localgp_integratedgp , integratedgp_localgp ,

    Inputs

    • s1: the comoving distance where must be evaluated the integral

    • s: the comoving distance from s1 where must be evaluated the integral

    • cosmo::Cosmology: cosmology to be used in this computation

    Optional arguments

    This function recall internally ξ_GNC_multipole, so the kwargs are the same; we report them for comfortness:

    • L::Int = 0: order of the Legendre polynomial to be used

    • alg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):

      • :quad -> the integration over $\mu$ will be preformed through the Julia function quadgk

      from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.

      • :trap -> the integration over $\mu$ will be preformed through the Julia function trapz

      from the Trapz.jl Julia package, that uses the simple trapezoidal rulae.

      • :lobatto -> the integration over $\mu$ will be preformed through the Julia function gausslobatto

      from the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!

    • use_windows::Bool = false: tells if the integrand must consider the two window function $\phi$ and $\mathcal{F}$

    • obs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?

      • :yes or true -> all the observer effects will be considered
      • :no or false -> no observer term will be taken into account
      • :noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account
    • N_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • N_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    • kwargs... : other keyword arguments that will be passed to ALL the GNC TPCF effect (ξ_GNC_Doppler, ξ_GNC_Lensing, ...); if one of them has that keyword argument, it will use the given value, otherwise it will be unaffected.

    Returns

    A tuple containing:

    • the sum of all the ξ multipoles as first element
    • a Vector{Float64} with all the values of each ξ; they are ordered following GR_EFFECTS_GNC

    See also: integrand_ξ_GNC_multipole, ξ_GNC_multipole, map_sum_ξ_GNC_multipole, print_map_sum_ξ_GNC_multipole, Cosmology, GR_EFFECTS_GNC

    source
    GaPSE.map_sum_ξ_GNC_multipoleFunction
     map_sum_ξ_GNC_multipole(
    -      effect::Union{String,Function}, ss = nothing;
    -      s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,
    -      obs::Union{Bool,Symbol} = :noobsvel,
    -      N_lob::Int = 100, N_trap::Int = 50,
    -      atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,
    -      enhancer::Float64=1e6, N_log::Int = 1000, 
    -      pr::Bool = true,
    -      kwargs...) ::Tuple{Vector{Float64}, Vector{Float64}, Vector{Vector{Float64}}}

    Evaluate the multipole of order L of all the Galaxy Number Counts (GNC) Two-Point Correlation Function (TPCF) multipoles and their sum in the comoving distance s1, for all the comoving distances stored inside ss (representing the comoving distance from s1) for the input cosmo::Cosmology. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). If s1 = nothing, it is set s1 = cosmo.s_eff. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    This function makes a for-loop on the GaPSE.GR_EFFECTS_GNC strings, calling map_ξ_GNC_multipole for each of them. To each string corresponds pretty intuitively one of the 25 GNC effects. They are currently, in order:

    auto_newton , auto_doppler , auto_lensing , auto_localgp , auto_integratedgp , newton_doppler , doppler_newton , newton_lensing , lensing_newton , newton_localgp , localgp_newton , newton_integratedgp , integratedgp_newton , lensing_doppler , doppler_lensing , doppler_localgp , localgp_doppler , doppler_integratedgp , integratedgp_doppler , lensing_localgp , localgp_lensing , lensing_integratedgp , integratedgp_lensing , localgp_integratedgp , integratedgp_localgp ,

    Inputs

    • cosmo::Cosmology : cosmology to be used in this computation

    • ss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). This is why it is returned also the vector of the "input" values.

    Optional arguments

    This function recall internally map_ξ_GNC_multipole, so the kwargs are the same; we report them for comfortness:

    • s1 = nothing : comoving distance from the observer where the TPCF should be evaluated; if s1 = nothing, it is automatically set s1 = cosmo.s_eff from the given input cosmo::Cosmology.

    • L::Int = 0: order of the Legendre polynomial to be used

    • alg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):

      • :quad -> the integration over $\mu$ will be preformed through the Julia function quadgk

      from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.

      • :trap -> the integration over $\mu$ will be preformed through the Julia function trapz

      from the Trapz.jl Julia package, that uses the simple trapezoidal rulae.

      • :lobatto -> the integration over $\mu$ will be preformed through the Julia function gausslobatto

      from the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!

    • use_windows::Bool = false: tells if the integrand must consider the two window function $\phi$ and $\mathcal{F}$

    • obs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?

      • :yes or true -> all the observer effects will be considered
      • :no or false -> no observer term will be taken into account
      • :noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account
    • N_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • N_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    • N_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing

    • pr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)

    • kwargs... : other keyword arguments that will be passed to ALL the GNC TPCF effect (ξ_GNC_Doppler, ξ_GNC_Lensing, ...); if one of them has that keyword argument, it will use the given value, otherwise it will be unaffected.

    Returns

    A tuple containing:

    • as first element, the vector ss itself;
    • as second one, the Vector{Float64} of the sum of all the ξ multipoles;
    • as third one, a Vector{Vector{Float64}} with all the values of each ξ; they are ordered following GR_EFFECTS_GNC

    See also: map_ξ_GNC_multipole, sum_ξ_GNC_multipole, print_map_sum_ξ_GNC_multipole, Cosmology, GR_EFFECTS_GNC

    source
    GaPSE.print_map_sum_ξ_GNC_multipoleFunction
     print_map_sum_ξ_GNC_multipole(
    -      cosmo::Cosmology, out::String, ss = nothing;
    -      s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,
    -      obs::Union{Bool,Symbol} = :noobsvel,
    -      N_lob::Int = 100, N_trap::Int = 50,
    -      atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,
    -      enhancer::Float64=1e6, N_log::Int = 1000, 
    -      pr::Bool = true,
    -      single::Bool = true,
    -      kwargs...)

    Evaluate the multipole of order L of all the Galaxy Number Counts (GNC) Two-Point Correlation Function (TPCF) multipoles and their sum in the comoving distance s1, for all the comoving distances stored inside ss (representing the comoving distance from s1) for the input cosmo::Cosmology; finally, it saves the results inside the file out. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). If s1 = nothing, it is set s1 = cosmo.s_eff. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    This function makes a for-loop on the GaPSE.GR_EFFECTS_GNC strings, calling map_ξ_GNC_multipole for each of them. To each string corresponds pretty intuitively one of the 25 GNC effects. They are currently, in order:

    auto_newton , auto_doppler , auto_lensing , auto_localgp , auto_integratedgp , newton_doppler , doppler_newton , newton_lensing , lensing_newton , newton_localgp , localgp_newton , newton_integratedgp , integratedgp_newton , lensing_doppler , doppler_lensing , doppler_localgp , localgp_doppler , doppler_integratedgp , integratedgp_doppler , lensing_localgp , localgp_lensing , lensing_integratedgp , integratedgp_lensing , localgp_integratedgp , integratedgp_localgp ,

    Inputs

    • cosmo::Cosmology : cosmology to be used in this computation

    • out::String : name of the file where the results must be stored.

    • ss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log).

    Optional arguments

    This function recall internally map_ξ_GNC_multipole, so the kwargs are the same; we report them for comfortness:

    • s1 = nothing : comoving distance from the observer where the TPCF should be evaluated; if s1 = nothing, it is automatically set s1 = cosmo.s_eff from the given input cosmo::Cosmology.

    • L::Int = 0: order of the Legendre polynomial to be used

    • alg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):

      • :quad -> the integration over $\mu$ will be preformed through the Julia function quadgk

      from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.

      • :trap -> the integration over $\mu$ will be preformed through the Julia function trapz

      from the Trapz.jl Julia package, that uses the simple trapezoidal rulae.

      • :lobatto -> the integration over $\mu$ will be preformed through the Julia function gausslobatto

      from the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!

    • use_windows::Bool = false: tells if the integrand must consider the two window function $\phi$ and $\mathcal{F}$

    • obs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?

      • :yes or true -> all the observer effects will be considered
      • :no or false -> no observer term will be taken into account
      • :noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account
    • N_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • N_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    • N_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing

    • pr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)

    • single::Bool = true : if true, all the CFs are printed inside the file of the sum, in a table with 18 columns (first one for ss, second for their sum an the next 16 for each effect). Otherwise, a new directory "allstandalonesCFs" is created (in the same path given in out) and they are separately saved in files there placed.

    • kwargs... : other keyword arguments that will be passed to ALL the GNC TPCF effect (ξ_GNC_Doppler, ξ_GNC_Lensing, ...); if one of them has that keyword argument, it will use the given value, otherwise it will be unaffected.

    See also: map_ξ_GNC_multipole, sum_ξ_GNC_multipole, map_sum_ξ_GNC_multipole, Cosmology, GR_EFFECTS_GNC

    source
    diff --git a/dev/GNC_Correlations_1/index.html b/dev/GNC_Correlations_1/index.html new file mode 100644 index 00000000..37628590 --- /dev/null +++ b/dev/GNC_Correlations_1/index.html @@ -0,0 +1,420 @@ + +GNC TPCFs · GaPSE.jl

    GNC TPCFs

    Two-Point Auto-Correlation Functions

    GaPSE.ξ_GNC_NewtonianFunction
    ξ_GNC_Newtonian(P1::Point, P2::Point, y, cosmo::Cosmology; 
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, 
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,
    +    obs::Union{Bool, Symbol} = :noobsvel) ::Float64
    +
    +ξ_GNC_Newtonian(s1, s2, y, cosmo::Cosmology; 
    +    kwargs...) ::Float64

    Return the Two-Point Correlation Function (TPCF) of the Newtonian auto-correlation effect arising from the Galaxy Number Counts (GNC).

    In the first method, you should pass the two Point (P1 and P2) where to evaluate the function, while in the second method (that internally recalls the first) you must provide the two corresponding comoving distances s1 and s2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this TPCF is the following:

    \[\begin{split} + \xi^{\delta\delta} ( s_1 , s_2 , y ) = D_1 D_2 + \left[ + J_{00}^{\delta\delta} I_0^0 (s) + + J_{02}^{\delta\delta} I_2^0 (s) + + J_{04}^{\delta\delta} I_4^0 (s) + \right] \, , +\end{split}\]

    with

    \[\begin{split} + J_{00}^{\delta\delta} &= \frac{1}{15} + \left[ + 15 b_1 b_2 + 5 b_1 f_2 + 5 b_2 f_1 + + (2 y^2 + 1) f_1 f_2 + \right] + \, , \\ + %%%%%%%%%%%%%%%%%% + J_{02}^{\delta\delta} &= - \frac{1}{21 s^2} + \left\{ + s_1^2 \left[ + 14 b_2 f_1 + + 7 b_1 f_2 (3 y^2 - 1) + + (11 y^2 + 1) f_1 f_2 + \right] \right. \\ + &\left.\qquad \qquad + + s_2^2 \left[ + 14 b_1 f_2 + + 7 b_2 f_1 (3 y^2 - 1) + + (11 y^2 + 1) f_1 f_2 + \right] \right. \\ + &\left. \qquad \qquad + - 4 y s_1 s_2 \left[ + 7 b_2 f_1 + 7 b_1 f_2 + + (y^2 + 5) f_1 f_2 + \right] + \right\} + \, , \\ + %%%%%%%%%%%%%%%%%% + J_{04}^{\delta\delta} &= \frac{f_1 f_2}{35 s^4} + \left[ + 4 (3 y^2 - 1) (s_1^4 + s_2^4) + + 3 (3 + y^2)^2 s_1^2 s_2^2 - + 8 y s_1 s_2 (s_1^2 + s_2^2) (3 + y^2) + \right] + \, , +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + +\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $b_1$, $s_{\mathrm{b}, 1}$, $\mathit{f}_{\mathrm{evo}, 1}$ (and $b_2$, $s_{\mathrm{b}, 2}$, $\mathit{f}_{\mathrm{evo}, 2}$) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    In this TPCF there are no observer terms. The obs keyword is inserted only for compatibility with the other GNC TPCFs.

    Inputs

    • P1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • b1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:

      • if not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;
      • if you set one or more values, they will override the cosmo ones in this computation;
      • the two sets of values should be different only if you are interested in studing two galaxy species;
      • only the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities.
    • s_lim=nothing : parameter used in order to avoid the divergence of the $\mathcal{R}$ and $\mathfrak{R}$ denominators: when $0 \leq s \leq s_\mathrm{lim}$ the returned values are

      \[\forall \, s \in [ 0, s_\mathrm{lim} ] \; : \quad + \mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}_0 \, s_\mathrm{lim}} \; , \quad + \mathcal{R}(s) = 5 s_{\mathrm{b}} + + \frac{2 - 5 s_{\mathrm{b}}}{\mathcal{H}_0 \, s_\mathrm{lim}} + + \frac{\dot{\mathcal{H}}}{\mathcal{H}_0^2} - \mathit{f}_{\mathrm{evo}} \; .\]

      If nothing, the default value stored in cosmo will be considered.

    • obs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?

      • :yes or true -> all the observer effects will be considered
      • :no or false -> no observer term will be taken into account
      • :noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole

    source
    GaPSE.ξ_GNC_DopplerFunction
    ξ_GNC_Doppler(P1::Point, P2::Point, y, cosmo::Cosmology;
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, 
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,
    +    obs::Union{Bool, Symbol} = :noobsvel) ::Float64
    +
    +ξ_GNC_Doppler(s1, s2, y, cosmo::Cosmology; 
    +    kwargs...) ::Float64

    Return the Two-Point Correlation Function (TPCF) of the Doppler auto-correlation effect arising from the Galaxy Number Counts (GNC).

    In the first method, you should pass the two Point (P1 and P2) where to evaluate the function, while in the second method (that internally recalls the first) you must provide the two corresponding comoving distances s1 and s2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this TPCF is the following:

    \[\begin{split} + \xi^{v_{\parallel} v_{\parallel}}( s_1, s_2 , y ) &= + D_1 D_2 J_{\alpha}^{v_{\parallel} v_{\parallel}} + \left[ + J_{\beta}^{v_{\parallel} v_{\parallel}} + \left( + \frac{1}{45} I_0^0(s) + + \frac{2}{63} I_2^0 (s) + + \frac{1}{105} I_4^0(s) + \right) + + J^{v_{\parallel} v_{\parallel}}_{20} I_0^2 (s) + \right] + \\ + & + D_1 \left[ + J^{v_{\parallel} v_{\parallel}}_{31} ( s_1 , s_2) I_1^3 (s_1) + + J^{v_{\parallel} v_{\parallel}}_{11} ( s_1 , s_2) I_1^1 (s_1) + + J^{v_{\parallel} v_{\parallel}}_{13} ( s_1 ,s_2) I_3^1 (s_1) + \right] + \\ + & + D_2 \left[ + J^{v_{\parallel} v_{\parallel}}_{31} ( s_2 , s_1) I_1^3 (s_2) + + J^{v_{\parallel} v_{\parallel}}_{11} ( s_2 , s_1) I_1^1 (s_2) + + J^{v_{\parallel} v_{\parallel}}_{13} ( s_2 , s_1) I_3^1 (s_2) + \right] + \\ + & + J^{v_{\parallel} v_{\parallel}}_{\sigma2} \sigma_2 \, , +\end{split}\]

    with

    \[\begin{split} + J_{\alpha}^{v_{\parallel} v_{\parallel}} &= + f_1 f_2\mathcal{H}_1 \mathcal{H}_2 \mathcal{R}_1 \mathcal{R}_2 + \, , \\ + %%%%%%%%%%%%%% + J_{\beta}^{v_{\parallel} v_{\parallel}} &= + y^2 s_1 s_2 - 2 y (s_1^2 + s_2^2) + 3 s_1 s_2 + \, , \\ + %%%%%%%%%%%%%% + J_{20}^{v_{\parallel} v_{\parallel}} &= + \frac{1}{3} y s^2 + \, , \\ + %%%%%%%%%%%%%% + J_{31}^{v_{\parallel} v_{\parallel}} (s_1, s_2) &= + -y f_0 \mathcal{H}_0 s_1^2 f_1 \mathcal{R}_1 (\mathcal{R}_2 - 5 s_{\mathrm{b}, 2} + 2) + \, , \\ + %%%%%%%%%%%%%% + J_{11}^{v_{\parallel} v_{\parallel}} (s_1, s_2) &= + \frac{1}{5} y f_0 \mathcal{H}_0 s_1^2 f_1 \mathcal{H}_1 \mathcal{R}_1 + (\mathcal{R}_2 - 5 s_{\mathrm{b}, 2} + 2) + \, , \\ + %%%%%%%%%%%%%% + J_{13}^{v_{\parallel} v_{\parallel}} (s_1, s_2) &= + \frac{1}{5} y f_0 \mathcal{H}_0 s_1^2 f_1 \mathcal{H}_1 \mathcal{R}_1 + (\mathcal{R}_2 - 5 s_{\mathrm{b}, 2} + 2) + \, , \\ + %%%%%%%%%%%%%% + J_{\sigma2}^{v_{\parallel} v_{\parallel}} &= + \frac{1}{3} y f_0^2 \mathcal{H}_0^2 (\mathcal{R}_1 - 5 s_{\mathrm{b}, 1} + 2) + (\mathcal{R}_2 - 5 s_{\mathrm{b}, 2} + 2) + \, , +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + +\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $b_1$, $s_{\mathrm{b}, 1}$, $\mathit{f}_{\mathrm{evo}, 1}$ (and $b_2$, $s_{\mathrm{b}, 2}$, $\mathit{f}_{\mathrm{evo}, 2}$) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    In this TPCF, the only non-observer term is the first one (i.e. the bracket proportional to $D(s_1) \, D(s_2)$). The other three ones are all observer terms related to the observer velocity, so if you set obs = :no, obs = false or even obs = :noobsvel they will not be computed.

    Inputs

    • P1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • b1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:

      • if not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;
      • if you set one or more values, they will override the cosmo ones in this computation;
      • the two sets of values should be different only if you are interested in studing two galaxy species;
      • only the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities.
    • s_lim=nothing : parameter used in order to avoid the divergence of the $\mathcal{R}$ and $\mathfrak{R}$ denominators: when $0 \leq s \leq s_\mathrm{lim}$ the returned values are

      \[\forall \, s \in [ 0, s_\mathrm{lim} ] \; : \quad + \mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}_0 \, s_\mathrm{lim}} \; , \quad + \mathcal{R}(s) = 5 s_{\mathrm{b}} + + \frac{2 - 5 s_{\mathrm{b}}}{\mathcal{H}_0 \, s_\mathrm{lim}} + + \frac{\dot{\mathcal{H}}}{\mathcal{H}_0^2} - \mathit{f}_{\mathrm{evo}} \; .\]

      If nothing, the default value stored in cosmo will be considered.

    • obs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?

      • :yes or true -> all the observer effects will be considered
      • :no or false -> no observer term will be taken into account
      • :noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole

    source
    GaPSE.ξ_GNC_LensingFunction
    ξ_GNC_Lensing(P1::Point, P2::Point, y, cosmo::Cosmology;
    +    en::Float64 = 1e6, Δχ_min::Float64 = 1e-1,
    +    N_χs_2::Int = 100,
    +    s_b1=nothing, s_b2=nothing, 𝑓_evo1=nothing, 𝑓_evo2=nothing,
    +    s_lim=nothing, obs::Union{Bool,Symbol}=:noobsvel,
    +    suit_sampling::Bool=true ) ::Float64
    +
    +ξ_GNC_Lensing(s1, s2, y, cosmo::Cosmology; 
    +    kwargs...) ::Float64

    Return the Two-Point Correlation Function (TPCF) of the Lensing auto-correlation effect arising from the Galaxy Number Counts (GNC).

    In the first method, you should pass the two Point (P1 and P2) where to evaluate the function, while in the second method (that internally recalls the first) you must provide the two corresponding comoving distances s1 and s2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this TPCF is the following:

    \[\begin{split} + \xi^{\kappa\kappa} (s_1, s_2, y) = + \int_0^{s_1} \mathrm{d}\chi_1 \int_0^{s_2} \mathrm{d}\chi_2\; + J^{\kappa\kappa}_{\alpha} + &\left[ + J^{\kappa\kappa}_{00} I_0^0(\Delta\chi) + + J^{\kappa\kappa}_{02} I_2^0(\Delta\chi) + + \right.\\ + &\left. + J^{\kappa\kappa}_{31} I_1^3(\Delta\chi) + + J^{\kappa\kappa}_{22} I_2^2(\Delta\chi) + \right] \, , +\end{split}\]

    with

    \[\begin{split} + J^{\kappa\kappa}_{\alpha} & = + \frac{ + \mathcal{H}_0^4 \Omega_{\mathrm{M}0}^2 D(\chi_1) D(\chi_2) + }{ + s_1 s_2 a(\chi_1) a(\chi_2)} + (\chi_1 - s_1)(\chi_2 - s_2) + (5 s_{\mathrm{b}, 1} - 2)(5 s_{\mathrm{b}, 2} - 2) + \, , \\ + %%%%&%%%%%%%%%%%%% + J^{\kappa\kappa}_{00} & = + -\frac{ 3 \chi_1^2 \chi_2^2}{4 \Delta\chi^4} (y^2 - 1) + \left[ + 8 y (\chi_1^2 + \chi_2^2) - 9\chi_1\chi_2y^2 - + 7\chi_1\chi_2 + \right] + \, , \\ + %%%%&%%%%%%%%%%%%% + J^{\kappa\kappa}_{02} & = + -\frac{ 3 \chi_1^2 \chi_2^2}{2 \Delta\chi^4}(y^2 - 1) + \left[ + 4 y (\chi_1^2 + \chi_2^2) - 3 \chi_1 \chi_2 y^2 - + 5 \chi_1 \chi_2 + \right] + \, , \\ + %%%%%%%%%%%%%%%%%% + J^{\kappa\kappa}_{31} & = 9 y \Delta\chi^2 + \, , \\ + %%%%%%%%%%%%%%%%%% + J^{\kappa\kappa}_{22} & = + \frac{9 \chi_1 \chi_2}{4 \Delta\chi^4} + \left[ + 2(\chi_1^4 + \chi_2^4)(7 y^2 - 3) - + 16 y \chi_1 \chi_2 (\chi_1^2 + \chi_2^2)(y^2 + 1) + + \right.\\ + &\left.\qquad\qquad\qquad + \chi_1^2 \chi_2^2 (11y^4 + 14y^2 + 23) + \right] + \, , +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + +\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $b_1$, $s_{\mathrm{b}, 1}$, $\mathit{f}_{\mathrm{evo}, 1}$ (and $b_2$, $s_{\mathrm{b}, 2}$, $\mathit{f}_{\mathrm{evo}, 2}$) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    In this TPCF there are no observer terms. The obs keyword is inserted only for compatibility with the other GNC TPCFs.

    This function is computed integrating integrand_ξ_GNC_Lensing with trapz() from the Trapz Julia package.

    Inputs

    • P1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • b1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:

      • if not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;
      • if you set one or more values, they will override the cosmo ones in this computation;
      • the two sets of values should be different only if you are interested in studing two galaxy species;
      • only the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities.
    • s_lim=nothing : parameter used in order to avoid the divergence of the $\mathcal{R}$ and $\mathfrak{R}$ denominators: when $0 \leq s \leq s_\mathrm{lim}$ the returned values are

      \[\forall \, s \in [ 0, s_\mathrm{lim} ] \; : \quad + \mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}_0 \, s_\mathrm{lim}} \; , \quad + \mathcal{R}(s) = 5 s_{\mathrm{b}} + + \frac{2 - 5 s_{\mathrm{b}}}{\mathcal{H}_0 \, s_\mathrm{lim}} + + \frac{\dot{\mathcal{H}}}{\mathcal{H}_0^2} - \mathit{f}_{\mathrm{evo}} \; .\]

      If nothing, the default value stored in cosmo will be considered.

    • obs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?

      • :yes or true -> all the observer effects will be considered
      • :no or false -> no observer term will be taken into account
      • :noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account
    • en::Float64 = 1e6: just a float number used in order to deal better with small numbers;

    • Δχ_min::Float64 = 1e-4 : when $\Delta\chi = \sqrt{\chi_1^2 + \chi_2^2 - 2 \, \chi_1 \chi_2 y} \to 0^{+}$, some $I_\ell^n$ term diverges, but the overall parenthesis has a known limit:

      \[ \lim_{\Delta\chi \to 0^{+}} \left( + J_{00}^{\kappa\kappa} \, I^0_0(\Delta\chi) + + J_{02}^{\kappa\kappa} \, I^0_2(\Delta\chi) + + J_{31}^{\kappa\kappa} \, I^3_1(\Delta\chi) + + J_{22}^{\kappa\kappa} \, I^2_2(\Delta\chi) + \right) = + 3 \, \sigma_2 + \frac{6}{5} \, \chi_2^2 \, \sigma_0\]

      So, when it happens that $\Delta\chi < \Delta\chi_\mathrm{min}$, the function considers this limit as the result of the parenthesis instead of calculating it in the normal way; it prevents computational divergences.

    • N_χs_2::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ1) and (0, s2) (for χ2); it has been checked that with N_χs_2 ≥ 50 the result is stable.

    • suit_sampling::Bool = true : this bool keyword can be found in all the TPCFs which have at least one χ integral; it is conceived to enable a sampling of the χ integral(s) suited for the given TPCF; however, it actually have an effect only in the TPCFs that have such a sampling implemented in the code. Currently, only ξ_GNC_Newtonian_Lensing (and its simmetryc TPCF) has it.

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, integrand_ξ_GNC_Lensing

    source
    GaPSE.ξ_GNC_LocalGPFunction
     ξ_GNC_LocalGP(P1::Point, P2::Point, y, cosmo::Cosmology; 
    +      obs::Union{Bool, Symbol} = :noobsvel) ::Float64
    +
    + ξ_GNC_LocalGP(s1, s2, y, cosmo::Cosmology; 
    +      kwargs...) ::Float64

    Return the Two-Point Correlation Function (TPCF) of the Local Gravitational Potential (GP) auto-correlation effect arising from the Galaxy Number Counts (GNC).

    In the first method, you should pass the two Point (P1 and P2) where to evaluate the function, while in the second method (that internally recalls the first) you must provide the two corresponding comoving distances s1 and s2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this TPCF is the following:

    \[\begin{split} + \xi^{\phi\phi}( s_1 , s_2, y ) &= + D_1 D_2 J_{40}^{\phi\phi}( s_1, s_2 ) \tilde{I}_0^4 (s) + + D_2 J_{40}^{\phi_0 \phi}(s_1,s_2) \tilde{I}_0^4 (s_2) + \\ + &+ D_1 J_{40}^{\phi_0 \phi}(s_2,s_1) \tilde{I}_0^4 (s_1) + + J_{\sigma4}^{\phi\phi} (s_1, s_2) \sigma_4 \, , +\end{split}\]

    with

    \[\begin{split} + J_{40}^{\phi\phi} (s_1, s_2) &= + \frac{s^4}{4 a_1 a_2} + \left[ + 2 a_2 f_2 (\mathit{f}_{\mathrm{evo}, 2} - 3) \mathcal{H}_2^2 + + 3 \mathcal{H}_0^2 \Omega_{\mathrm{M}0} (f_2 + \mathcal{R}_2 + 5 s_{\mathrm{b}, 2} - 2) + \right] \times + \\ + &\qquad\qquad + \left[ + 2 a_1 f_1(\mathit{f}_{\mathrm{evo}, 1}-3) \mathcal{H}_1^2 + + 3 \mathcal{H}_0^2 \Omega_{\mathrm{M}0} (f_1 + \mathcal{R}_1 + 5 s_{\mathrm{b}, 1} - 2) + \right] + \, ,\\ +%%%%%%%%%%%%%%%%% + J_{40}^{\phi_0 \phi}(s_1, s_2) &= + \frac{\mathcal{H}_0 s_2^4}{4 s_1 a_2} + \left[ + \mathcal{H}_0 s_1 (2 f_0-3 \Omega_{\mathrm{M}0}) \mathcal{R}_1 + + 2 f_0 (5 s_{\mathrm{b}, 1}-2) + \right] \times + \\ + &\qquad\qquad\left[ + 2 a_2 f_2 (\mathit{f}_{\mathrm{evo}, 2} - 3) \mathcal{H}_2^2 + + 3 \mathcal{H}_0^2 \Omega_{\mathrm{M}0} (f_2 + \mathcal{R}_2 + 5 s_{\mathrm{b}, 2} - 2) + \right] + \, , \\ +%%%%%%%%%%%%%%%%%%%% + J_{\sigma 4}(s_1, s_2)&= + \frac{\mathcal{H}_0^2 }{4 s_1 s_2} + \left[ + \mathcal{H}_0 s_1 (2 f_0-3 \Omega_{\mathrm{M}0}) \mathcal{R}_1 + + 2 f_0(5 s_{\mathrm{b}, 1}-2) + \right] \times + \\ + &\qquad\qquad\left[ + 3 \Omega_{\mathrm{M}0} \mathcal{H}_0 s_2 \mathcal{R}_2 + + 2 f_0 (\mathcal{H}_0 s_2 \mathcal{R}_2 + 5 s_{\mathrm{b}, 2} - 2) + \right] + \, , +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + +\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $b_1$, $s_{\mathrm{b}, 1}$, $\mathit{f}_{\mathrm{evo}, 1}$ (and $b_2$, $s_{\mathrm{b}, 2}$, $\mathit{f}_{\mathrm{evo}, 2}$) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    In this TPCF, the only non-observer term is the first one (i.e. the bracket proportional to $D(s_1) \, D(s_2)$), so if you set obs = :no or obs = false that is the only one computed. The other three terms are all observer terms, but not related to the observer velocity, so if you set obs = :noobsvel they will still be computed.

    Inputs

    • P1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • b1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:

      • if not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;
      • if you set one or more values, they will override the cosmo ones in this computation;
      • the two sets of values should be different only if you are interested in studing two galaxy species;
      • only the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities.
    • s_lim=nothing : parameter used in order to avoid the divergence of the $\mathcal{R}$ and $\mathfrak{R}$ denominators: when $0 \leq s \leq s_\mathrm{lim}$ the returned values are

      \[\forall \, s \in [ 0, s_\mathrm{lim} ] \; : \quad + \mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}_0 \, s_\mathrm{lim}} \; , \quad + \mathcal{R}(s) = 5 s_{\mathrm{b}} + + \frac{2 - 5 s_{\mathrm{b}}}{\mathcal{H}_0 \, s_\mathrm{lim}} + + \frac{\dot{\mathcal{H}}}{\mathcal{H}_0^2} - \mathit{f}_{\mathrm{evo}} \; .\]

      If nothing, the default value stored in cosmo will be considered.

    • obs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?

      • :yes or true -> all the observer effects will be considered
      • :no or false -> no observer term will be taken into account
      • :noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole

    source
    GaPSE.ξ_GNC_IntegratedGPFunction
    ξ_GNC_IntegratedGP(
    +    P1::Point, P2::Point, y, cosmo::Cosmology;
    +    en::Float64=1e10, N_χs_2::Int=100, 
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, 
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,
    +    obs::Union{Bool,Symbol}=:noobsvel,
    +    suit_sampling::Bool=true
    +    ) ::Float64
    +
    +ξ_GNC_IntegratedGP(s1, s2, y, cosmo::Cosmology; 
    +    kwargs...) ::Float64

    Return the Two-Point Correlation Function (TPCF) of the Integrated Gravitational Potential (GP) auto-correlation effect arising from the Galaxy Number Counts (GNC).

    In the first method, you should pass the two Point (P1 and P2) where to evaluate the function, while in the second method (that internally recalls the first) you must provide the two corresponding comoving distances s1 and s2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this TPCF is the following:

    \[\begin{split} + \xi^{\int\!\phi \int \!\phi }( s_1 , s_2, y ) = + \int_0^{s_1}\mathrm{d} \chi_1 \int_0^{s_2}\mathrm{d} \chi_2 \; + J^{\int \!\phi \int \!\phi}_{40} + \tilde{I}_0^4 ( \Delta\chi) \, , +\end{split}\]

    with

    \[\begin{split} + J^{\int \!\phi\int \!\phi}_{40} = + \frac{ + 9 \Delta\chi ^4 \mathcal{H}_0^4 \Omega_{\mathrm{M}, 0}^2 D(\chi_1) D(\chi_2) + }{ + a(\chi_1) a(\chi_2) s_1 s_2 + } + &\left[ + s_1 (f(\chi_1) - 1) \mathcal{H}(\chi_1) \mathcal{R}_1 - 5 s_{\mathrm{b}, 1} + 2 + \right] \times + \nonumber \\ + &\left[ + s_2 (f(\chi_2) - 1) \mathcal{H}(\chi_2) \mathcal{R}_2 - 5 s_{\mathrm{b}, 2} + 2 + \right] + \, , +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + +\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $b_1$, $s_{\mathrm{b}, 1}$, $\mathit{f}_{\mathrm{evo}, 1}$ (and $b_2$, $s_{\mathrm{b}, 2}$, $\mathit{f}_{\mathrm{evo}, 2}$) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    In this TPCF there are no observer terms. The obs keyword is inserted only for compatibility with the other GNC TPCFs.

    This function is computed integrating integrand_ξ_GNC_IntegratedGP with trapz() from the Trapz Julia package.

    Inputs

    • P1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • b1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:

      • if not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;
      • if you set one or more values, they will override the cosmo ones in this computation;
      • the two sets of values should be different only if you are interested in studing two galaxy species;
      • only the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities.
    • s_lim=nothing : parameter used in order to avoid the divergence of the $\mathcal{R}$ and $\mathfrak{R}$ denominators: when $0 \leq s \leq s_\mathrm{lim}$ the returned values are

      \[\forall \, s \in [ 0, s_\mathrm{lim} ] \; : \quad + \mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}_0 \, s_\mathrm{lim}} \; , \quad + \mathcal{R}(s) = 5 s_{\mathrm{b}} + + \frac{2 - 5 s_{\mathrm{b}}}{\mathcal{H}_0 \, s_\mathrm{lim}} + + \frac{\dot{\mathcal{H}}}{\mathcal{H}_0^2} - \mathit{f}_{\mathrm{evo}} \; .\]

      If nothing, the default value stored in cosmo will be considered.

    • obs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?

      • :yes or true -> all the observer effects will be considered
      • :no or false -> no observer term will be taken into account
      • :noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account
    • en::Float64 = 1e6: just a float number used in order to deal better with small numbers;

    • N_χs_2::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ1) and (0, s2) (for χ2); it has been checked that with N_χs_2 ≥ 50 the result is stable.

    • suit_sampling::Bool = true : this bool keyword can be found in all the TPCFs which have at least one χ integral; it is conceived to enable a sampling of the χ integral(s) suited for the given TPCF; however, it actually have an effect only in the TPCFs that have such a sampling implemented in the code. Currently, only ξ_GNC_Newtonian_Lensing (and its simmetryc TPCF) has it.

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, integrand_ξ_GNC_IntegratedGP

    source

    Two-Point Auto-Correlation Functions integrands

    GaPSE.integrand_ξ_GNC_LensingFunction
    integrand_ξ_GNC_Lensing(
    +    IP1::Point, IP2::Point,
    +    P1::Point, P2::Point,
    +    y, cosmo::Cosmology;
    +    Δχ_min::Float64=1e-1, b1=nothing, b2=nothing, 
    +    s_b1=nothing, s_b2=nothing, 𝑓_evo1=nothing, 𝑓_evo2=nothing,
    +    s_lim=nothing, obs::Union{Bool,Symbol}=:noobsvel
    +    ) ::Float64
    +
    +integrand_ξ_GNC_Lensing(
    +    χ1::Float64, χ2::Float64,
    +    s1::Float64, s2::Float64,
    +    y, cosmo::Cosmology;
    +    kwargs... )::Float64

    Return the integrand of the Two-Point Correlation Function (TPCF) of the Lensing auto-correlation effect arising from the Galaxy Number Counts (GNC).

    In the first method, you should pass the two extreme Points (P1 and P2) and the two intermediate integrand Points (IP1 and IP2) where to evaluate the function. In the second method (that internally recalls the first), you must provide the four corresponding comoving distances s1, s2, χ1, χ2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this integrand is the following:

    \[\begin{equation} + f^{\kappa\kappa} (\chi_1, \chi_2, s_1, s_2, y) = + J^{\kappa\kappa}_{\alpha} + \left[ + J^{\kappa\kappa}_{00} I_0^0(\Delta\chi) + + J^{\kappa\kappa}_{02} I_2^0(\Delta\chi) + + J^{\kappa\kappa}_{31} I_1^3(\Delta\chi) + + J^{\kappa\kappa}_{22} I_2^2(\Delta\chi) + \right] \, , +\end{equation}\]

    with

    \[\begin{split} + J^{\kappa\kappa}_{\alpha} & = + \frac{ + \mathcal{H}_0^4 \Omega_{\mathrm{M}0}^2 D(\chi_1) D(\chi_2) + }{ + s_1 s_2 a(\chi_1) a(\chi_2)} + (\chi_1 - s_1)(\chi_2 - s_2) + (5 s_{\mathrm{b}, 1} - 2)(5 s_{\mathrm{b}, 2} - 2) + \, , \\ + %%%%&%%%%%%%%%%%%% + J^{\kappa\kappa}_{00} & = + -\frac{ 3 \chi_1^2 \chi_2^2}{4 \Delta\chi^4} (y^2 - 1) + \left[ + 8 y (\chi_1^2 + \chi_2^2) - 9\chi_1\chi_2y^2 - + 7\chi_1\chi_2 + \right] + \, , \\ + %%%%&%%%%%%%%%%%%% + J^{\kappa\kappa}_{02} & = + -\frac{ 3 \chi_1^2 \chi_2^2}{2 \Delta\chi^4}(y^2 - 1) + \left[ + 4 y (\chi_1^2 + \chi_2^2) - 3 \chi_1 \chi_2 y^2 - + 5 \chi_1 \chi_2 + \right] + \, , \\ + %%%%%%%%%%%%%%%%%% + J^{\kappa\kappa}_{31} & = 9 y \Delta\chi^2 + \, , \\ + %%%%%%%%%%%%%%%%%% + J^{\kappa\kappa}_{22} & = + \frac{9 \chi_1 \chi_2}{4 \Delta\chi^4} + \left[ + 2(\chi_1^4 + \chi_2^4)(7 y^2 - 3) - + 16 y \chi_1 \chi_2 (\chi_1^2 + \chi_2^2)(y^2 + 1) + + \right.\\ + &\left.\qquad\qquad\qquad + \chi_1^2 \chi_2^2 (11y^4 + 14y^2 + 23) + \right] + \, , +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + +\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $b_1$, $s_{\mathrm{b}, 1}$, $\mathit{f}_{\mathrm{evo}, 1}$ (and $b_2$, $s_{\mathrm{b}, 2}$, $\mathit{f}_{\mathrm{evo}, 2}$) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    In this TPCF there are no observer terms. The obs keyword is inserted only for compatibility with the other GNC TPCFs.

    This function is used inside ξ_GNC_Lensing with trapz() from the Trapz Julia package.

    Inputs

    • IP1::Point, IP2::Point, P1::Point, P2::Point or χ1, χ2, s1, s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • b1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:

      • if not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;
      • if you set one or more values, they will override the cosmo ones in this computation;
      • the two sets of values should be different only if you are interested in studing two galaxy species;
      • only the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities.
    • s_lim=nothing : parameter used in order to avoid the divergence of the $\mathcal{R}$ and $\mathfrak{R}$ denominators: when $0 \leq s \leq s_\mathrm{lim}$ the returned values are

      \[\forall \, s \in [ 0, s_\mathrm{lim} ] \; : \quad + \mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}_0 \, s_\mathrm{lim}} \; , \quad + \mathcal{R}(s) = 5 s_{\mathrm{b}} + + \frac{2 - 5 s_{\mathrm{b}}}{\mathcal{H}_0 \, s_\mathrm{lim}} + + \frac{\dot{\mathcal{H}}}{\mathcal{H}_0^2} - \mathit{f}_{\mathrm{evo}} \; .\]

      If nothing, the default value stored in cosmo will be considered.

    • obs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?

      • :yes or true -> all the observer effects will be considered
      • :no or false -> no observer term will be taken into account
      • :noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account
    • Δχ_min::Float64 = 1e-4 : when $\Delta\chi = \sqrt{\chi_1^2 + \chi_2^2 - 2 \, \chi_1 \chi_2 y} \to 0^{+}$, some $I_\ell^n$ term diverges, but the overall parenthesis has a known limit:

      \[ \lim_{\Delta\chi \to 0^{+}} \left( + J_{00}^{\kappa\kappa} \, I^0_0(\Delta\chi) + + J_{02}^{\kappa\kappa} \, I^0_2(\Delta\chi) + + J_{31}^{\kappa\kappa} \, I^3_1(\Delta\chi) + + J_{22}^{\kappa\kappa} \, I^2_2(\Delta\chi) + \right) = + 3 \, \sigma_2 + \frac{6}{5} \, \chi_2^2 \, \sigma_0\]

      So, when it happens that $\Delta\chi < \Delta\chi_\mathrm{min}$, the function considers this limit as the result of the parenthesis instead of calculating it in the normal way; it prevents computational divergences.

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_Lensing

    source
    GaPSE.integrand_ξ_GNC_IntegratedGPFunction
    integrand_ξ_GNC_IntegratedGP(
    +    IP1::Point, IP2::Point,
    +    P1::Point, P2::Point,
    +    y, cosmo::Cosmology; 
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, 
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,
    +    obs::Union{Bool,Symbol}=:noobsvel
    +    ) ::Float64
    +
    +integrand_ξ_GNC_IntegratedGP(
    +    χ1::Float64, χ2::Float64,
    +    s1::Float64, s2::Float64,
    +    y, cosmo::Cosmology;
    +    kwargs...) ::Float64

    Return the integrand of the Two-Point Correlation Function (TPCF) of the Integrated Gravitational Potential (GP) auto-correlation effect arising from the Galaxy Number Counts (GNC).

    In the first method, you should pass the two extreme Points (P1 and P2) and the two intermediate integrand Points (IP1 and IP2) where to evaluate the function. In the second method (that internally recalls the first), you must provide the four corresponding comoving distances s1, s2, χ1, χ2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this integrand is the following:

    \[\begin{equation} + f^{\int \!\phi\int \!\phi} (\chi_1, \chi_2, s_1, s_2, y) = + J^{\int \!\phi \int \!\phi}_{40} + \tilde{I}_0^4 ( \Delta\chi) \, , +\end{equation}\]

    with

    \[\begin{split} + J^{\int \!\phi\int \!\phi}_{40} = + \frac{ + 9 \Delta\chi ^4 \mathcal{H}_0^4 \Omega_{\mathrm{M}0}^2 D(\chi_1) D(\chi_2) + }{ + a(\chi_1) a(\chi_2) s_1 s_2 + } + &\left[ + s_1 (f(\chi_1) - 1) \mathcal{H}(\chi_1) \mathcal{R}_1 - 5 s_{\mathrm{b}, 1} + 2 + \right] \times + \nonumber \\ + &\left[ + s_2 (f(\chi_2) - 1) \mathcal{H}(\chi_2) \mathcal{R}_2 - 5 s_{\mathrm{b}, 2} + 2 + \right] + \, , +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + +\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $b_1$, $s_{\mathrm{b}, 1}$, $\mathit{f}_{\mathrm{evo}, 1}$ (and $b_2$, $s_{\mathrm{b}, 2}$, $\mathit{f}_{\mathrm{evo}, 2}$) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    In this TPCF there are no observer terms. The obs keyword is inserted only for compatibility with the other GNC TPCFs.

    This function is used inside ξ_GNC_IntegratedGP with trapz() from the Trapz Julia package.

    Inputs

    • IP1::Point, IP2::Point, P1::Point, P2::Point or χ1, χ2, s1, s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • b1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:

      • if not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;
      • if you set one or more values, they will override the cosmo ones in this computation;
      • the two sets of values should be different only if you are interested in studing two galaxy species;
      • only the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities.
    • s_lim=nothing : parameter used in order to avoid the divergence of the $\mathcal{R}$ and $\mathfrak{R}$ denominators: when $0 \leq s \leq s_\mathrm{lim}$ the returned values are

      \[\forall \, s \in [ 0, s_\mathrm{lim} ] \; : \quad + \mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}_0 \, s_\mathrm{lim}} \; , \quad + \mathcal{R}(s) = 5 s_{\mathrm{b}} + + \frac{2 - 5 s_{\mathrm{b}}}{\mathcal{H}_0 \, s_\mathrm{lim}} + + \frac{\dot{\mathcal{H}}}{\mathcal{H}_0^2} - \mathit{f}_{\mathrm{evo}} \; .\]

      If nothing, the default value stored in cosmo will be considered.

    • obs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?

      • :yes or true -> all the observer effects will be considered
      • :no or false -> no observer term will be taken into account
      • :noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_IntegratedGP

    source
    diff --git a/dev/GNC_Correlations_2/index.html b/dev/GNC_Correlations_2/index.html new file mode 100644 index 00000000..590415a0 --- /dev/null +++ b/dev/GNC_Correlations_2/index.html @@ -0,0 +1,650 @@ + +GNC TPCFs · GaPSE.jl

    GNC TPCFs

    Two-Point Cross-Correlation Functions

    GaPSE.ξ_GNC_Newtonian_DopplerFunction
    ξ_GNC_Newtonian_Doppler(
    +    P1::Point, P2::Point, y, cosmo::Cosmology; 
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, 
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing,
    +    s_lim=nothing, obs::Union{Bool, Symbol} = :noobsvel
    +    ) ::Float64
    +
    +ξ_GNC_Newtonian_Doppler(s1, s2, y, cosmo::Cosmology;
    +    kwargs...) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Newtonian and the Doppler effects arising from the Galaxy Number Counts (GNC).

    In the first method, you should pass the two Point (P1 and P2) where to evaluate the function, while in the second method (that internally recalls the first) you must provide the two corresponding comoving distances s1 and s2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this TPCF is the following:

    \[\begin{split} + \xi^{\delta v_{\parallel}}( s_1 , s_2, y ) &= + D_1 D_2 J^{\delta v_{\parallel}}_{\alpha} \left[ + J^{\delta v_{\parallel}}_{00} I^0_{0} (s) + + J^{\delta v_{\parallel}}_{02} I^0_2 (s) + + J^{\delta v_{\parallel}}_{04} I^0_4 (s) + \right]\nonumber \\ + &+ D_1 J^{\delta v_{\parallel}}_{\beta} \left[ + J^{\delta v_{\parallel}}_{11} I^1_{1} (s_1) + + J^{\delta v_{\parallel}}_{13} I^1_{3} (s_1) + \right] +\end{split}\]

    with

    \[\begin{split} + J^{\delta v_{\parallel}}_{\alpha} &= f_2 \mathcal{H}_2 \mathcal{R}_2 + \, , \\ + %%%%%%%%%%%%%%%%%%%%% + J^{\delta v_{\parallel}}_{\beta} &= + y f_0 \mathcal{H}_0 s_1 (\mathcal{R}_2 - 5s_{\mathrm{b}, 2} + 2) + \, , \\ + %%%%%%%%%%%%%%%%%%%%% + J^{\delta v_{\parallel}}_{00} &= + \frac{1}{15} \left\{ + s_2 \left[ 5 b_1 + (2 y^2 + 1) f_1 \right] - + y s_1 \left[ 3 f_1 + 5 b_1 \right] + \right\} + \, , \\ + %%%%%%%%%%%%%%%%%%%%% + J^{\delta v_{\parallel}}_{02} &= + \frac{1}{21 s^2} + \left\{ + \left[ + (y^2 + 1) f_1 + 7 b_1 + \right] s_2^3 - + y \left[ + 21 b_1 + (5 y^2 + 4) f_1 + \right] s_1 s_2^2 + + \right.\nonumber \\ + &\left. \qquad \qquad + \left[ + 7 (2 y^2 + 1) b_1 + (10 y^2 - 1) f_1 + \right] s_1^2 s_2 - + y \left[ + 7 b_1 + 3 f_1 + \right] s_1^3 + \right\} + \, , \\ + %%%%%%%%%%%%%%%%%%%%% + J^{\delta v_{\parallel}}_{04} &= + \frac{f_1}{35 s^2} + \left[ + 2 y s_1 ^3 + - 2 (y^2 + 2) s_1 ^2 s_2 + + y (y^2 + 5) s_1 s_2^2 + + (1 - 3 y^2) s_2 ^3 + \right] + \, , \\ + %%%%%%%%%%%%%%%%%%%%% + J^{\delta v_{\parallel}}_{11} &= \frac{1}{5} (5b_1+3 f_1 ) + \, , \\ + %%%%%%%%%%%%%%%%%%%%% + J^{\delta v_{\parallel}}_{13} &= -\frac{2}{5} f_1 + \, , +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + +\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $b_1$, $s_{\mathrm{b}, 1}$, $\mathit{f}_{\mathrm{evo}, 1}$ (and $b_2$, $s_{\mathrm{b}, 2}$, $\mathit{f}_{\mathrm{evo}, 2}$) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    In this TPCF, the term proportional to only$D(s_1)$ is an observer term (while the term proportional to $D(s_1) \, D(s_2)$ is not) and it does depend on the observer velocity. Consequently, if you set obs = :yes or obs = true both of them will computed, while for obs = :no, obs = false or even obs = :noobsvel only the first one will be taken into account.

    Inputs

    • P1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • b1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:

      • if not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;
      • if you set one or more values, they will override the cosmo ones in this computation;
      • the two sets of values should be different only if you are interested in studing two galaxy species;
      • only the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities.
    • s_lim=nothing : parameter used in order to avoid the divergence of the $\mathcal{R}$ and $\mathfrak{R}$ denominators: when $0 \leq s \leq s_\mathrm{lim}$ the returned values are

      \[\forall \, s \in [ 0, s_\mathrm{lim} ] \; : \quad + \mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}_0 \, s_\mathrm{lim}} \; , \quad + \mathcal{R}(s) = 5 s_{\mathrm{b}} + + \frac{2 - 5 s_{\mathrm{b}}}{\mathcal{H}_0 \, s_\mathrm{lim}} + + \frac{\dot{\mathcal{H}}}{\mathcal{H}_0^2} - \mathit{f}_{\mathrm{evo}} \; .\]

      If nothing, the default value stored in cosmo will be considered.

    • obs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?

      • :yes or true -> all the observer effects will be considered
      • :no or false -> no observer term will be taken into account
      • :noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole

    source
    GaPSE.ξ_GNC_Doppler_NewtonianFunction
    ξ_GNC_Doppler_Newtonian(s1, s2, y, cosmo::Cosmology; 
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, 
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing, 
    +    obs::Union{Bool, Symbol} = :noobsvel
    +    ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Doppler and the Newtonian effects arising from the Galaxy Number Counts (GNC).

    It's computed through the symmetric function ξ_GNC_Newtonian_Doppler; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    Inputs

    • s1 and s2: comoving distances where the TPCF has to be calculated;

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • kwargs... : Keyword arguments to be passed to the symmetric TPCF

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_Newtonian_Doppler

    source
    GaPSE.ξ_GNC_Newtonian_LensingFunction
    ξ_GNC_Newtonian_Lensing(s1, s2, y, cosmo::Cosmology;
    +    en::Float64=1e6, N_χs::Int=100, Δχ_min::Float64=1e-1,
    +    obs::Union{Bool,Symbol}=:noobsvel, 
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, 
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,
    +    suit_sampling::Bool = true )::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Newtonian and the Lensing effects arising from the Galaxy Number Counts (GNC).

    You must provide the two comoving distances s1 and s2 where to evaluate the function. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this TPCF is the following:

    \[\begin{equation} + \xi^{\delta \kappa} ( s_1 , s_2, y ) = + D_1 \int_0^{s_2}\mathrm{d} \chi_2 + J^{\delta \kappa}_{\alpha} + \left[ + J^{\delta \kappa}_{00} I_0^0 ( \Delta\chi_2 ) + + J^{\delta \kappa}_{02} I_2^0 ( \Delta \chi_2 ) + + J^{\delta \kappa}_{04} I_4^0 ( \Delta \chi_2 ) + \right] \, , +\end{equation}\]

    with

    \[\begin{split} + J^{\delta \kappa}_{\alpha} &= + \frac{ + \mathcal{H}_0 ^2 \Omega_{\mathrm{M}0} D (\chi_2) + }{ + a(\chi_2 ) s_2 + } + (\chi_2 - s_2 ) (5s_{\mathrm{b}, 2} - 2) + \, , \\ + %%%%%%%%%%%%%%%%%%%%%%%% + J^{\delta \kappa}_{00} &= + \frac{1}{5} + \left[ + (3 y^2 - 1) \chi_2 f_1 - y s_1(3 f_1 + 5 b_1) + \right] + \, , \\ + %%%%%%%%%%%%%%%%%%%%%%%% + J^{\delta \kappa}_{02} &= + \frac{1}{14 \Delta\chi_2^2} + \left\{ + 4 f_1 (3 y^2 - 1) \chi_2^3 - + 2 y + \left[ + (3 y^2 + 8) f_1 + 7 b_1 + \right] s_1 \chi_2^2 + + \right. \nonumber \\ + &\left.\qquad \qquad\qquad + \left[ + (9 y^2 + 11) f_1 - 7 (y^2 + 3) b_1 + \right] s_1^2 \chi_2 - + 2 y \left[7 b_1 + 3 f_1 \right] s_1^3 + \right\} + \, , \\ + %%%%%%%%%%%%%%%%%%%%%%%% + J^{\delta \kappa}_{04} &= + \frac{f_1}{70 \Delta\chi_2^4 } + \left\{ + (6 y^2 - 2) \chi_2^5 + + 6 y (y^2 - 3) s_1 \chi_2^4 - + (y^4 + 12 y^2 - 21) s_1^2 \chi_2^3 + + \right.\nonumber \\ + &\left.\qquad\qquad\qquad + 2 y (y^2 + 3) s_1^3 \chi_2^2 - + 12 \chi_2 s_1^4 + + 4 y s_1 ^5 + \right\} + \, , +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + +\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $b_1$, $s_{\mathrm{b}, 1}$, $\mathit{f}_{\mathrm{evo}, 1}$ (and $b_2$, $s_{\mathrm{b}, 2}$, $\mathit{f}_{\mathrm{evo}, 2}$) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    In this TPCF there are no observer terms. The obs keyword is inserted only for compatibility with the other GNC TPCFs.

    This function is computed integrating integrand_ξ_GNC_Newtonian_Lensing with trapz() from the Trapz Julia package.

    Inputs

    • s1 and s2: comoving distances where the TPCF has to be calculated.

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • b1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:

      • if not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;
      • if you set one or more values, they will override the cosmo ones in this computation;
      • the two sets of values should be different only if you are interested in studing two galaxy species;
      • only the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities.
    • s_lim=nothing : parameter used in order to avoid the divergence of the $\mathcal{R}$ and $\mathfrak{R}$ denominators: when $0 \leq s \leq s_\mathrm{lim}$ the returned values are

      \[\forall \, s \in [ 0, s_\mathrm{lim} ] \; : \quad + \mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}_0 \, s_\mathrm{lim}} \; , \quad + \mathcal{R}(s) = 5 s_{\mathrm{b}} + + \frac{2 - 5 s_{\mathrm{b}}}{\mathcal{H}_0 \, s_\mathrm{lim}} + + \frac{\dot{\mathcal{H}}}{\mathcal{H}_0^2} - \mathit{f}_{\mathrm{evo}} \; .\]

      If nothing, the default value stored in cosmo will be considered.

    • en::Float64 = 1e6: just a float number used in order to deal better with small numbers;

    • Δχ_min::Float64 = 1e-4 : when $\Delta\chi_2 = \sqrt{s_1^2 + \chi_2^2 - 2 \, s_1 \chi_2 y} \to 0^{+}$, some $I_\ell^n$ term diverges, but the overall parenthesis has a known limit:

      \[ \lim_{\Delta \chi_2 \to 0^{+}} + \left( + J_{00}^{\delta \kappa} \, I^0_0(\Delta \chi_2 ) + + J_{02}^{\delta \kappa} \, I^0_2(\Delta \chi_2 ) + + J_{04}^{\delta \kappa} \, I^4_0(\Delta \chi_2 ) + \right) = + - \frac{1}{5} \, s_1 \left(f_1 + 5 b_1\right) \, \sigma_0\]

      So, when it happens that $\Delta \chi_2 < \Delta\chi_\mathrm{min}$, the function considers this limit as the result of the parenthesis instead of calculating it in the normal way; it prevents computational divergences.

    • N_χs::Int = 100: number of points to be used for sampling the integral along the range (0, s2) (for χ2); it has been checked that with N_χs ≥ 100 the result is stable.

    • suit_sampling::Bool = true : this bool keyword can be found in all the TPCFs which have at least one χ integral; it is conceived to enable a sampling of the χ integral(s) suited for the given TPCF; however, it actually have an effect only in the TPCFs that have such a sampling implemented in the code. Currently, only ξ_GNC_Newtonian_Lensing (and its simmetryc TPCF) has it.

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, integrand_ξ_GNC_Newtonian_Lensing

    source
    GaPSE.ξ_GNC_Lensing_NewtonianFunction
    ξ_GNC_Lensing_Newtonian(s1, s2, y, cosmo::Cosmology; 
    +    en::Float64=1e6, N_χs::Int=100, Δχ_min::Float64=1e-1,
    +    obs::Union{Bool,Symbol}=:noobsvel, 
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, 
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,
    +    suit_sampling::Bool = true )::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Lensing and the Newtonian effects arising from the Galaxy Number Counts (GNC).

    It's computed through the symmetric function ξ_GNC_Newtonian_Lensing; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    Inputs

    • s1 and s2: comoving distances where the TPCF has to be calculated;

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • kwargs... : Keyword arguments to be passed to the symmetric TPCF

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_Newtonian_Lensing

    source
    GaPSE.ξ_GNC_Newtonian_LocalGPFunction
    ξ_GNC_Newtonian_LocalGP(
    +    P1::Point, P2::Point, y, cosmo::Cosmology;
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, 
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,
    +    obs::Union{Bool, Symbol} = :noobsvel
    +    ) ::Float64
    +
    +ξ_GNC_Newtonian_LocalGP(s1, s2, y, cosmo::Cosmology;
    +    kwargs...) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Newtonian and the Local Gravitational Potential (GP) effects arising from the Galaxy Number Counts (GNC).

    In the first method, you should pass the two Point (P1 and P2) where to evaluate the function, while in the second method (that internally recalls the first) you must provide the two corresponding comoving distances s1 and s2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this TPCF is the following:

    \[\begin{split} + \xi^{\delta \phi}( s_1 , s_2, y ) &= + D_1 D_2 J^{\delta \phi}_{\alpha} \left[ + J^{\delta \phi}_{\beta} + \left( + \frac{1}{30} I_0^0 (s) + + \frac{1}{21} I_2^0 (s) + + \frac{1}{70} I_4^0 (s) + \right) + + J^{\delta \phi}_{20} I_0^2 (s) + \right] \nonumber \\ + & + D_1 J^{\delta \phi}_{\gamma} \left[ + J^{\delta \phi}_{31} I^3_{1} (s_1) + + J^{\delta \phi}_{11} I^1_{1} (s_1) + + J^{\delta \phi}_{13} I^1_{3} (s_1) + \right] +\end{split}\]

    with

    \[\begin{split} + J^{\delta \phi}_{\alpha} &= + \frac{1}{3 a_2} \left[ + 2 f_2 a_2 \mathcal{H}_2^2 (\mathit{f}_{\mathrm{evo}, 2} - 3) + + 3 \mathcal{H}_0^2 \Omega_{\mathrm{M}0} (f_2 + \mathcal{R}_2 + 5 s_{\mathrm{b}, 2} - 2) + \right] + \, , \\ + %%%%%%%%%%%%%%%%%%%%% + J^{\delta \phi}_{\beta} &= + f_1 \left[ + (3 y^2 - 1) s_2^2 - 4 y s_1 s_2 + 2 s_1^2 + \right] + \, , \\ + %%%%%%%%%%%%%%%%%%%%% + J^{\delta \phi}_{\gamma} &= + \frac{\mathcal{H}_0 s_1^2}{2 s_2} \left[ + 2 f_0 (\mathcal{H}_0 s_2 \mathcal{R}_2 + 5 s_{\mathrm{b}, 2} - 2) - + 3 \mathcal{H}_0 s_2 \mathcal{R}_2 + \right] + \, , \\ + %%%%%%%%%%%%%%%%%%%%% + J^{\delta \phi}_{20} &= + - \frac{1}{2}(3 b_1 + f_1) (s_1^2 + s_2^2 - 2 y s_1 s_2) + \, , \\ + %%%%%%%%%%%%%%%%%%%%% + J^{\delta \phi}_{31} &= - (3 b_1 + f_1) + \, , \\ + %%%%%%%%%%%%%%%%%%%%% + J^{\delta \phi}_{11} &= + J^{\delta \phi}_{13} = \frac{1}{5}(b_1 + f_1) + \, , +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + +\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $b_1$, $s_{\mathrm{b}, 1}$, $\mathit{f}_{\mathrm{evo}, 1}$ (and $b_2$, $s_{\mathrm{b}, 2}$, $\mathit{f}_{\mathrm{evo}, 2}$) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    In this TPCF, the term proportional to only$D(s_1)$ is an observer term (while the term proportional to $D(s_1) \, D(s_2)$ is not), but does not depend on the observer velocitz. Consequently, if you set obs = :yes, obs = true or even obs = :noobsvel both of them will computed, while for obs = :no or obs = false only the first one will be taken into account.

    Inputs

    • P1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • b1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:

      • if not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;
      • if you set one or more values, they will override the cosmo ones in this computation;
      • the two sets of values should be different only if you are interested in studing two galaxy species;
      • only the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities.
    • s_lim=nothing : parameter used in order to avoid the divergence of the $\mathcal{R}$ and $\mathfrak{R}$ denominators: when $0 \leq s \leq s_\mathrm{lim}$ the returned values are

      \[\forall \, s \in [ 0, s_\mathrm{lim} ] \; : \quad + \mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}_0 \, s_\mathrm{lim}} \; , \quad + \mathcal{R}(s) = 5 s_{\mathrm{b}} + + \frac{2 - 5 s_{\mathrm{b}}}{\mathcal{H}_0 \, s_\mathrm{lim}} + + \frac{\dot{\mathcal{H}}}{\mathcal{H}_0^2} - \mathit{f}_{\mathrm{evo}} \; .\]

      If nothing, the default value stored in cosmo will be considered.

    • obs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?

      • :yes or true -> all the observer effects will be considered
      • :no or false -> no observer term will be taken into account
      • :noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole

    source
    GaPSE.ξ_GNC_LocalGP_NewtonianFunction
    ξ_GNC_LocalGP_Newtonian(s1, s2, y, cosmo::Cosmology;         
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, 
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,
    +    obs::Union{Bool, Symbol} = :noobsvel ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Local Gravitational Potential (GP) and the Newtonian effects arising from the Galaxy Number Counts (GNC).

    It's computed through the symmetric function ξ_GNC_Newtonian_LocalGP; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    Inputs

    • s1 and s2: comoving distances where the TPCF has to be calculated;

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • kwargs... : Keyword arguments to be passed to the symmetric TPCF

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_Newtonian_LocalGP

    source
    GaPSE.ξ_GNC_Newtonian_IntegratedGPFunction
    ξ_GNC_Newtonian_IntegratedGP(
    +    s1, s2, y, cosmo::Cosmology;
    +    en::Float64=1e6, N_χs::Int=100, 
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, 
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,
    +    obs::Union{Bool,Symbol}=:noobsvel,
    +    suit_sampling::Bool=true
    +    ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Newtonian and the Integrated Gravitational Potential (GP) effects arising from the Galaxy Number Counts (GNC).

    You must provide the two comoving distances s1 and s2 where to evaluate the function. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this integrand is the following:

    \[\begin{split} + \xi^{\delta \int\!\phi}( s_1 , s_2, y ) = + D_1 \int_0^{s_2}\mathrm{d} \chi_2 \; + &J^{\delta \int\!\phi}_{\alpha} + \left[ + J^{\delta \int\!\phi}_{20} I_0^2 ( \Delta\chi_2 ) + + \right. \\ + & \left. + J^{\delta \int\!\phi}_{\beta} + \left( + \frac{1}{15} I_0^0 ( \Delta\chi_2 ) + + \frac{1}{21} I_2^0 ( \Delta\chi_2 ) + + \frac{1}{35} I_4^0 ( \Delta\chi_2 ) + \right) + \right] \, , \nonumber +\end{split}\]

    where

    \[\begin{split} + J^{\delta \int\!\phi}_{\alpha} &= + \frac{\mathcal{H}_0^2 \Omega_{\mathrm{M}0} D(\chi_2)}{3 a(\chi_2) s_2} + \left[ + s_2 \mathcal{R}_2 \mathcal{H}(\chi_2) ( f(\chi_2) - 1) - 5 s_{\mathrm{b}, 2} + 2 + \right] + \, , \\ + %%%%%%%%%%%%%%%%%%%%% + J^{\delta \int\!\phi}_{\beta} &= + f_1 \left[ + (3 y^2 - 1) \chi_2^2 - 4 y s_1 \chi_2 + 2 s_1^2 + \right] + \, , \\ + %%%%%%%%%%%%%%%%%%%%% + J^{\delta \int\!\phi}_{20} &= + - \Delta\chi_2^2 ( 3 b_1 + f_1) + \, . +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + +\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $b_1$, $s_{\mathrm{b}, 1}$, $\mathit{f}_{\mathrm{evo}, 1}$ (and $b_2$, $s_{\mathrm{b}, 2}$, $\mathit{f}_{\mathrm{evo}, 2}$) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    In this TPCF there are no observer terms. The obs keyword is inserted only for compatibility with the other GNC TPCFs.

    This function is computed integrating integrand_ξ_GNC_Newtonian_IntegratedGP with trapz() from the Trapz Julia package.

    Inputs

    • P1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • b1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:

      • if not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;
      • if you set one or more values, they will override the cosmo ones in this computation;
      • the two sets of values should be different only if you are interested in studing two galaxy species;
      • only the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities.
    • s_lim=nothing : parameter used in order to avoid the divergence of the $\mathcal{R}$ and $\mathfrak{R}$ denominators: when $0 \leq s \leq s_\mathrm{lim}$ the returned values are

      \[\forall \, s \in [ 0, s_\mathrm{lim} ] \; : \quad + \mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}_0 \, s_\mathrm{lim}} \; , \quad + \mathcal{R}(s) = 5 s_{\mathrm{b}} + + \frac{2 - 5 s_{\mathrm{b}}}{\mathcal{H}_0 \, s_\mathrm{lim}} + + \frac{\dot{\mathcal{H}}}{\mathcal{H}_0^2} - \mathit{f}_{\mathrm{evo}} \; .\]

      If nothing, the default value stored in cosmo will be considered.

    • obs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?

      • :yes or true -> all the observer effects will be considered
      • :no or false -> no observer term will be taken into account
      • :noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account
    • en::Float64 = 1e6: just a float number used in order to deal better with small numbers;

    • N_χs::Int = 100: number of points to be used for sampling the integral along the range (0, s2) (for χ2); it has been checked that with N_χs ≥ 100 the result is stable.

    • suit_sampling::Bool = true : this bool keyword can be found in all the TPCFs which have at least one χ integral; it is conceived to enable a sampling of the χ integral(s) suited for the given TPCF; however, it actually have an effect only in the TPCFs that have such a sampling implemented in the code. Currently, only ξ_GNC_Newtonian_Lensing (and its simmetryc TPCF) has it.

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, integrand_ξ_GNC_Newtonian_IntegratedGP

    source
    GaPSE.ξ_GNC_IntegratedGP_NewtonianFunction
    ξ_GNC_IntegratedGP_Newtonian(s1, s2, y, cosmo::Cosmology; 
    +    en::Float64=1e6, N_χs::Int=100, 
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, 
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,
    +    obs::Union{Bool,Symbol}=:noobsvel,
    +    suit_sampling::Bool=true ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Integrated Gravitational Potential (GP) and the Newtonian effects arising from the Galaxy Number Counts (GNC).

    It's computed through the symmetric function ξ_GNC_Newtonian_IntegratedGP; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    Inputs

    • s1 and s2: comoving distances where the TPCF has to be calculated;

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • kwargs... : Keyword arguments to be passed to the symmetric TPCF

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_Newtonian_IntegratedGP

    source
    GaPSE.ξ_GNC_Doppler_LensingFunction
    ξ_GNC_Doppler_Lensing(s1, s2, y, cosmo::Cosmology;
    +    en::Float64=1e6, N_χs::Int=100, Δχ_min::Float64=1e-1,
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, 
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing, 
    +    obs::Union{Bool,Symbol}=:noobsvel,
    +    suit_sampling::Bool=true ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Doppler and the Lensing effects arising from the Galaxy Number Counts (GNC).

    It's computed through the symmetric function ξ_GNC_Lensing_Doppler; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    Inputs

    • s1 and s2: comoving distances where the TPCF has to be calculated;

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • kwargs... : Keyword arguments to be passed to the symmetric TPCF

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_Lensing_Doppler

    source
    GaPSE.ξ_GNC_Lensing_DopplerFunction
    ξ_GNC_Lensing_Doppler(
    +    s1, s2, y, cosmo::Cosmology;
    +    en::Float64=1e6, N_χs::Int=100, 
    +    Δχ_min::Float64=1e-1,
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, 
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing, 
    +    obs::Union{Bool,Symbol}=:noobsvel,
    +    suit_sampling::Bool=true
    +    ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Lensing and the Doppler effects arising from the Galaxy Number Counts (GNC).

    You must provide the two comoving distances s1 and s2 where to evaluate the function. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this TPCF is the following:

    \[\begin{split} + \xi^{\kappa v_{\parallel}} ( s_1 , s_2, y ) &= + D_2 \int_0^{s_1}\dd \chi_1 + J^{\kappa v_{\parallel}}_{\alpha} \left[ + J^{\kappa v_{\parallel}}_{00} I_0^0 ( \Delta \chi_1 ) + + J^{\kappa v_{\parallel}}_{02} I_2^0 ( \Delta \chi_1 ) + \right. \nonumber \\ + & \left. + + J^{\kappa v_{\parallel}}_{04} I_4^0 ( \Delta \chi_1 ) + + J^{\kappa v_{\parallel}}_{20} I_0^2 ( \Delta \chi_1 ) + \right] + + \int_0^{s_1}\dd \chi_1 + J^{\kappa v_{\parallel}}_{31} I_1^3 ( \chi_1 ) \, , +\end{split}\]

    with

    \[\begin{split} + J^{\kappa v_{\parallel}}_{\alpha} &= + \frac{\mathcal{H}_0^2 \Omega_{\mathrm{M}0} D(\chi_1)}{a(\chi_1) s_1} + f_2 \mathcal{H}_2 \mathcal{R}_2 (\chi_1 - s_1) (5 s_{\mathrm{b}, 1} - 2) + \, , \\ + %%%%%%%%%%%%%%%%% + J^{\kappa v_{\parallel}}_{00} &= + \frac{1}{15} + \left[ + \chi_1^2 y + \chi_1 s_2 (4 y^2 - 3) - 2 y s_2^2 + \right] + \, , \\ + %%%%%%%%%%%%%%%%% + J^{\kappa v_{\parallel}}_{02} &= + \frac{1}{42 \Delta\chi_1^2} \left[ + 4 y \chi_1^4 + 4 (2 y^2 - 3) s_2 \chi_1^3 + + y (11 - 23 y^2) s_2^2 \chi_1^2 + + \right.\\ + &\left.\qquad\qquad\qquad + (23 y^2 - 3) s_2^3 \chi_1 - 8 y s_2^4 + \right] \nonumber + \, , \\ + %%%%%%%%%%%%%%%%% + J^{\kappa v_{\parallel}}_{04} &= + \frac{1}{70 \Delta\chi_1^2} + \left[ + 2 y \chi_1^4 + 2 (2 y^2 - 3) s_2 \chi_1^3 - + y (y^2 + 5) s_2^2 \chi_1^2 + + (y^2 + 9) s_2^3 \chi_1 - 4 y s_2^4 + \right] + \, , \\ + %%%%%%%%%%%%%%%%% + J^{\kappa v_{\parallel}}_{20} &= y \Delta\chi_1^2 + \, , \\ + %%%%%%%%%%%%%%%%% + J^{\kappa v_{\parallel}}_{31} &= + -\frac{ + 3 \chi_1^2 y f_0 \mathcal{H}_0^3 \Omega_{\mathrm{M}0} D(\chi_1) + }{ + a(\chi_1)s_1 + }(\chi_1 - s_1) (5 s_{\mathrm{b}, 1} - 2) (\mathcal{R}_2 - 5 s_{\mathrm{b}, 2} + 2) + \, , +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + +\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $b_1$, $s_{\mathrm{b}, 1}$, $\mathit{f}_{\mathrm{evo}, 1}$ (and $b_2$, $s_{\mathrm{b}, 2}$, $\mathit{f}_{\mathrm{evo}, 2}$) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    In this TPCF, the term proportional to $D(s_1)$ is not an observer term. The other one instead is and it does depend on the observer velocity. Consequently, if you set obs = :yes or obs = true both of them will computed, while for obs = :no, obs = false or even obs = :noobsvel only the first one will be taken into account.

    This function is computed from integrand_ξ_GNC_Lensing_Doppler with trapz() from the Trapz Julia package.

    Inputs

    • P1::Point, P2::Point or s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • b1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:

      • if not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;
      • if you set one or more values, they will override the cosmo ones in this computation;
      • the two sets of values should be different only if you are interested in studing two galaxy species;
      • only the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities.
    • s_lim=nothing : parameter used in order to avoid the divergence of the $\mathcal{R}$ and $\mathfrak{R}$ denominators: when $0 \leq s \leq s_\mathrm{lim}$ the returned values are

      \[\forall \, s \in [ 0, s_\mathrm{lim} ] \; : \quad + \mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}_0 \, s_\mathrm{lim}} \; , \quad + \mathcal{R}(s) = 5 s_{\mathrm{b}} + + \frac{2 - 5 s_{\mathrm{b}}}{\mathcal{H}_0 \, s_\mathrm{lim}} + + \frac{\dot{\mathcal{H}}}{\mathcal{H}_0^2} - \mathit{f}_{\mathrm{evo}} \; .\]

      If nothing, the default value stored in cosmo will be considered.

    • obs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?

      • :yes or true -> all the observer effects will be considered
      • :no or false -> no observer term will be taken into account
      • :noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account
    • Δχ_min::Float64 = 1e-1 : when $\Delta\chi_1 = \sqrt{\chi_1^2 + s_2^2 - 2 \, \chi_1 s_2 y} \to 0^{+}$, some $I_\ell^n$ term diverges, but the overall parenthesis has a known limit:

      \[ \lim_{\Delta\chi_1 \to 0^{+}} + \left[ + J^{\kappa v_{\parallel}}_{00} I_0^0 ( \Delta \chi_1 ) + + J^{\kappa v_{\parallel}}_{02} I_2^0 ( \Delta \chi_1 ) + + J^{\kappa v_{\parallel}}_{04} I_4^0 ( \Delta \chi_1 ) + + J^{\kappa v_{\parallel}}_{20} I_0^2 ( \Delta \chi_1 ) + \right] = \sigma_2\]

      So, when it happens that $\Delta\chi_1 < \Delta\chi_\mathrm{min}$, the function considers this limit as the result of the parenthesis instead of calculating it in the normal way; it prevents computational divergences.

    • en::Float64 = 1e6: just a float number used in order to deal better with small numbers;

    • N_χs::Int = 100: number of points to be used for sampling the integral along the range (0, s1) (for χ1); it has been checked that with N_χs ≥ 100 the result is stable.

    • suit_sampling::Bool = true : this bool keyword can be found in all the TPCFs which have at least one χ integral; it is conceived to enable a sampling of the χ integral(s) suited for the given TPCF; however, it actually have an effect only in the TPCFs that have such a sampling implemented in the code. Currently, only ξ_GNC_Newtonian_Lensing (and its simmetryc TPCF) has it.

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, integrand_ξ_GNC_Lensing_Doppler

    source
    GaPSE.ξ_GNC_Doppler_LocalGPFunction
    ξ_GNC_Doppler_LocalGP(
    +    P1::Point, P2::Point, y, cosmo::Cosmology; 
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, 
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,
    +    obs::Union{Bool,Symbol}=:noobsvel
    +    ) ::Float64
    +
    +ξ_GNC_Doppler_LocalGP(
    +    s1, s2, y, cosmo::Cosmology; 
    +    kwargs...) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Doppler and the Local Gravitational Potential (GP) effects arising from the Galaxy Number Counts (GNC).

    In the first method, you should pass the two Point (P1 and P2) where to evaluate the function, while in the second method (that internally recalls the first) you must provide the two corresponding comoving distances s1 and s2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this TPCF is the following:

    \[\begin{split} + \xi^{v_{\parallel} \phi} ( s_1 , s_2, y ) &= + D_1 D_2 J^{v_{\parallel} \phi}_{\alpha} + \left[ + \frac{1}{90} I_0^0 (s) + + \frac{1}{63} I_2^0 (s) + + \frac{1}{210} I_4^0 (s) + + \frac{1}{6} I_0^2 (s) + \right] + \nonumber \\ + & + + D_1 J^{v_{\parallel} \phi_0 }_{31} I^3_1 (s_1) + + D_2 J^{v_{\parallel, 0} \phi }_{31} I^3_1 (s_2) \, , +\end{split}\]

    with

    \[\begin{split} + J^{v_{\parallel} \phi}_{\alpha} &= + \frac{f_1 \mathcal{H}_1 \mathcal{R}_1 s^2}{a_2} (y s_2 - s_1) + \times\\ + &\qquad\qquad\qquad + \left[ + 2 f_2 a_2 \mathcal{H}_2^2 (\mathit{f}_{\mathrm{evo}, 2} - 3) + + 3 \mathcal{H}_0^2 \Omega_{\mathrm{M}0} (f_2 + \mathcal{R}_2 + 5 s_{\mathrm{b}, 2} - 2) + \right] + \, , \nonumber \\ + %%%%%%%%%%%%%%%%%%%% + J^{v_{\parallel} \phi_0 }_{31} &= + \frac{ f_1 \mathcal{H}_1 \mathcal{R}_1}{2 s_2} \mathcal{H}_0 s_1^3 + \left[ + 3 \mathcal{H}_0 \Omega_{\mathrm{M}0} s_2 \mathcal{R}_2 - + 2 f_0 \left( \mathcal{H}_0 s_2 \mathcal{R}_2 + 5 s_{\mathrm{b}, 2} - 2 \right) + \right] + \, , \\ + %%%%%%%%%%%%%%%%%%%% + J^{v_{\parallel, 0} \, \phi }_{31} &= + -\frac{y f_0 \mathcal{H}_0 s_2^3}{2 a_2} (\mathcal{R}_1 - 5 s_{\mathrm{b}, 1} + 2) + \times \\ + &\qquad\qquad\qquad + \left[ + 2 a_2 f_2 \mathcal{H}_2^2 (\mathit{f}_{\mathrm{evo}, 2} - 3) + + 3 \mathcal{H}_0^2 \Omega_{\mathrm{M}0} (f_2 + \mathcal{R}_2 + 5 s_{\mathrm{b}, 2} - 2) + \right] + \nonumber \, . +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + +\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $b_1$, $s_{\mathrm{b}, 1}$, $\mathit{f}_{\mathrm{evo}, 1}$ (and $b_2$, $s_{\mathrm{b}, 2}$, $\mathit{f}_{\mathrm{evo}, 2}$) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    In this TPCF, the terms proportional to $D(s_1)$ and $D(s_2)$ are observer terms (while the term proportional to $D(s_1) \, D(s_2)$ is not), but only the $\propto D(s_2)$ one depends on the observer velocity. Consequently, if you set:

    • obs = :yes or obs = true all of them will be computed
    • obs = :noobsvel then the $\propto D(s_2)$ term will be neglected
    • obs = :no or obs = false only the first one $\propto D(s_1) \, D(s_2)$ will be taken into account.

    Inputs

    • P1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • b1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:

      • if not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;
      • if you set one or more values, they will override the cosmo ones in this computation;
      • the two sets of values should be different only if you are interested in studing two galaxy species;
      • only the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities.
    • s_lim=nothing : parameter used in order to avoid the divergence of the $\mathcal{R}$ and $\mathfrak{R}$ denominators: when $0 \leq s \leq s_\mathrm{lim}$ the returned values are

      \[\forall \, s \in [ 0, s_\mathrm{lim} ] \; : \quad + \mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}_0 \, s_\mathrm{lim}} \; , \quad + \mathcal{R}(s) = 5 s_{\mathrm{b}} + + \frac{2 - 5 s_{\mathrm{b}}}{\mathcal{H}_0 \, s_\mathrm{lim}} + + \frac{\dot{\mathcal{H}}}{\mathcal{H}_0^2} - \mathit{f}_{\mathrm{evo}} \; .\]

      If nothing, the default value stored in cosmo will be considered.

    • obs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?

      • :yes or true -> all the observer effects will be considered
      • :no or false -> no observer term will be taken into account
      • :noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole

    source
    GaPSE.ξ_GNC_LocalGP_DopplerFunction
    ξ_GNC_LocalGP_Doppler(s1, s2, y, cosmo::Cosmology; 
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, 
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing,
    +    s_lim=nothing, obs::Union{Bool,Symbol}=:noobsvel ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Local Gravitational Potential (GP) and the Doppler effects arising from the Galaxy Number Counts (GNC).

    It's computed through the symmetric function ξ_GNC_Doppler_LocalGP; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    Inputs

    • s1 and s2: comoving distances where the TPCF has to be calculated;

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • kwargs... : Keyword arguments to be passed to the symmetric TPCF

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_Doppler_LocalGP

    source
    GaPSE.ξ_GNC_Doppler_IntegratedGPFunction
    ξ_GNC_Doppler_IntegratedGP(
    +    s1, s2, y, cosmo::Cosmology;
    +    en::Float64=1e6, N_χs::Int=100, 
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, 
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,
    +    obs::Union{Bool,Symbol}=:noobsvel,
    +    suit_sampling::Bool=true
    +    ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Doppler and the Integrated Gravitational Potential (GP) effects arising from the Galaxy Number Counts (GNC).

    You must provide the two comoving distances s1 and s2 where to evaluate the function. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this TPCF is the following:

    \[\begin{split} + \xi^{v_{\parallel} \int\!\phi} \left( s_1 , s_2, y \right) &= D_1 \int_0^{s_2}\mathrm{d} \chi_2 \; + J^{v_{\parallel} \int\!\phi}_{\alpha} + \left[ + \frac{1}{15} I_0^0 ( \Delta\chi_2 ) + + \frac{2}{21} I_2^0 ( \Delta\chi_2 ) + + \right. \\ + &\left. + \frac{1}{35} I_4^0 ( \Delta\chi_2 ) + + I^2_0 ( \Delta\chi_2) + \right] + + \int_0^{s_2}\mathrm{d} \chi_2 + J^{v_{\parallel} \int\!\phi}_{31} I^3_1 (\chi_2) + \, ,\nonumber +\end{split}\]

    with

    \[\begin{split} + J^{v_{\parallel} \int\!\phi}_{\alpha} &= + \frac{f_1 \mathcal{H}_1 \mathcal{R}_1}{s_2 a(\chi_2)} + D(\chi_2) \mathcal{H}_0^2 \Omega_{\mathrm{M}0} \Delta\chi_2^2 + (\chi_2 y - s_1) + \left[ + s_2 \mathcal{H}(\chi_2) \mathcal{R}_2 (f(\chi_2) - 1) - 5 s_{\mathrm{b}, 2} + 2 + \right] + \, , \\ + %%%%%%%%%%%%%%%%%%%%% + J^{v_{\parallel} \int\!\phi}_{31} &= + -\frac{ + 3 \chi_2^3 y f_0 \mathcal{H}_0^3 \Omega_{\mathrm{M}0} D(\chi_2) + }{ + s_2 a(\chi_2) + }(\mathcal{R}_1 - 5 s_{\mathrm{b}, 1} + 2) + \left[ + s_2 \mathcal{H}(\chi_2) \mathcal{R}_2 (f(\chi_2) - 1) - 5 s_{\mathrm{b}, 2} + 2) + \right] + \, . +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + +\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $b_1$, $s_{\mathrm{b}, 1}$, $\mathit{f}_{\mathrm{evo}, 1}$ (and $b_2$, $s_{\mathrm{b}, 2}$, $\mathit{f}_{\mathrm{evo}, 2}$) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    In this TPCF, the term proportional to $D(s_1)$ is not an observer term. The other one instead is and it does depend on the observer velocity. Consequently, if you set obs = :yes or obs = true both of them will computed, while for obs = :no, obs = false or even obs = :noobsvel only the $\propto D(s_1)$ one will be taken into account.

    This function is computed integrating integrand_ξ_GNC_Doppler_IntegratedGP with trapz() from the Trapz Julia package.

    Inputs

    • P1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • b1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:

      • if not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;
      • if you set one or more values, they will override the cosmo ones in this computation;
      • the two sets of values should be different only if you are interested in studing two galaxy species;
      • only the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities.
    • s_lim=nothing : parameter used in order to avoid the divergence of the $\mathcal{R}$ and $\mathfrak{R}$ denominators: when $0 \leq s \leq s_\mathrm{lim}$ the returned values are

      \[\forall \, s \in [ 0, s_\mathrm{lim} ] \; : \quad + \mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}_0 \, s_\mathrm{lim}} \; , \quad + \mathcal{R}(s) = 5 s_{\mathrm{b}} + + \frac{2 - 5 s_{\mathrm{b}}}{\mathcal{H}_0 \, s_\mathrm{lim}} + + \frac{\dot{\mathcal{H}}}{\mathcal{H}_0^2} - \mathit{f}_{\mathrm{evo}} \; .\]

      If nothing, the default value stored in cosmo will be considered.

    • obs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?

      • :yes or true -> all the observer effects will be considered
      • :no or false -> no observer term will be taken into account
      • :noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account
    • en::Float64 = 1e6: just a float number used in order to deal better with small numbers;

    • N_χs::Int = 100: number of points to be used for sampling the integral along the range (0, s2) (for χ2); it has been checked that with N_χs ≥ 100 the result is stable.

    • suit_sampling::Bool = true : this bool keyword can be found in all the TPCFs which have at least one χ integral; it is conceived to enable a sampling of the χ integral(s) suited for the given TPCF; however, it actually have an effect only in the TPCFs that have such a sampling implemented in the code. Currently, only ξ_GNC_Newtonian_Lensing (and its simmetryc TPCF) has it.

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, integrand_ξ_GNC_Doppler_IntegratedGP

    source
    GaPSE.ξ_GNC_IntegratedGP_DopplerFunction
    ξ_GNC_IntegratedGP_Doppler(s1, s2, y, cosmo::Cosmology; 
    +    en::Float64=1e6, N_χs::Int=100, 
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, 
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing, 
    +    obs::Union{Bool,Symbol}=:noobsvel,
    +    suit_sampling::Bool=true ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Integrated Gravitational Potential (GP) and the Doppler effects arising from the Galaxy Number Counts (GNC).

    It's computed through the symmetric function ξ_GNC_Doppler_IntegratedGP; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    Inputs

    • s1 and s2: comoving distances where the TPCF has to be calculated;

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • kwargs... : Keyword arguments to be passed to the symmetric TPCF

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_Doppler_IntegratedGP

    source
    GaPSE.ξ_GNC_Lensing_LocalGPFunction
    ξ_GNC_Lensing_LocalGP(
    +    s1, s2, y, cosmo::Cosmology;
    +    en::Float64=1e6, N_χs::Int=100,
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, 
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing, 
    +    obs::Union{Bool,Symbol}=:noobsvel,
    +    suit_sampling::Bool=true
    +    ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Lensing and the Local Gravitational Potential (GP) effects arising from the Galaxy Number Counts (GNC).

    You must provide the two comoving distances s1 and s2 where to evaluate the function. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this TPCF is the following:

    \[\begin{split} + \xi^{\kappa \phi} ( s_1 , s_2, y ) &= + D_2 \int_0^{s_1}\mathrm{d} \chi_1 \; + J^{\kappa \phi}_{\alpha}\left[ + J^{\kappa \phi}_{20} I_0^2 ( \Delta \chi_1 ) + + \right.\nonumber \\ + &\left.\qquad + J^{\kappa \phi}_{\beta} + \left( + \frac{1}{60} I_0^0 ( \Delta \chi_1 ) + + \frac{1}{42} I_2^0 ( \Delta \chi_1 ) + + \frac{1}{140} I_4^0 ( \Delta \chi_1 ) + \right) + \right] \, , +\end{split}\]

    with

    \[\begin{split} + J^{\kappa \phi}_{\alpha} &= + \frac{\mathcal{H}_0^2 \Omega_{\mathrm{M}0} s_2 D(\chi_1)}{a(\chi_1) a_2 s_1} + (\chi_1 - s_1) (5s_{\mathrm{b}, 1} - 2) + \times\\ + &\qquad\qquad + \left[ + 2 f_2 a_2 \mathcal{H}_2^2 (\mathit{f}_{\mathrm{evo}, 2} - 3) + + 3 \mathcal{H}_0^2 \Omega_{\mathrm{M}0} (f_2 + \mathcal{R}_2 + 5s_{\mathrm{b}, 2} - 2) + \right] \nonumber + \, , \\ + %%%%%%%%%%%%%%%%%%% + J^{\kappa \phi}_{\beta} &= + 2 y \chi_1^2 - \chi_1 s_2 (y^2 + 3) + 2 y s_2^2 + \, ,\\ + %%%%%%%%%%%%%%%%%%% + J^{\kappa \phi}_{20} &= \frac{1}{2} y \Delta\chi_1^2\, , +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + +\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $b_1$, $s_{\mathrm{b}, 1}$, $\mathit{f}_{\mathrm{evo}, 1}$ (and $b_2$, $s_{\mathrm{b}, 2}$, $\mathit{f}_{\mathrm{evo}, 2}$) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    In this TPCF there are no observer terms. The obs keyword is inserted only for compatibility with the other GNC TPCFs.

    This function is computed from integrand_ξ_GNC_Lensing_LocalGP with trapz() from the Trapz Julia package.

    Inputs

    • P1::Point, P2::Point or s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • b1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:

      • if not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;
      • if you set one or more values, they will override the cosmo ones in this computation;
      • the two sets of values should be different only if you are interested in studing two galaxy species;
      • only the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities.
    • s_lim=nothing : parameter used in order to avoid the divergence of the $\mathcal{R}$ and $\mathfrak{R}$ denominators: when $0 \leq s \leq s_\mathrm{lim}$ the returned values are

      \[\forall \, s \in [ 0, s_\mathrm{lim} ] \; : \quad + \mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}_0 \, s_\mathrm{lim}} \; , \quad + \mathcal{R}(s) = 5 s_{\mathrm{b}} + + \frac{2 - 5 s_{\mathrm{b}}}{\mathcal{H}_0 \, s_\mathrm{lim}} + + \frac{\dot{\mathcal{H}}}{\mathcal{H}_0^2} - \mathit{f}_{\mathrm{evo}} \; .\]

      If nothing, the default value stored in cosmo will be considered.

    • obs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?

      • :yes or true -> all the observer effects will be considered
      • :no or false -> no observer term will be taken into account
      • :noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account
    • en::Float64 = 1e6: just a float number used in order to deal better with small numbers;

    • N_χs::Int = 100: number of points to be used for sampling the integral along the range (0, s1) (for χ1); it has been checked that with N_χs ≥ 100 the result is stable.

    • suit_sampling::Bool = true : this bool keyword can be found in all the TPCFs which have at least one χ integral; it is conceived to enable a sampling of the χ integral(s) suited for the given TPCF; however, it actually have an effect only in the TPCFs that have such a sampling implemented in the code. Currently, only ξ_GNC_Newtonian_Lensing (and its simmetryc TPCF) has it.

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, integrand_ξ_GNC_Lensing_LocalGP

    source
    GaPSE.ξ_GNC_LocalGP_LensingFunction
    ξ_GNC_LocalGP_Lensing(s1, s2, y, cosmo::Cosmology; 
    +    en::Float64=1e6, N_χs::Int=100,
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, 
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing, 
    +    obs::Union{Bool,Symbol}=:noobsvel,
    +    suit_sampling::Bool=true ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Local Gravitational Potential (GP) and the Lensing effects arising from the Galaxy Number Counts (GNC).

    It's computed through the symmetric function ξ_GNC_Lensing_LocalGP; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    Inputs

    • s1 and s2: comoving distances where the TPCF has to be calculated;

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • kwargs... : Keyword arguments to be passed to the symmetric TPCF

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_Lensing_LocalGP

    source
    GaPSE.ξ_GNC_Lensing_IntegratedGPFunction
    ξ_GNC_Lensing_IntegratedGP(
    +    P1::Point, P2::Point, y, cosmo::Cosmology;
    +    en::Float64=1e6, N_χs_2::Int=100,
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, 
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing, 
    +    obs::Union{Bool,Symbol}=:noobsvel,
    +    suit_sampling::Bool=true
    +    ) ::Float64
    +
    +ξ_GNC_Lensing_IntegratedGP(
    +    s1, s2, y, cosmo::Cosmology; 
    +    kwargs...) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Lensing and the Integrated Gravitational Potential (GP) effects arising from the Galaxy Number Counts (GNC).

    In the first method, you should pass the two Point (P1 and P2) where to evaluate the function, while in the second method (that internally recalls the first) you must provide the two corresponding comoving distances s1 and s2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this TPCF is the following:

    \[\begin{split} + \xi^{\kappa \int\!\phi} ( s_1 , s_2, y ) = + \int_0^{s_1}\mathrm{d} \chi_1 \int_0^{s_2}\mathrm{d} \chi_2 \; + J_{\alpha}^{\kappa \int\!\phi} + \left[ + J_{31}^{\kappa \int\!\phi} I_1^3 ( \Delta \chi ) + + J_{22}^{\kappa \int\!\phi} I_2^2 ( \Delta \chi ) + \right] \, , +\end{split}\]

    with

    \[\begin{split} + J_{\alpha}^{\kappa \int\!\phi} &= + \frac{ + 9 \chi_2 \ \mathcal{H}_0^4 \Omega_{\mathrm{M}0}^2 D(\chi_1) D(\chi_2) + }{ + a(\chi_1) a(\chi_2) s_1 s_2 + } + (\chi_1 - s_1) (5 s_{\mathrm{b}, 1} - 2) \times\\ + &\qquad\qquad\qquad\qquad\qquad\qquad + \left[ + \ \mathcal{H}(\chi_2) \mathcal{R}_2 s_1 (f(\chi_2) - 1) - 5 s_{\mathrm{b}, 1} + 2 + \right] \nonumber + \, , \\ + %%%%%%%%%%%%% + J_{31}^{\kappa \int\!\phi} &= y \Delta\chi^2 + \, , \\ + %%%%%%%%%%%%% + J_{22}^{\kappa \int\!\phi} &= + \frac{1}{2} (y^2 - 1) \chi_1 \chi_2 + \, , +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + +\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $b_1$, $s_{\mathrm{b}, 1}$, $\mathit{f}_{\mathrm{evo}, 1}$ (and $b_2$, $s_{\mathrm{b}, 2}$, $\mathit{f}_{\mathrm{evo}, 2}$) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    In this TPCF there are no observer terms. The obs keyword is inserted only for compatibility with the other GNC TPCFs.

    This function is computed from integrand_ξ_GNC_Lensing_IntegratedGP with trapz() from the Trapz Julia package.

    Inputs

    • P1::Point, P2::Point or s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • b1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:

      • if not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;
      • if you set one or more values, they will override the cosmo ones in this computation;
      • the two sets of values should be different only if you are interested in studing two galaxy species;
      • only the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities.
    • s_lim=nothing : parameter used in order to avoid the divergence of the $\mathcal{R}$ and $\mathfrak{R}$ denominators: when $0 \leq s \leq s_\mathrm{lim}$ the returned values are

      \[\forall \, s \in [ 0, s_\mathrm{lim} ] \; : \quad + \mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}_0 \, s_\mathrm{lim}} \; , \quad + \mathcal{R}(s) = 5 s_{\mathrm{b}} + + \frac{2 - 5 s_{\mathrm{b}}}{\mathcal{H}_0 \, s_\mathrm{lim}} + + \frac{\dot{\mathcal{H}}}{\mathcal{H}_0^2} - \mathit{f}_{\mathrm{evo}} \; .\]

      If nothing, the default value stored in cosmo will be considered.

    • obs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?

      • :yes or true -> all the observer effects will be considered
      • :no or false -> no observer term will be taken into account
      • :noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning IntegratedGP) will be neglected, the other ones will be taken into account
    • en::Float64 = 1e6: just a float number used in order to deal better with small numbers;

    • N_χs_2::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ1) and (0, s2) (for χ2); it has been checked that with N_χs_2 ≥ 50 the result is stable.

    • suit_sampling::Bool = true : this bool keyword can be found in all the TPCFs which have at least one χ integral; it is conceived to enable a sampling of the χ integral(s) suited for the given TPCF; however, it actually have an effect only in the TPCFs that have such a sampling implemented in the code. Currently, only ξ_GNC_Newtonian_Lensing (and its simmetryc TPCF) has it.

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, integrand_ξ_GNC_Lensing_IntegratedGP

    source
    GaPSE.ξ_GNC_IntegratedGP_LensingFunction
    ξ_GNC_IntegratedGP_Lensing(s1, s2, y, cosmo::Cosmology; 
    +    en::Float64=1e6, N_χs_2::Int=100,
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, 
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing, 
    +    obs::Union{Bool,Symbol}=:noobsvel,
    +    suit_sampling::Bool=true ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Integrated Gravitational Potential (GP) and the Lensing effects arising from the Galaxy Number Counts (GNC).

    It's computed through the symmetric function ξ_GNC_Lensing_IntegratedGP; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    Inputs

    • s1 and s2: comoving distances where the TPCF has to be calculated;

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • kwargs... : Keyword arguments to be passed to the symmetric TPCF

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_Lensing_IntegratedGP

    source
    GaPSE.ξ_GNC_LocalGP_IntegratedGPFunction
    ξ_GNC_LocalGP_IntegratedGP(
    +    s1, s2, y, cosmo::Cosmology;
    +    en::Float64=1e6, N_χs::Int=100, 
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, 
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,
    +    obs::Union{Bool,Symbol}=:noobsvel,
    +    suit_sampling::Bool=true
    +    ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Local Gravitational Potential (GP) and the Integrated Gravitational Potential (GP) effects arising from the Galaxy Number Counts (GNC).

    You must provide the two comoving distances s1 and s2 where to evaluate the function. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this TPCF is the following:

    \[\begin{split} + \xi^{\phi \int\!\phi} (\chi_2, s_1 , s_2, y ) = + D_1 \int_0^{s_2}\mathrm{d} \chi_2 + J^{\phi \int\!\phi}_{40} \tilde{I}_0^4 ( \Delta\chi_2 ) + + \int_0^{s_2}\mathrm{d} \chi_2 + J^{\phi_0 \int\!\phi}_{04} \tilde{I}_0^4 ( \chi_2 ) \, , +\end{split}\]

    with

    \[\begin{split} + J^{\phi \int\!\phi}_{40} &= + \frac{ + 3 \Delta\chi_2^4 \mathcal{H}_0^2 \Omega_{\mathrm{M}0} D(\chi_2) + }{ + 2 s_2 a(\chi_2) a_1 + } \left[ + s_2 \mathcal{H}(\chi_2) \mathcal{R}_2(f(\chi_2)-1) -5 s_{\mathrm{b}, 2}+2 + \right] + \times\\ + &\qquad\qquad\qquad + \left[ + 2 a_1 f_1 \mathcal{H}_1^2 (\mathit{f}_{\mathrm{evo}, 1} - 3) + + 3 \mathcal{H}_0^2 \Omega_{\mathrm{M}0} (f_1 + \mathcal{R}_1 + 5 s_{\mathrm{b}, 1} - 2) + \right] + \, , \nonumber \\ + %%%%%%%%%%%%%%%%% + J^{\phi_0 \int\!\phi}_{40} &= + \frac{ + 3 \chi_2^4 \mathcal{H}_0^3 \Omega_{\mathrm{M}0} D(\chi_2) + }{ + 2 s_1 s_2 a(\chi_2) + } \left[ + s_2 \mathcal{H}(\chi_2) \mathcal{R}_2 (f(\chi_2) - 1) - 5 s_{\mathrm{b}, 2} + 2 + \right]\times + \nonumber \\ + &\qquad\qquad\qquad + \left[ + - 3 \Omega_{\mathrm{M}0} \mathcal{H}_0 s_1 \mathcal{R}_1 + + 2 f_0 (\mathcal{H}_0 s_1 \mathcal{R}_1 + 5 s_{\mathrm{b}, 1} - 2) + \right] + \, , +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + +\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $b_1$, $s_{\mathrm{b}, 1}$, $\mathit{f}_{\mathrm{evo}, 1}$ (and $b_2$, $s_{\mathrm{b}, 2}$, $\mathit{f}_{\mathrm{evo}, 2}$) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    In this TPCF, the term proportional to $D(s_1)$ is not an observer term. The other one instead is, and it does also depend on the observer velocity. Consequently, if you set obs = :yes or obs = true both of them will computed, while for obs = :no, obs = false or even obs = :noobsvel only the first one will be taken into account.

    This function is computed from integrand_ξ_GNC_LocalGP_IntegratedGP with trapz() from the Trapz Julia package.

    Inputs

    • P1::Point, P2::Point or s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • b1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:

      • if not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;
      • if you set one or more values, they will override the cosmo ones in this computation;
      • the two sets of values should be different only if you are interested in studing two galaxy species;
      • only the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities.
    • s_lim=nothing : parameter used in order to avoid the divergence of the $\mathcal{R}$ and $\mathfrak{R}$ denominators: when $0 \leq s \leq s_\mathrm{lim}$ the returned values are

      \[\forall \, s \in [ 0, s_\mathrm{lim} ] \; : \quad + \mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}_0 \, s_\mathrm{lim}} \; , \quad + \mathcal{R}(s) = 5 s_{\mathrm{b}} + + \frac{2 - 5 s_{\mathrm{b}}}{\mathcal{H}_0 \, s_\mathrm{lim}} + + \frac{\dot{\mathcal{H}}}{\mathcal{H}_0^2} - \mathit{f}_{\mathrm{evo}} \; .\]

      If nothing, the default value stored in cosmo will be considered.

    • obs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?

      • :yes or true -> all the observer effects will be considered
      • :no or false -> no observer term will be taken into account
      • :noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account
    • en::Float64 = 1e6: just a float number used in order to deal better with small numbers;

    • N_χs::Int = 100: number of points to be used for sampling the integral along the range (0, s2) (for χ2); it has been checked that with N_χs ≥ 100 the result is stable.

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, integrand_ξ_GNC_LocalGP_IntegratedGP

    source
    GaPSE.ξ_GNC_IntegratedGP_LocalGPFunction
    ξ_GNC_IntegratedGP_LocalGP(s1, s2, y, cosmo::Cosmology; 
    +    en::Float64=1e6, N_χs::Int=100, 
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, 
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,
    +    obs::Union{Bool,Symbol}=:noobsvel,
    +    suit_sampling::Bool=true
    +    ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Integrated Gravitational Potential (GP) and the Local Gravitational Potential (GP) effects arising from the Galaxy Number Counts (GNC).

    It's computed through the symmetric function ξ_GNC_LocalGP_IntegratedGP; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    Inputs

    • s1 and s2: comoving distances where the TPCF has to be calculated;

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • kwargs... : Keyword arguments to be passed to the symmetric TPCF

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_LocalGP_IntegratedGP

    source
    diff --git a/dev/GNC_Correlations_3/index.html b/dev/GNC_Correlations_3/index.html new file mode 100644 index 00000000..6449aff5 --- /dev/null +++ b/dev/GNC_Correlations_3/index.html @@ -0,0 +1,498 @@ + +GNC TPCFs · GaPSE.jl

    GNC TPCFs

    Two-Point Cross-Correlation Functions integrands

    GaPSE.integrand_ξ_GNC_Newtonian_LensingFunction
    integrand_ξ_GNC_Newtonian_Lensing(
    +    IP::Point, P1::Point, P2::Point, y, cosmo::Cosmology;
    +    Δχ_min::Float64=1e-1, b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, 
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,
    +    obs::Union{Bool,Symbol}=:noobsvel
    +    ) ::Float64
    +
    +integrand_ξ_GNC_Newtonian_Lensing(
    +    χ2::Float64, s1::Float64, s2::Float64,
    +    y, cosmo::Cosmology;
    +    kwargs... )::Float64

    Return the integrand of the Two-Point Correlation Function (TPCF) given by the cross correlation between the Newtonian and the Lensing effects arising from the Galaxy Number Counts (GNC).

    In the first method, you should pass the two extreme Points (P1 and P2) and the intermediate integrand Point (IP) where to evaluate the function. In the second method (that internally recalls the first), you must provide the three corresponding comoving distances s1, s2, χ2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this integrand is the following:

    \[\begin{equation} + f^{\delta\kappa} (\chi_2, s_1, s_2, y) = + D_1 J^{\delta \kappa}_{\alpha} + \left[ + J^{\delta \kappa}_{00} I_0^0 ( \Delta\chi_2 ) + + J^{\delta \kappa}_{02} I_2^0 ( \Delta \chi_2 ) + + J^{\delta \kappa}_{04} I_4^0 ( \Delta \chi_2 ) + \right] \, , +\end{equation}\]

    with

    \[\begin{split} + J^{\delta \kappa}_{\alpha} &= + \frac{ + \mathcal{H}_0 ^2 \Omega_{\mathrm{M}0} D (\chi_2) + }{ + a(\chi_2 ) s_2 + } + (\chi_2 - s_2 ) (5s_{\mathrm{b}, 2} - 2) + \, , \\ + %%%%%%%%%%%%%%%%%%%%%%%% + J^{\delta \kappa}_{00} &= + \frac{1}{5} + \left[ + (3 y^2 - 1) \chi_2 f_1 - y s_1(3 f_1 + 5 b_1) + \right] + \, , \\ + %%%%%%%%%%%%%%%%%%%%%%%% + J^{\delta \kappa}_{02} &= + \frac{1}{14 \Delta\chi_2^2} + \left\{ + 4 f_1 (3 y^2 - 1) \chi_2^3 - + 2 y + \left[ + (3 y^2 + 8) f_1 + 7 b_1 + \right] s_1 \chi_2^2 + + \right. \nonumber \\ + &\left.\qquad \qquad\qquad + \left[ + (9 y^2 + 11) f_1 - 7 (y^2 + 3) b_1 + \right] s_1^2 \chi_2 - + 2 y \left[7 b_1 + 3 f_1 \right] s_1^3 + \right\} + \, , \\ + %%%%%%%%%%%%%%%%%%%%%%%% + J^{\delta \kappa}_{04} &= + \frac{f_1}{70 \Delta\chi_2^4 } + \left\{ + (6 y^2 - 2) \chi_2^5 + + 6 y (y^2 - 3) s_1 \chi_2^4 - + (y^4 + 12 y^2 - 21) s_1^2 \chi_2^3 + + \right.\nonumber \\ + &\left.\qquad\qquad\qquad + 2 y (y^2 + 3) s_1^3 \chi_2^2 - + 12 \chi_2 s_1^4 + + 4 y s_1 ^5 + \right\} + \, , +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + +\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $b_1$, $s_{\mathrm{b}, 1}$, $\mathit{f}_{\mathrm{evo}, 1}$ (and $b_2$, $s_{\mathrm{b}, 2}$, $\mathit{f}_{\mathrm{evo}, 2}$) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    In this TPCF there are no observer terms. The obs keyword is inserted only for compatibility with the other GNC TPCFs.

    This function is used inside ξ_GNC_Newton_Lensing with the trapz() from the Trapz Julia package.

    Inputs

    • IP::Point, P1::Point, P2::Point or χ2,s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • b1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:

      • if not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;
      • if you set one or more values, they will override the cosmo ones in this computation;
      • the two sets of values should be different only if you are interested in studing two galaxy species;
      • only the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities.
    • s_lim=nothing : parameter used in order to avoid the divergence of the $\mathcal{R}$ and $\mathfrak{R}$ denominators: when $0 \leq s \leq s_\mathrm{lim}$ the returned values are

      \[\forall \, s \in [ 0, s_\mathrm{lim} ] \; : \quad + \mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}_0 \, s_\mathrm{lim}} \; , \quad + \mathcal{R}(s) = 5 s_{\mathrm{b}} + + \frac{2 - 5 s_{\mathrm{b}}}{\mathcal{H}_0 \, s_\mathrm{lim}} + + \frac{\dot{\mathcal{H}}}{\mathcal{H}_0^2} - \mathit{f}_{\mathrm{evo}} \; .\]

      If nothing, the default value stored in cosmo will be considered.

    • obs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?

      • :yes or true -> all the observer effects will be considered
      • :no or false -> no observer term will be taken into account
      • :noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account
    • Δχ_min::Float64 = 1e-4 : when $\Delta\chi_2 = \sqrt{s_1^2 + \chi_2^2 - 2 \, s_1 \chi_2 y} \to 0^{+}$, some $I_\ell^n$ term diverges, but the overall parenthesis has a known limit:

      \[ \lim_{\Delta \chi_2 \to 0^{+}} + \left( + J_{00}^{\delta \kappa} \, I^0_0(\Delta \chi_2 ) + + J_{02}^{\delta \kappa} \, I^0_2(\Delta \chi_2 ) + + J_{04}^{\delta \kappa} \, I^4_0(\Delta \chi_2 ) + \right) = + - \frac{1}{5} \, s_1 \left(f_1 + 5 b_1\right) \, \sigma_0\]

      So, when it happens that $\Delta \chi_2 < \Delta\chi_\mathrm{min}$, the function considers this limit as the result of the parenthesis instead of calculating it in the normal way; it prevents computational divergences.

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_Newtonian_Lensing

    source
    GaPSE.integrand_ξ_GNC_Newtonian_IntegratedGPFunction
    integrand_ξ_GNC_Newtonian_IntegratedGP(
    +    IP::Point, P1::Point, P2::Point,
    +    y, cosmo::Cosmology; 
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, 
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,
    +    obs::Union{Bool,Symbol}=:noobsvel
    +    ) ::Float64
    +
    +integrand_ξ_GNC_Newtonian_IntegratedGP(
    +    χ2::Float64, s1::Float64, s2::Float64,
    +    y, cosmo::Cosmology;
    +    kwargs... )::Float64

    Return the integrand of the Two-Point Correlation Function (TPCF) given by the cross correlation between the Newtonian and the Integrated Gravitational Potential (GP) effects arising from the Galaxy Number Counts (GNC).

    In the first method, you should pass the two extreme Points (P1 and P2) and the intermediate integrand Point (IP) where to evaluate the function. In the second method (that internally recalls the first), you must provide the three corresponding comoving distances s1, s2, χ2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this integrand is the following:

    \[\begin{split} + f^{\delta \int\!\phi}(\chi_2, s_1 , s_2, y ) = + D_1 \; + &J^{\delta \int\!\phi}_{\alpha} + \left[ + J^{\delta \int\!\phi}_{20} I_0^2 ( \Delta\chi_2 ) + + \right. \\ + & \left. + J^{\delta \int\!\phi}_{\beta} + \left( + \frac{1}{15} I_0^0 ( \Delta\chi_2 ) + + \frac{1}{21} I_2^0 ( \Delta\chi_2 ) + + \frac{1}{35} I_4^0 ( \Delta\chi_2 ) + \right) + \right] \, , \nonumber +\end{split}\]

    with

    \[\begin{split} + J^{\delta \int\!\phi}_{\alpha} &= + \frac{\mathcal{H}_0^2 \Omega_{\mathrm{M}0} D(\chi_2)}{3 a(\chi_2) s_2} + \left[ + s_2 \mathcal{R}_2 \mathcal{H}(\chi_2) ( f(\chi_2) - 1) - 5 s_{\mathrm{b}, 2} + 2 + \right] + \, , \\ + %%%%%%%%%%%%%%%%%%%%% + J^{\delta \int\!\phi}_{\beta} &= + f_1 \left[ + (3 y^2 - 1) \chi_2^2 - 4 y s_1 \chi_2 + 2 s_1^2 + \right] + \, , \\ + %%%%%%%%%%%%%%%%%%%%% + J^{\delta \int\!\phi}_{20} &= + - \Delta\chi_2^2 ( 3 b_1 + f_1) + \, , +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + +\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $b_1$, $s_{\mathrm{b}, 1}$, $\mathit{f}_{\mathrm{evo}, 1}$ (and $b_2$, $s_{\mathrm{b}, 2}$, $\mathit{f}_{\mathrm{evo}, 2}$) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    In this TPCF there are no observer terms. The obs keyword is inserted only for compatibility with the other GNC TPCFs.

    This function is used inside ξ_GNC_Newtonian_IntegratedGP with trapz() from the Trapz Julia package.

    Inputs

    • IP::Point, P1::Point, P2::Point or χ2,s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • b1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:

      • if not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;
      • if you set one or more values, they will override the cosmo ones in this computation;
      • the two sets of values should be different only if you are interested in studing two galaxy species;
      • only the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities.
    • s_lim=nothing : parameter used in order to avoid the divergence of the $\mathcal{R}$ and $\mathfrak{R}$ denominators: when $0 \leq s \leq s_\mathrm{lim}$ the returned values are

      \[\forall \, s \in [ 0, s_\mathrm{lim} ] \; : \quad + \mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}_0 \, s_\mathrm{lim}} \; , \quad + \mathcal{R}(s) = 5 s_{\mathrm{b}} + + \frac{2 - 5 s_{\mathrm{b}}}{\mathcal{H}_0 \, s_\mathrm{lim}} + + \frac{\dot{\mathcal{H}}}{\mathcal{H}_0^2} - \mathit{f}_{\mathrm{evo}} \; .\]

      If nothing, the default value stored in cosmo will be considered.

    • obs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?

      • :yes or true -> all the observer effects will be considered
      • :no or false -> no observer term will be taken into account
      • :noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_Newtonian_IntegratedGP

    source
    GaPSE.integrand_ξ_GNC_Doppler_IntegratedGPFunction
    integrand_ξ_GNC_Doppler_IntegratedGP(
    +    IP::Point, P1::Point, P2::Point, y, cosmo::Cosmology; 
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, 
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,
    +    obs::Union{Bool,Symbol}=:noobsvel
    +    ) ::Float64
    +
    +integrand_ξ_GNC_Doppler_IntegratedGP(
    +    χ2::Float64, s1::Float64, s2::Float64,
    +    y, cosmo::Cosmology; 
    +    kwargs...) ::Float64

    Return the integrand of the Two-Point Correlation Function (TPCF) given by the cross correlation between the Doppler and the Integrated Gravitational Potential (GP) effects arising from the Galaxy Number Counts (GNC).

    In the first method, you should pass the two extreme Points (P1 and P2) and the intermediate integrand Point (IP) where to evaluate the function. In the second method (that internally recalls the first), you must provide the three corresponding comoving distances s1, s2, χ2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this integrand is the following:

    \[\begin{split} + f^{v_{\parallel} \int\!\phi} \left(\chi_2, s_1 , s_2, y \right) &= + D_1 \; + J^{v_{\parallel} \int\!\phi}_{\alpha} + \left[ + \frac{1}{15} I_0^0 ( \Delta\chi_2 ) + + \frac{2}{21} I_2^0 ( \Delta\chi_2 ) + + \right. \\ + &\left. + \frac{1}{35} I_4^0 ( \Delta\chi_2 ) + + I^2_0 ( \Delta\chi_2) + \right] + + + J^{v_{\parallel} \int\!\phi}_{31} I^3_1 (\chi_2) + \, ,\nonumber +\end{split}\]

    where

    \[\begin{split} + J^{v_{\parallel} \int\!\phi}_{\alpha} &= + \frac{f_1 \mathcal{H}_1 \mathcal{R}_1}{s_2 a(\chi_2)} + D(\chi_2) \mathcal{H}_0^2 \Omega_{\mathrm{M}0} \Delta\chi_2^2 + (\chi_2 y - s_1) + \left[ + s_2 \mathcal{H}(\chi_2) \mathcal{R}_2 (f(\chi_2) - 1) - 5 s_{\mathrm{b}, 2} + 2 + \right] + \, , \\ + %%%%%%%%%%%%%%%%%%%%% + J^{v_{\parallel} \int\!\phi}_{31} &= + -\frac{ + 3 \chi_2^3 y f_0 \mathcal{H}_0^3 \Omega_{\mathrm{M}0} D(\chi_2) + }{ + s_2 a(\chi_2) + }(\mathcal{R}_1 - 5 s_{\mathrm{b}, 1} + 2) + \left[ + s_2 \mathcal{H}(\chi_2) \mathcal{R}_2 (f(\chi_2) - 1) - 5 s_{\mathrm{b}, 2} + 2) + \right] + \, . +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + +\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $b_1$, $s_{\mathrm{b}, 1}$, $\mathit{f}_{\mathrm{evo}, 1}$ (and $b_2$, $s_{\mathrm{b}, 2}$, $\mathit{f}_{\mathrm{evo}, 2}$) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    In this TPCF, the term proportional to $D(s_1)$ is not an observer term. The other one instead is and it does depend on the observer velocity. Consequently, if you set obs = :yes or obs = true both of them will computed, while for obs = :no, obs = false or even obs = :noobsvel only the $\propto D(s_1)$ one will be taken into account.

    This function is used inside ξ_GNC_Doppler_IntegratedGP with trapz() from the Trapz Julia package.

    Inputs

    • IP::Point, P1::Point and P2::Point, or χ2,s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • b1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:

      • if not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;
      • if you set one or more values, they will override the cosmo ones in this computation;
      • the two sets of values should be different only if you are interested in studing two galaxy species;
      • only the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities.
    • s_lim=nothing : parameter used in order to avoid the divergence of the $\mathcal{R}$ and $\mathfrak{R}$ denominators: when $0 \leq s \leq s_\mathrm{lim}$ the returned values are

      \[\forall \, s \in [ 0, s_\mathrm{lim} ] \; : \quad + \mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}_0 \, s_\mathrm{lim}} \; , \quad + \mathcal{R}(s) = 5 s_{\mathrm{b}} + + \frac{2 - 5 s_{\mathrm{b}}}{\mathcal{H}_0 \, s_\mathrm{lim}} + + \frac{\dot{\mathcal{H}}}{\mathcal{H}_0^2} - \mathit{f}_{\mathrm{evo}} \; .\]

      If nothing, the default value stored in cosmo will be considered.

    • obs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?

      • :yes or true -> all the observer effects will be considered
      • :no or false -> no observer term will be taken into account
      • :noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_Doppler_IntegratedGP

    source
    GaPSE.integrand_ξ_GNC_Lensing_DopplerFunction
    integrand_ξ_GNC_Lensing_Doppler(
    +    IP::Point, P1::Point, P2::Point, y, cosmo::Cosmology;
    +    Δχ_min::Float64=1e-1, b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, 
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing, 
    +    obs::Union{Bool,Symbol}=:noobsvel
    +    ) ::Float64
    +
    +integrand_ξ_GNC_Lensing_Doppler(
    +    χ1::Float64, s1::Float64, s2::Float64,
    +    y, cosmo::Cosmology;
    +    kwargs... )::Float64

    Return the integrand of the Two-Point Correlation Function (TPCF) given by the cross correlation between the Lensing and the Doppler effects arising from the Galaxy Number Counts (GNC).

    In the first method, you should pass the two extreme Points (P1 and P2) and the intermediate integrand Point (IP) where to evaluate the function. In the second method (that internally recalls the first), you must provide the three corresponding comoving distances s1, s2, χ1. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this integrand is the following:

    \[\begin{split} + f^{\kappa \phi} (\chi_1, s_1 , s_2, y ) &= + D_2 + J^{\kappa v_{\parallel}}_{\alpha} \left[ + J^{\kappa v_{\parallel}}_{00} I_0^0 ( \Delta \chi_1 ) + + J^{\kappa v_{\parallel}}_{02} I_2^0 ( \Delta \chi_1 ) + \right. \nonumber \\ + & \left. + + J^{\kappa v_{\parallel}}_{04} I_4^0 ( \Delta \chi_1 ) + + J^{\kappa v_{\parallel}}_{20} I_0^2 ( \Delta \chi_1 ) + \right] + + + J^{\kappa v_{\parallel}}_{31} I_1^3 ( \chi_1 ) \, , +\end{split}\]

    with

    \[\begin{split} + J^{\kappa v_{\parallel}}_{\alpha} &= + \frac{\mathcal{H}_0^2 \Omega_{\mathrm{M}0} D(\chi_1)}{a(\chi_1) s_1} + f_2 \mathcal{H}_2 \mathcal{R}_2 (\chi_1 - s_1) (5 s_{\mathrm{b}, 1} - 2) + \, , \\ + %%%%%%%%%%%%%%%%% + J^{\kappa v_{\parallel}}_{00} &= + \frac{1}{15} + \left[ + \chi_1^2 y + \chi_1 s_2 (4 y^2 - 3) - 2 y s_2^2 + \right] + \, , \\ + %%%%%%%%%%%%%%%%% + J^{\kappa v_{\parallel}}_{02} &= + \frac{1}{42 \Delta\chi_1^2} \left[ + 4 y \chi_1^4 + 4 (2 y^2 - 3) s_2 \chi_1^3 + + y (11 - 23 y^2) s_2^2 \chi_1^2 + + \right.\\ + &\left.\qquad\qquad\qquad + (23 y^2 - 3) s_2^3 \chi_1 - 8 y s_2^4 + \right] \nonumber + \, , \\ + %%%%%%%%%%%%%%%%% + J^{\kappa v_{\parallel}}_{04} &= + \frac{1}{70 \Delta\chi_1^2} + \left[ + 2 y \chi_1^4 + 2 (2 y^2 - 3) s_2 \chi_1^3 - + y (y^2 + 5) s_2^2 \chi_1^2 + + (y^2 + 9) s_2^3 \chi_1 - 4 y s_2^4 + \right] + \, , \\ + %%%%%%%%%%%%%%%%% + J^{\kappa v_{\parallel}}_{20} &= y \Delta\chi_1^2 + \, , \\ + %%%%%%%%%%%%%%%%% + J^{\kappa v_{\parallel}}_{31} &= + -\frac{ + 3 \chi_1^2 y f_0 \mathcal{H}_0^3 \Omega_{\mathrm{M}0} D(\chi_1) + }{ + a(\chi_1)s_1 + }(\chi_1 - s_1) (5 s_{\mathrm{b}, 1} - 2) (\mathcal{R}_2 - 5 s_{\mathrm{b}, 2} + 2) + \, , +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + +\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $b_1$, $s_{\mathrm{b}, 1}$, $\mathit{f}_{\mathrm{evo}, 1}$ (and $b_2$, $s_{\mathrm{b}, 2}$, $\mathit{f}_{\mathrm{evo}, 2}$) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    In this TPCF, the term proportional to $D(s_1)$ is not an observer term. The other one instead is and it does depend on the observer velocity. Consequently, if you set obs = :yes or obs = true both of them will computed, while for obs = :no, obs = false or even obs = :noobsvel only the first one will be taken into account.

    This function is used inside ξ_GNC_Lensing_Doppler with trapz() from the Trapz Julia package.

    Inputs

    • IP::Point, P1::Point, P2::Point or χ1,s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • b1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:

      • if not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;
      • if you set one or more values, they will override the cosmo ones in this computation;
      • the two sets of values should be different only if you are interested in studing two galaxy species;
      • only the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities.
    • s_lim=nothing : parameter used in order to avoid the divergence of the $\mathcal{R}$ and $\mathfrak{R}$ denominators: when $0 \leq s \leq s_\mathrm{lim}$ the returned values are

      \[\forall \, s \in [ 0, s_\mathrm{lim} ] \; : \quad + \mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}_0 \, s_\mathrm{lim}} \; , \quad + \mathcal{R}(s) = 5 s_{\mathrm{b}} + + \frac{2 - 5 s_{\mathrm{b}}}{\mathcal{H}_0 \, s_\mathrm{lim}} + + \frac{\dot{\mathcal{H}}}{\mathcal{H}_0^2} - \mathit{f}_{\mathrm{evo}} \; .\]

      If nothing, the default value stored in cosmo will be considered.

    • obs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?

      • :yes or true -> all the observer effects will be considered
      • :no or false -> no observer term will be taken into account
      • :noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account
    • Δχ_min::Float64 = 1e-1 : when $\Delta\chi_1 = \sqrt{\chi_1^2 + s_2^2 - 2 \, \chi_1 s_2 y} \to 0^{+}$, some $I_\ell^n$ term diverges, but the overall parenthesis has a known limit:

      \[ \lim_{\Delta\chi_1 \to 0^{+}} + \left[ + J^{\kappa v_{\parallel}}_{00} I_0^0 ( \Delta \chi_1 ) + + J^{\kappa v_{\parallel}}_{02} I_2^0 ( \Delta \chi_1 ) + + J^{\kappa v_{\parallel}}_{04} I_4^0 ( \Delta \chi_1 ) + + J^{\kappa v_{\parallel}}_{20} I_0^2 ( \Delta \chi_1 ) + \right] = \sigma_2\]

      So, when it happens that $\Delta\chi_1 < \Delta\chi_\mathrm{min}$, the function considers this limit as the result of the parenthesis instead of calculating it in the normal way; it prevents computational divergences.

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_Lensing_Doppler

    source
    GaPSE.integrand_ξ_GNC_Lensing_LocalGPFunction
    integrand_ξ_GNC_Lensing_LocalGP(
    +    IP::Point, P1::Point, P2::Point,
    +    y, cosmo::Cosmology;
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, 
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing, 
    +    obs::Union{Bool,Symbol}=:noobsvel
    +    ) ::Float64
    +
    +integrand_ξ_GNC_Lensing_LocalGP(
    +    χ1::Float64, s1::Float64, s2::Float64,
    +    y, cosmo::Cosmology;
    +    kwargs... )::Float64

    Return the integrand of the Two-Point Correlation Function (TPCF) given by the cross correlation between the Lensing and the Local Gravitational Potential (GP) effects arising from the Galaxy Number Counts (GNC).

    In the first method, you should pass the two extreme Points (P1 and P2) and the intermediate integrand Point (IP) where to evaluate the function. In the second method (that internally recalls the first), you must provide the three corresponding comoving distances s1, s2, χ1. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this integrand is the following:

    \[\begin{split} + f^{\kappa \phi} (\chi_1, s_1 , s_2, y ) &= + D_2 \; + J^{\kappa \phi}_{\alpha}\left[ + J^{\kappa \phi}_{20} I_0^2 ( \Delta \chi_1 ) + + \right.\nonumber \\ + &\left.\qquad + J^{\kappa \phi}_{\beta} + \left( + \frac{1}{60} I_0^0 ( \Delta \chi_1 ) + + \frac{1}{42} I_2^0 ( \Delta \chi_1 ) + + \frac{1}{140} I_4^0 ( \Delta \chi_1 ) + \right) + \right] \, , +\end{split}\]

    with

    \[\begin{split} + J^{\kappa \phi}_{\alpha} &= + \frac{\mathcal{H}_0^2 \Omega_{\mathrm{M}0} s_2 D(\chi_1)}{a(\chi_1) a_2 s_1} + (\chi_1 - s_1) (5s_{\mathrm{b}, 1} - 2) + \times\\ + &\qquad\qquad + \left[ + 2 f_2 a_2 \mathcal{H}_2^2 (\mathit{f}_{\mathrm{evo}, 2} - 3) + + 3 \mathcal{H}_0^2 \Omega_{\mathrm{M}0} (f_2 + \mathcal{R}_2 + 5s_{\mathrm{b}, 2} - 2) + \right] \nonumber + \, , \\ + %%%%%%%%%%%%%%%%%%% + J^{\kappa \phi}_{\beta} &= + 2 y \chi_1^2 - \chi_1 s_2 (y^2 + 3) + 2 y s_2^2 + \, ,\\ + %%%%%%%%%%%%%%%%%%% + J^{\kappa \phi}_{20} &= \frac{1}{2} y \Delta\chi_1^2\, , +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + +\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $b_1$, $s_{\mathrm{b}, 1}$, $\mathit{f}_{\mathrm{evo}, 1}$ (and $b_2$, $s_{\mathrm{b}, 2}$, $\mathit{f}_{\mathrm{evo}, 2}$) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    In this TPCF there are no observer terms. The obs keyword is inserted only for compatibility with the other GNC TPCFs.

    This function is used inside ξ_GNC_Lensing_LocalGP with trapz() from the Trapz Julia package.

    Inputs

    • IP::Point, P1::Point, P2::Point or χ1,s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • b1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:

      • if not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;
      • if you set one or more values, they will override the cosmo ones in this computation;
      • the two sets of values should be different only if you are interested in studing two galaxy species;
      • only the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities.
    • s_lim=nothing : parameter used in order to avoid the divergence of the $\mathcal{R}$ and $\mathfrak{R}$ denominators: when $0 \leq s \leq s_\mathrm{lim}$ the returned values are

      \[\forall \, s \in [ 0, s_\mathrm{lim} ] \; : \quad + \mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}_0 \, s_\mathrm{lim}} \; , \quad + \mathcal{R}(s) = 5 s_{\mathrm{b}} + + \frac{2 - 5 s_{\mathrm{b}}}{\mathcal{H}_0 \, s_\mathrm{lim}} + + \frac{\dot{\mathcal{H}}}{\mathcal{H}_0^2} - \mathit{f}_{\mathrm{evo}} \; .\]

      If nothing, the default value stored in cosmo will be considered.

    • obs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?

      • :yes or true -> all the observer effects will be considered
      • :no or false -> no observer term will be taken into account
      • :noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_Lensing_LocalGP

    source
    GaPSE.integrand_ξ_GNC_Lensing_IntegratedGPFunction
     integrand_ξ_GNC_Lensing_IntegratedGP(
    +      IP1::Point, IP2::Point,
    +      P1::Point, P2::Point,
    +      y, cosmo::Cosmology; 
    +      obs::Union{Bool,Symbol}=:noobsvel
    +      ) ::Float64
    +
    + integrand_ξ_GNC_Lensing_IntegratedGP(
    +      χ1::Float64, χ2::Float64,
    +      s1::Float64, s2::Float64,
    +      y, cosmo::Cosmology;
    +      kwargs...) ::Float64

    Return the integrand of the Two-Point Correlation Function (TPCF) given by the cross correlation between the Lensing and the Integrated Gravitational Potential (GP) effects arising from the Galaxy Number Counts (GNC).

    In the first method, you should pass the two extreme Points (P1 and P2) and the two intermediate integrand Points (IP1 and IP2) where to evaluate the function. In the second method (that internally recalls the first), you must provide the four corresponding comoving distances s1, s2, χ1, χ2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this integrand is the following:

    \[\begin{split} + f^{\kappa \int\!\phi} (\chi_1, \chi_2, s_1 , s_2, y ) = + J_{\alpha}^{\kappa \int\!\phi} + \left[ + J_{31}^{\kappa \int\!\phi} I_1^3 ( \Delta \chi ) + + J_{22}^{\kappa \int\!\phi} I_2^2 ( \Delta \chi ) + \right] \, , +\end{split}\]

    with

    \[\begin{split} + J_{\alpha}^{\kappa \int\!\phi} &= + \frac{ + 9 \chi_2 \ \mathcal{H}_0^4 \Omega_{\mathrm{M}0}^2 D(\chi_1) D(\chi_2) + }{ + a(\chi_1) a(\chi_2) s_1 s_2 + } + (\chi_1 - s_1) (5 s_{\mathrm{b}, 1} - 2) \times\\ + &\qquad\qquad\qquad\qquad\qquad\qquad + \left[ + \ \mathcal{H}(\chi_2) \mathcal{R}_2 s_1 (f(\chi_2) - 1) - 5 s_{\mathrm{b}, 1} + 2 + \right] \nonumber + \, , \\ + %%%%%%%%%%%%% + J_{31}^{\kappa \int\!\phi} &= y \Delta\chi^2 + \, , \\ + %%%%%%%%%%%%% + J_{22}^{\kappa \int\!\phi} &= + \frac{1}{2} (y^2 - 1) \chi_1 \chi_2 + \, , +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + +\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $b_1$, $s_{\mathrm{b}, 1}$, $\mathit{f}_{\mathrm{evo}, 1}$ (and $b_2$, $s_{\mathrm{b}, 2}$, $\mathit{f}_{\mathrm{evo}, 2}$) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    In this TPCF there are no observer terms. The obs keyword is inserted only for compatibility with the other GNC TPCFs.

    This function is used inside ξ_GNC_Lensing_IntegratedGP with trapz() from the Trapz Julia package.

    Inputs

    • IP1::Point, IP2::Point, P1::Point, P2::Point or χ1, χ2, s1, s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • b1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:

      • if not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;
      • if you set one or more values, they will override the cosmo ones in this computation;
      • the two sets of values should be different only if you are interested in studing two galaxy species;
      • only the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities.
    • s_lim=nothing : parameter used in order to avoid the divergence of the $\mathcal{R}$ and $\mathfrak{R}$ denominators: when $0 \leq s \leq s_\mathrm{lim}$ the returned values are

      \[\forall \, s \in [ 0, s_\mathrm{lim} ] \; : \quad + \mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}_0 \, s_\mathrm{lim}} \; , \quad + \mathcal{R}(s) = 5 s_{\mathrm{b}} + + \frac{2 - 5 s_{\mathrm{b}}}{\mathcal{H}_0 \, s_\mathrm{lim}} + + \frac{\dot{\mathcal{H}}}{\mathcal{H}_0^2} - \mathit{f}_{\mathrm{evo}} \; .\]

      If nothing, the default value stored in cosmo will be considered.

    • obs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?

      • :yes or true -> all the observer effects will be considered
      • :no or false -> no observer term will be taken into account
      • :noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning IntegratedGP) will be neglected, the other ones will be taken into account

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_Lensing_IntegratedGP

    source
    GaPSE.integrand_ξ_GNC_LocalGP_IntegratedGPFunction
    integrand_ξ_GNC_LocalGP_IntegratedGP(
    +    IP::Point, P1::Point, P2::Point,
    +    y, cosmo::Cosmology; 
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, 
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,
    +    obs::Union{Bool,Symbol}=:noobsvel
    +    ) ::Float64
    +
    +integrand_ξ_GNC_LocalGP_IntegratedGP(
    +    χ2::Float64, s1::Float64, s2::Float64,
    +    y, cosmo::Cosmology;
    +    kwargs... )::Float64

    Return the integrand of the Two-Point Correlation Function (TPCF) given by the cross correlation between the Local Gravitational Potential (GP) and the Integrated Gravitational Potential (GP) effects arising from the Galaxy Number Counts (GNC).

    In the first method, you should pass the two extreme Points (P1 and P2) and the intermediate integrand Point (IP) where to evaluate the function. In the second method (that internally recalls the first), you must provide the three corresponding comoving distances s1, s2, χ2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this integrand is the following:

    \[\begin{split} + f^{\phi \int\!\phi} (\chi_2, s_1 , s_2, y ) = + D_1 \, J^{\phi \int\!\phi}_{40} \tilde{I}_0^4 ( \Delta\chi_2 ) + + J^{\phi_0 \int\!\phi}_{04} \tilde{I}_0^4 ( \chi_2 ) \, , +\end{split}\]

    with

    \[\begin{split} + J^{\phi \int\!\phi}_{40} &= + \frac{ + 3 \Delta\chi_2^4 \mathcal{H}_0^2 \Omega_{\mathrm{M}0} D(\chi_2) + }{ + 2 s_2 a(\chi_2) a_1 + } \left[ + s_2 \mathcal{H}(\chi_2) \mathcal{R}_2(f(\chi_2)-1) -5 s_{\mathrm{b}, 2}+2 + \right] + \times\\ + &\qquad\qquad\qquad + \left[ + 2 a_1 f_1 \mathcal{H}_1^2 (\mathit{f}_{\mathrm{evo}, 1} - 3) + + 3 \mathcal{H}_0^2 \Omega_{\mathrm{M}0} (f_1 + \mathcal{R}_1 + 5 s_{\mathrm{b}, 1} - 2) + \right] + \, , \nonumber \\ + %%%%%%%%%%%%%%%%% + J^{\phi_0 \int\!\phi}_{40} &= + \frac{ + 3 \chi_2^4 \mathcal{H}_0^3 \Omega_{\mathrm{M}0} D(\chi_2) + }{ + 2 s_1 s_2 a(\chi_2) + } \left[ + s_2 \mathcal{H}(\chi_2) \mathcal{R}_2 (f(\chi_2) - 1) - 5 s_{\mathrm{b}, 2} + 2 + \right]\times + \nonumber \\ + &\qquad\qquad\qquad + \left[ + - 3 \Omega_{\mathrm{M}0} \mathcal{H}_0 s_1 \mathcal{R}_1 + + 2 f_0 (\mathcal{H}_0 s_1 \mathcal{R}_1 + 5 s_{\mathrm{b}, 1} - 2) + \right] + \, , +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + +\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $b_1$, $s_{\mathrm{b}, 1}$, $\mathit{f}_{\mathrm{evo}, 1}$ (and $b_2$, $s_{\mathrm{b}, 2}$, $\mathit{f}_{\mathrm{evo}, 2}$) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    In this TPCF, the term proportional to $D(s_1)$ is not an observer term. The other one instead is, and it does also depend on the observer velocity. Consequently, if you set obs = :yes or obs = true both of them will computed, while for obs = :no, obs = false or even obs = :noobsvel only the first one will be taken into account.

    This function is used inside ξ_GNC_LocalGP_IntegratedGP with trapz() from the Trapz Julia package.

    Inputs

    • IP::Point, P1::Point, P2::Point or χ2,s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • b1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:

      • if not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;
      • if you set one or more values, they will override the cosmo ones in this computation;
      • the two sets of values should be different only if you are interested in studing two galaxy species;
      • only the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities.
    • s_lim=nothing : parameter used in order to avoid the divergence of the $\mathcal{R}$ and $\mathfrak{R}$ denominators: when $0 \leq s \leq s_\mathrm{lim}$ the returned values are

      \[\forall \, s \in [ 0, s_\mathrm{lim} ] \; : \quad + \mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}_0 \, s_\mathrm{lim}} \; , \quad + \mathcal{R}(s) = 5 s_{\mathrm{b}} + + \frac{2 - 5 s_{\mathrm{b}}}{\mathcal{H}_0 \, s_\mathrm{lim}} + + \frac{\dot{\mathcal{H}}}{\mathcal{H}_0^2} - \mathit{f}_{\mathrm{evo}} \; .\]

      If nothing, the default value stored in cosmo will be considered.

    • obs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?

      • :yes or true -> all the observer effects will be considered
      • :no or false -> no observer term will be taken into account
      • :noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account
    • suit_sampling::Bool = true : this bool keyword can be found in all the TPCFs which have at least one χ integral; it is conceived to enable a sampling of the χ integral(s) suited for the given TPCF; however, it actually have an effect only in the TPCFs that have such a sampling implemented in the code. Currently, only ξ_GNC_Newtonian_Lensing (and its simmetryc TPCF) has it.

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_LocalGP_IntegratedGP

    source

    Two-Point Cross-Correlation Function multipoles

    GaPSE.integrand_ξ_GNC_multipoleFunction
    integrand_ξ_GNC_multipole(s1, s, μ, effect::Function, cosmo::Cosmology;
    +    L::Int = 0, use_windows::Bool = true, kwargs...)
    +
    +integrand_ξ_GNC_multipole(s1, s, μ, effect::String, cosmo::Cosmology; kwargs...)

    Return the integrand on $\mu = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}$ of the of the chosen Galaxy Number Counts (GNC) Two-Point Correlation Function (TPCF) term, i.e. the following function $f(s_1, s, \mu)$:

    \[ f_L(s_1, s, \mu) = \xi \left(s_1, s_2, y\right) + \, \mathcal{L}_L(\mu) \, \times + \begin{cases} + \frac{1}{\mathcal{N}}\mathcal{F}(s, \mu) \quad \mathrm{use\_windows == true} \\ + 1 \quad\quad \mathrm{use\_windows == false} + \end{cases}\]

    where:

    • $s_2 = s_2(s_1, s, \mu) = \sqrt{s_1^2 + s^2 + 2 \, s_1 \, s \, \mu}$
    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2 = \frac{\mu \, s + s_1}{s_2(s_1, s, \mu)}$
    • $\xi$ is the corresponding GNC TPCF effect
    • $\mathcal{L}_L(\mu)$ is the Legendre polynomial of order $L$
    • $\mathcal{F}(s, \mu)$ is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)
    • $\mathcal{N}$ is the integrated window function norm (check the documentation of WindowFIntegrated)

    In the former method you have to pass as an input the GNC effect function you want to integrate, while in the (recommended) latter one it's necessary to specify the name of the GNC TPCF term among the following:

    auto_newton , auto_doppler , auto_lensing , auto_localgp , auto_integratedgp , newton_doppler , doppler_newton , newton_lensing , lensing_newton , newton_localgp , localgp_newton , newton_integratedgp , integratedgp_newton , lensing_doppler , doppler_lensing , doppler_localgp , localgp_doppler , doppler_integratedgp , integratedgp_doppler , lensing_localgp , localgp_lensing , lensing_integratedgp , integratedgp_lensing , localgp_integratedgp , integratedgp_localgp ,

    to which correspond the following functions, respectively:

    ξ_GNC_Newtonian , ξ_GNC_Doppler , ξ_GNC_Lensing , ξ_GNC_LocalGP , ξ_GNC_IntegratedGP , ξ_GNC_Newtonian_Doppler , ξ_GNC_Doppler_Newtonian , ξ_GNC_Newtonian_Lensing , ξ_GNC_Lensing_Newtonian , ξ_GNC_Newtonian_LocalGP , ξ_GNC_LocalGP_Newtonian , ξ_GNC_Newtonian_IntegratedGP , ξ_GNC_IntegratedGP_Newtonian , ξ_GNC_Lensing_Doppler , ξ_GNC_Doppler_Lensing , ξ_GNC_Doppler_LocalGP , ξ_GNC_LocalGP_Doppler , ξ_GNC_Doppler_IntegratedGP , ξ_GNC_IntegratedGP_Doppler , ξ_GNC_Lensing_LocalGP , ξ_GNC_LocalGP_Lensing , ξ_GNC_Lensing_IntegratedGP , ξ_GNC_IntegratedGP_Lensing , ξ_GNC_LocalGP_IntegratedGP , ξ_GNC_IntegratedGP_LocalGP ,

    Internally, the second method recall the first, so all the keyword arguments are in common.

    Note that these is an internal conversion of coordiate sistems from (s1, s, μ) to (s1, s2, y) thorugh the functions y and s2. The inverse relations are:

    • $s = s(s_1, s_2, y) = \sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$
    • $\mu = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}} = \frac{y \, s_2 - s_1}{s(s_1, s_2, y)}$.

    Inputs

    • s1: the comoving distance where must be evaluated the integral

    • s: the comoving distance from s1 where must be evaluated the integral

    • μ: the cosine between s1 and s where must be evaluated the integral

    • effect::Function or effect::String : name/function you want to consider, among the ones inside GaPSE.GR_EFFECTS_GNC/GaPSE.VEC_ξs_GNC respectively.

    • cosmo::Cosmology: cosmology to be used in this computation

    Optional arguments

    • L::Int = 0: order of the Legendre polynomial to be used

    • use_windows::Bool = false: tells if the integrand must consider the two window function $\phi$ and $\mathcal{F}$

    • kwargs... : other keyword arguments that will be passed to the selected GR TPCF effect (ξ_GNC_Doppler, ξ_GNC_Lensing, ...)

    See also: ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, WindowFIntegrated, ϕ, Cosmology, y, s2, GR_EFFECTS_GNC, GaPSE.VEC_ξs_GNC

    source
    GaPSE.ξ_GNC_multipoleFunction
    ξ_GNC_multipole(
    +    s1, s, effect::Function, cosmo::Cosmology;
    +    L::Int = 0, alg::Symbol = :lobatto, 
    +    use_windows::Bool = true, 
    +    obs::Union{Bool,Symbol} = :noobsvel,
    +    N_lob::Int = 100, N_trap::Int = 200, 
    +    atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,
    +    enhancer::Float64 = 1e6, 
    +    kwargs...) ::Float64
    +
    +ξ_GNC_multipole(s1, s, effect::String, cosmo::Cosmology; 
    +    kwargs...) ::Float64

    Evaluate the multipole of order L of the chosen Galaxy Number Counts (GNC) Two-Point Correlation Function (TPCF) term i.e. the following function $\xi_L(s_1, s)$:

    \[ \xi_L(s_1, s) = \frac{2 L + 1}{2} \int_{-1}^{+1} \mathrm{d}\mu \; + \xi (s_1, s_2, \cos{\theta}) \, \mathcal{L}_L(\mu) \, \times + \begin{cases} + \frac{1}{\mathcal{N}}\mathcal{F}(s, \mu) \quad \mathrm{use\_windows == true} \\ + 1 \quad\quad \mathrm{use\_windows == false} + \end{cases}\]

    where:

    • $s_2 = s_2(s_1, s, \mu) = \sqrt{s_1^2 + s^2 + 2 \, s_1 \, s \, \mu}$
    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2 = \frac{\mu \, s + s_1}{s_2(s_1, s, \mu)}$
    • $\xi$ is the corresponding GNC TPCF effect
    • $\mathcal{L}_L(\mu)$ is the Legendre polynomial of order $L$
    • $\mathcal{F}(s, \mu)$ is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)
    • $\mathcal{N}$ is the integrated window function norm (check the documentation of WindowFIntegrated)

    In the former method you have to pass as an input the GNC effect function you want to integrate, while in the (recommended) latter one it's necessary to specify the name of the GNC TPCF term among the following:

    auto_newton , auto_doppler , auto_lensing , auto_localgp , auto_integratedgp , newton_doppler , doppler_newton , newton_lensing , lensing_newton , newton_localgp , localgp_newton , newton_integratedgp , integratedgp_newton , lensing_doppler , doppler_lensing , doppler_localgp , localgp_doppler , doppler_integratedgp , integratedgp_doppler , lensing_localgp , localgp_lensing , lensing_integratedgp , integratedgp_lensing , localgp_integratedgp , integratedgp_localgp ,

    to which correspond the following functions:

    ξ_GNC_Newtonian , ξ_GNC_Doppler , ξ_GNC_Lensing , ξ_GNC_LocalGP , ξ_GNC_IntegratedGP , ξ_GNC_Newtonian_Doppler , ξ_GNC_Doppler_Newtonian , ξ_GNC_Newtonian_Lensing , ξ_GNC_Lensing_Newtonian , ξ_GNC_Newtonian_LocalGP , ξ_GNC_LocalGP_Newtonian , ξ_GNC_Newtonian_IntegratedGP , ξ_GNC_IntegratedGP_Newtonian , ξ_GNC_Lensing_Doppler , ξ_GNC_Doppler_Lensing , ξ_GNC_Doppler_LocalGP , ξ_GNC_LocalGP_Doppler , ξ_GNC_Doppler_IntegratedGP , ξ_GNC_IntegratedGP_Doppler , ξ_GNC_Lensing_LocalGP , ξ_GNC_LocalGP_Lensing , ξ_GNC_Lensing_IntegratedGP , ξ_GNC_IntegratedGP_Lensing , ξ_GNC_LocalGP_IntegratedGP , ξ_GNC_IntegratedGP_LocalGP ,

    Internally, the second method recall the first, so all the keyword arguments are in common.

    Note that these is an internal conversion of coordiate sistems from (s1, s, μ) to (s1, s2, y) thorugh the functions y and s2. The inverse relations are:

    • $s = s(s_1, s_2, y) = \sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$
    • $\mu = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}} = \frac{y \, s_2 - s_1}{s(s_1, s_2, y)}$.

    Inputs

    • s1: the comoving distance where must be evaluated the integral

    • s: the comoving distance from s1 where must be evaluated the integral

    • effect::Function or effect::String : name/function you want to consider, among the ones inside GaPSE.GR_EFFECTS_GNC/GaPSE.VEC_ξs_GNC respectively.

    • cosmo::Cosmology: cosmology to be used in this computation

    Optional arguments

    • L::Int = 0: order of the Legendre polynomial to be used

    • alg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):

      • :quad -> the integration over $\mu$ will be preformed through the Julia function quadgk from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.
      • :trap -> the integration over $\mu$ will be preformed through the Julia function trapz from the Trapz.jl Julia package, that uses the simple trapezoidal rulae.
      • :lobatto -> the integration over $\mu$ will be preformed through the Julia function gausslobatto from the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!
    • use_windows::Bool = false: tells if the integrand must consider the two window function $\phi$ and $\mathcal{F}$

    • obs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?

      • :yes or true -> all the observer effects will be considered
      • :no or false -> no observer term will be taken into account
      • :noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account
    • N_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • N_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    • kwargs... : other keyword arguments that will be passed to the selected GNC TPCF effect (ξ_GNC_Doppler, ξ_GNC_Lensing, ...)

    See also: integrand_ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole WindowFIntegrated, Cosmology, y, s2, GR_EFFECTS_GNC, VEC_ξs_GNC

    source
    GaPSE.map_ξ_GNC_multipoleFunction
    map_ξ_GNC_multipole(cosmo::Cosmology,
    +    effect::Union{String,Function}, ss = nothing;
    +    s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,
    +    obs::Union{Bool,Symbol} = :noobsvel,
    +    N_lob::Int = 100, N_trap::Int = 50,
    +    atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,
    +    enhancer::Float64=1e6, N_log::Int = 1000, 
    +    pr::Bool = true,
    +    kwargs...) ::Tuple{Vector{Float64}, Vector{Float64}}

    Evaluate the multipole of order L of the chosen Galaxy Number Counts (GNC) Two-Point Correlation Function (TPCF) term for all the comoving distance values stored inside ss. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). If s1 = nothing, it is set s1 = cosmo.s_eff.

    The function evaluated is then the following $\xi_L(s_1, s)$:

    \[ \xi_L(s_1, s) = \frac{2 L + 1}{2} \int_{-1}^{+1} \mathrm{d}\mu \; + \xi (s_1, s_2, \cos{\theta}) \, \mathcal{L}_L(\mu) \, \times + \begin{cases} + \frac{1}{\mathcal{N}}\mathcal{F}(s, \mu) \quad \mathrm{use\_windows == true} \\ + 1 \quad\quad \mathrm{use\_windows == false} + \end{cases}\]

    where:

    • $s_2 = s_2(s_1, s, \mu) = \sqrt{s_1^2 + s^2 + 2 \, s_1 \, s \, \mu}$
    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2 = \frac{\mu \, s + s_1}{s_2(s_1, s, \mu)}$
    • $\xi$ is the corresponding GNC TPCF effect
    • $\mathcal{L}_L(\mu)$ is the Legendre polynomial of order $L$
    • $\mathcal{F}(s, \mu)$ is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)
    • $\mathcal{N}$ is the integrated window function norm (check the documentation of WindowFIntegrated)

    Note that these is an internal conversion of coordiate sistems from (s1, s, μ) to (s1, s2, y) thorugh the functions y and s2. The inverse relations are:

    • $s = s(s_1, s_2, y) = \sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$
    • $\mu = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}} = \frac{y \, s_2 - s_1}{s(s_1, s_2, y)}$.

    Inputs

    • cosmo::Cosmology : cosmology to be used in this computation

    • effect::Union{String,Function} : the GR effect TPCF you want to consider; you may specify the name of the effect as one of the following strings (recommended):

      auto_newton , auto_doppler , auto_lensing , auto_localgp , auto_integratedgp , newton_doppler , doppler_newton , newton_lensing , lensing_newton , newton_localgp , localgp_newton , newton_integratedgp , integratedgp_newton , lensing_doppler , doppler_lensing , doppler_localgp , localgp_doppler , doppler_integratedgp , integratedgp_doppler , lensing_localgp , localgp_lensing , lensing_integratedgp , integratedgp_lensing , localgp_integratedgp , integratedgp_localgp ,

      or directly the name of the function among the following:

      ξ_GNC_Newtonian , ξ_GNC_Doppler , ξ_GNC_Lensing , ξ_GNC_LocalGP , ξ_GNC_IntegratedGP , ξ_GNC_Newtonian_Doppler , ξ_GNC_Doppler_Newtonian , ξ_GNC_Newtonian_Lensing , ξ_GNC_Lensing_Newtonian , ξ_GNC_Newtonian_LocalGP , ξ_GNC_LocalGP_Newtonian , ξ_GNC_Newtonian_IntegratedGP , ξ_GNC_IntegratedGP_Newtonian , ξ_GNC_Lensing_Doppler , ξ_GNC_Doppler_Lensing , ξ_GNC_Doppler_LocalGP , ξ_GNC_LocalGP_Doppler , ξ_GNC_Doppler_IntegratedGP , ξ_GNC_IntegratedGP_Doppler , ξ_GNC_Lensing_LocalGP , ξ_GNC_LocalGP_Lensing , ξ_GNC_Lensing_IntegratedGP , ξ_GNC_IntegratedGP_Lensing , ξ_GNC_LocalGP_IntegratedGP , ξ_GNC_IntegratedGP_LocalGP ,

    • ss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). This is why it is returned also the vector of the "input" values.

    Optional arguments

    • s1 = nothing : comoving distance from the observer where the TPCF should be evaluated; if s1 = nothing, it is automatically set s1 = cosmo.s_eff from the given input cosmo::Cosmology.

    • L::Int = 0: order of the Legendre polynomial to be used

    • alg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):

      • :quad -> the integration over $\mu$ will be preformed through the Julia function quadgk from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.
      • :trap -> the integration over $\mu$ will be preformed through the Julia function trapz from the Trapz.jl Julia package, that uses the simple trapezoidal rulae.
      • :lobatto -> the integration over $\mu$ will be preformed through the Julia function gausslobatto from the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!
    • use_windows::Bool = false: tells if the integrand must consider the two window function $\phi$ and $\mathcal{F}$

    • obs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?

      • :yes or true -> all the observer effects will be considered
      • :no or false -> no observer term will be taken into account
      • :noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account
    • N_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • N_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    • N_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing

    • pr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)

    • kwargs... : other keyword arguments that will be passed to the selected GNC TPCF effect (ξ_GNC_Doppler, ξ_GNC_Lensing, ...)

    Returns

    A Tuple{Vector{Float64}, Vector{Float64}}, which has as first element the ss vector and as second one the corresponding ξ value evaluated.

    See also: integrand_ξ_GNC_multipole, ξ_GNC_multipole, print_map_ξ_GNC_multipole, WindowFIntegrated, Cosmology, y, s2, GR_EFFECTS_GNC, GaPSE.VEC_ξs_GNC

    source
    GaPSE.print_map_ξ_GNC_multipoleFunction
    print_map_ξ_GNC_multipole(
    +    cosmo::Cosmology, out::String,
    +    effect::Union{String,Function},
    +    ss = nothing;
    +    s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,
    +    obs::Union{Bool,Symbol} = :noobsvel,
    +    N_lob::Int = 100, N_trap::Int = 50,
    +    atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,
    +    enhancer::Float64=1e6, N_log::Int = 1000, 
    +    pr::Bool = true,
    +    kwargs...)

    Evaluate the multipole of order L of the chosen Galaxy Number Counts (GNC) Two-Point Correlation Function (TPCF) term for all the comoving distance values stored inside ss, and print the results (with all the options used) in a file named out. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). If s1 = nothing, it is set s1 = cosmo.s_eff.

    The function evaluated is then the following $\xi_L(s_1, s)$:

    \[ \xi_L(s_1, s) = \frac{2 L + 1}{2} \int_{-1}^{+1} \mathrm{d}\mu \; + \xi (s_1, s_2, \cos{\theta}) \, \mathcal{L}_L(\mu) \, \times + \begin{cases} + \frac{1}{\mathcal{N}}\mathcal{F}(s, \mu) \quad \mathrm{use\_windows == true} \\ + 1 \quad\quad \mathrm{use\_windows == false} + \end{cases}\]

    where:

    • $s_2 = s_2(s_1, s, \mu) = \sqrt{s_1^2 + s^2 + 2 \, s_1 \, s \, \mu}$
    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2 = \frac{\mu \, s + s_1}{s_2(s_1, s, \mu)}$
    • $\xi$ is the corresponding GNC TPCF effect
    • $\mathcal{L}_L(\mu)$ is the Legendre polynomial of order $L$
    • $\mathcal{F}(s, \mu)$ is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)
    • $\mathcal{N}$ is the integrated window function norm (check the documentation of WindowFIntegrated)

    Note that these is an internal conversion of coordiate sistems from (s1, s, μ) to (s1, s2, y) thorugh the functions y and s2. The inverse relations are:

    • $s = s(s_1, s_2, y) = \sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$
    • $\mu = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}} = \frac{y \, s_2 - s_1}{s(s_1, s_2, y)}$.

    Inputs

    • cosmo::Cosmology : cosmology to be used in this computation

    • effect::Union{String,Function} : the GR effect TPCF you want to consider; you may specify the name of the effect as one of the following strings (recommended):

      auto_newton , auto_doppler , auto_lensing , auto_localgp , auto_integratedgp , newton_doppler , doppler_newton , newton_lensing , lensing_newton , newton_localgp , localgp_newton , newton_integratedgp , integratedgp_newton , lensing_doppler , doppler_lensing , doppler_localgp , localgp_doppler , doppler_integratedgp , integratedgp_doppler , lensing_localgp , localgp_lensing , lensing_integratedgp , integratedgp_lensing , localgp_integratedgp , integratedgp_localgp ,

      or directly the name of the function among the following:

      ξ_GNC_Newtonian , ξ_GNC_Doppler , ξ_GNC_Lensing , ξ_GNC_LocalGP , ξ_GNC_IntegratedGP , ξ_GNC_Newtonian_Doppler , ξ_GNC_Doppler_Newtonian , ξ_GNC_Newtonian_Lensing , ξ_GNC_Lensing_Newtonian , ξ_GNC_Newtonian_LocalGP , ξ_GNC_LocalGP_Newtonian , ξ_GNC_Newtonian_IntegratedGP , ξ_GNC_IntegratedGP_Newtonian , ξ_GNC_Lensing_Doppler , ξ_GNC_Doppler_Lensing , ξ_GNC_Doppler_LocalGP , ξ_GNC_LocalGP_Doppler , ξ_GNC_Doppler_IntegratedGP , ξ_GNC_IntegratedGP_Doppler , ξ_GNC_Lensing_LocalGP , ξ_GNC_LocalGP_Lensing , ξ_GNC_Lensing_IntegratedGP , ξ_GNC_IntegratedGP_Lensing , ξ_GNC_LocalGP_IntegratedGP , ξ_GNC_IntegratedGP_LocalGP ,

    • out::String : name of the file where the results must be stored.

    • ss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log).

    Optional arguments

    This function recall internally map_ξ_GNC_multipole, so the kwargs are the same; we report them for comfortness:

    • s1 = nothing : comoving distance from the observer where the TPCF should be evaluated; if s1 = nothing, it is automatically set s1 = cosmo.s_eff from the given input cosmo::Cosmology.

    • L::Int = 0: order of the Legendre polynomial to be used

    • alg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):

      • :quad -> the integration over $\mu$ will be preformed through the Julia function quadgk from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.
      • :trap -> the integration over $\mu$ will be preformed through the Julia function trapz from the Trapz.jl Julia package, that uses the simple trapezoidal rulae.
      • :lobatto -> the integration over $\mu$ will be preformed through the Julia function gausslobatto from the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!
    • use_windows::Bool = false: tells if the integrand must consider the two window function $\phi$ and $\mathcal{F}$

    • obs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?

      • :yes or true -> all the observer effects will be considered
      • :no or false -> no observer term will be taken into account
      • :noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account
    • N_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • N_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    • N_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing

    • pr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)

    • kwargs... : other keyword arguments that will be passed to the selected GNC TPCF effect (ξ_GNC_Doppler, ξ_GNC_Lensing, ...)

    See also: integrand_ξ_GNC_multipole, ξ_GNC_multipole, print_map_ξ_GNC_multipole, WindowFIntegrated, Cosmology, y, s2, GR_EFFECTS_GNC, GaPSE.VEC_ξs_GNC

    source

    Two-Point Cross-Correlation Function Sum multipoles

    GaPSE.sum_ξ_GNC_multipoleFunction
    sum_ξ_GNC_multipole(s1, s, cosmo::Cosmology;
    +    s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,
    +    obs::Union{Bool,Symbol} = :noobsvel,
    +    N_lob::Int = 100, N_trap::Int = 50,
    +    atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,
    +    enhancer::Float64=1e6, N_log::Int = 1000, 
    +    pr::Bool = true,
    +    kwargs...) ::Tuple{Float64, Vector{Float64}}

    Evaluate the multipole of order L of all the Galaxy Number Counts (GNC) Two-Point Correlation Function (TPCF) multipoles and their sum in the comoving distance s1 and a comoving distance s from it for the input cosmo::Cosmology. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    This function makes a for-loop on the GaPSE.GR_EFFECTS_GNC strings, calling ξ_GNC_multipole for each of them. To each string corresponds pretty intuitively one of the 25 GNC effects. They are currently, in order:

    auto_newton , auto_doppler , auto_lensing , auto_localgp , auto_integratedgp , newton_doppler , doppler_newton , newton_lensing , lensing_newton , newton_localgp , localgp_newton , newton_integratedgp , integratedgp_newton , lensing_doppler , doppler_lensing , doppler_localgp , localgp_doppler , doppler_integratedgp , integratedgp_doppler , lensing_localgp , localgp_lensing , lensing_integratedgp , integratedgp_lensing , localgp_integratedgp , integratedgp_localgp ,

    Inputs

    • s1: the comoving distance where must be evaluated the integral

    • s: the comoving distance from s1 where must be evaluated the integral

    • cosmo::Cosmology: cosmology to be used in this computation

    Optional arguments

    This function recall internally ξ_GNC_multipole, so the kwargs are the same; we report them for comfortness:

    • L::Int = 0: order of the Legendre polynomial to be used

    • alg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):

      • :quad -> the integration over $\mu$ will be preformed through the Julia function quadgk from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.
      • :trap -> the integration over $\mu$ will be preformed through the Julia function trapz from the Trapz.jl Julia package, that uses the simple trapezoidal rulae.
      • :lobatto -> the integration over $\mu$ will be preformed through the Julia function gausslobatto from the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!
    • use_windows::Bool = false: tells if the integrand must consider the two window function $\phi$ and $\mathcal{F}$

    • obs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?

      • :yes or true -> all the observer effects will be considered
      • :no or false -> no observer term will be taken into account
      • :noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account
    • N_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • N_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    • kwargs... : other keyword arguments that will be passed to ALL the GNC TPCF effect (ξ_GNC_Doppler, ξ_GNC_Lensing, ...); if one of them has that keyword argument, it will use the given value, otherwise it will be unaffected.

    Returns

    A tuple containing:

    • the sum of all the ξ multipoles as first element
    • a Vector{Float64} with all the values of each ξ; they are ordered following GR_EFFECTS_GNC

    See also: integrand_ξ_GNC_multipole, ξ_GNC_multipole, map_sum_ξ_GNC_multipole, print_map_sum_ξ_GNC_multipole, Cosmology, GR_EFFECTS_GNC

    source
    GaPSE.map_sum_ξ_GNC_multipoleFunction
    map_sum_ξ_GNC_multipole(
    +    effect::Union{String,Function}, ss = nothing;
    +    s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,
    +    obs::Union{Bool,Symbol} = :noobsvel,
    +    N_lob::Int = 100, N_trap::Int = 50,
    +    atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,
    +    enhancer::Float64=1e6, N_log::Int = 1000, 
    +    pr::Bool = true,
    +    kwargs...) ::Tuple{Vector{Float64}, Vector{Float64}, Vector{Vector{Float64}}}

    Evaluate the multipole of order L of all the Galaxy Number Counts (GNC) Two-Point Correlation Function (TPCF) multipoles and their sum in the comoving distance s1, for all the comoving distances stored inside ss (representing the comoving distance from s1) for the input cosmo::Cosmology. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). If s1 = nothing, it is set s1 = cosmo.s_eff. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    This function makes a for-loop on the GaPSE.GR_EFFECTS_GNC strings, calling map_ξ_GNC_multipole for each of them. To each string corresponds pretty intuitively one of the 25 GNC effects. They are currently, in order:

    auto_newton , auto_doppler , auto_lensing , auto_localgp , auto_integratedgp , newton_doppler , doppler_newton , newton_lensing , lensing_newton , newton_localgp , localgp_newton , newton_integratedgp , integratedgp_newton , lensing_doppler , doppler_lensing , doppler_localgp , localgp_doppler , doppler_integratedgp , integratedgp_doppler , lensing_localgp , localgp_lensing , lensing_integratedgp , integratedgp_lensing , localgp_integratedgp , integratedgp_localgp ,

    Inputs

    • cosmo::Cosmology : cosmology to be used in this computation

    • ss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). This is why it is returned also the vector of the "input" values.

    Optional arguments

    This function recall internally map_ξ_GNC_multipole, so the kwargs are the same; we report them for comfortness:

    • s1 = nothing : comoving distance from the observer where the TPCF should be evaluated; if s1 = nothing, it is automatically set s1 = cosmo.s_eff from the given input cosmo::Cosmology.

    • L::Int = 0: order of the Legendre polynomial to be used

    • alg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):

      • :quad -> the integration over $\mu$ will be preformed through the Julia function quadgk from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.
      • :trap -> the integration over $\mu$ will be preformed through the Julia function trapz from the Trapz.jl Julia package, that uses the simple trapezoidal rulae.
      • :lobatto -> the integration over $\mu$ will be preformed through the Julia function gausslobatto from the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!
    • use_windows::Bool = false: tells if the integrand must consider the two window function $\phi$ and $\mathcal{F}$

    • obs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?

      • :yes or true -> all the observer effects will be considered
      • :no or false -> no observer term will be taken into account
      • :noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account
    • N_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • N_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    • N_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing

    • pr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)

    • kwargs... : other keyword arguments that will be passed to ALL the GNC TPCF effect (ξ_GNC_Doppler, ξ_GNC_Lensing, ...); if one of them has that keyword argument, it will use the given value, otherwise it will be unaffected.

    Returns

    A tuple containing:

    • as first element, the vector ss itself;
    • as second one, the Vector{Float64} of the sum of all the ξ multipoles;
    • as third one, a Vector{Vector{Float64}} with all the values of each ξ; they are ordered following GR_EFFECTS_GNC

    See also: map_ξ_GNC_multipole, sum_ξ_GNC_multipole, print_map_sum_ξ_GNC_multipole, Cosmology, GR_EFFECTS_GNC

    source
    GaPSE.print_map_sum_ξ_GNC_multipoleFunction
    print_map_sum_ξ_GNC_multipole(
    +    cosmo::Cosmology, out::String, ss = nothing;
    +    s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,
    +    obs::Union{Bool,Symbol} = :noobsvel,
    +    N_lob::Int = 100, N_trap::Int = 50,
    +    atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,
    +    enhancer::Float64=1e6, N_log::Int = 1000, 
    +    pr::Bool = true,
    +    single::Bool = true,
    +    kwargs...)

    Evaluate the multipole of order L of all the Galaxy Number Counts (GNC) Two-Point Correlation Function (TPCF) multipoles and their sum in the comoving distance s1, for all the comoving distances stored inside ss (representing the comoving distance from s1) for the input cosmo::Cosmology; finally, it saves the results inside the file out. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). If s1 = nothing, it is set s1 = cosmo.s_eff. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    This function makes a for-loop on the GaPSE.GR_EFFECTS_GNC strings, calling map_ξ_GNC_multipole for each of them. To each string corresponds pretty intuitively one of the 25 GNC effects. They are currently, in order:

    auto_newton , auto_doppler , auto_lensing , auto_localgp , auto_integratedgp , newton_doppler , doppler_newton , newton_lensing , lensing_newton , newton_localgp , localgp_newton , newton_integratedgp , integratedgp_newton , lensing_doppler , doppler_lensing , doppler_localgp , localgp_doppler , doppler_integratedgp , integratedgp_doppler , lensing_localgp , localgp_lensing , lensing_integratedgp , integratedgp_lensing , localgp_integratedgp , integratedgp_localgp ,

    Inputs

    • cosmo::Cosmology : cosmology to be used in this computation

    • out::String : name of the file where the results must be stored.

    • ss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log).

    Optional arguments

    This function recall internally map_ξ_GNC_multipole, so the kwargs are the same; we report them for comfortness:

    • s1 = nothing : comoving distance from the observer where the TPCF should be evaluated; if s1 = nothing, it is automatically set s1 = cosmo.s_eff from the given input cosmo::Cosmology.

    • L::Int = 0: order of the Legendre polynomial to be used

    • alg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):

      • :quad -> the integration over $\mu$ will be preformed through the Julia function quadgk from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.
      • :trap -> the integration over $\mu$ will be preformed through the Julia function trapz from the Trapz.jl Julia package, that uses the simple trapezoidal rulae.
      • :lobatto -> the integration over $\mu$ will be preformed through the Julia function gausslobatto from the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!
    • use_windows::Bool = false: tells if the integrand must consider the two window function $\phi$ and $\mathcal{F}$

    • obs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?

      • :yes or true -> all the observer effects will be considered
      • :no or false -> no observer term will be taken into account
      • :noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account
    • N_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • N_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    • N_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing

    • pr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)

    • single::Bool = true : if true, all the CFs are printed inside the file of the sum, in a table with 18 columns (first one for ss, second for their sum an the next 16 for each effect). Otherwise, a new directory "allstandalonesCFs" is created (in the same path given in out) and they are separately saved in files there placed.

    • kwargs... : other keyword arguments that will be passed to ALL the GNC TPCF effect (ξ_GNC_Doppler, ξ_GNC_Lensing, ...); if one of them has that keyword argument, it will use the given value, otherwise it will be unaffected.

    See also: map_ξ_GNC_multipole, sum_ξ_GNC_multipole, map_sum_ξ_GNC_multipole, Cosmology, GR_EFFECTS_GNC

    source
    diff --git a/dev/GNCxLD_Correlations/index.html b/dev/GNCxLD_Correlations/index.html deleted file mode 100644 index 8337b62b..00000000 --- a/dev/GNCxLD_Correlations/index.html +++ /dev/null @@ -1,260 +0,0 @@ - -GNCxLD · GaPSE.jl

    GNCxLD TPCFs

    Two-Point Cross-Correlation Functions

    GaPSE.ξ_GNCxLD_Newtonian_DopplerFunction
     ξ_GNCxLD_Newtonian_Doppler(P1::Point, P2::Point, y, cosmo::Cosmology) :: Float64

    Return the cross-correlation function between the Galaxy Number Counts standard Newtonian and the Luminosity Distance perturbation Doppler effects, defined as follows:

    \[\\xi^{v_{\\parallel}\\phi} (s_1, s_2, \\cos{\\theta}) = - \\frac{3}{2 a(s_2)} \\mathcal{H}(s_1) f(s_1) D(s_1) - \\mathcal{R}(s_1) \\mathcal{H}_0^2 \\Omega_{M0} D(s_2) - (1 + \\mathcal{R}(s_2)) (s_2\\cos{\\theta} - s_1) s^2 I^3_1(s)\]

    where $\\mathcal{H} = a H$, $y = \\cos{\\theta} = \\hat{\\mathbf{s}}_1 \\cdot \\hat{\\mathbf{s}}_2$ and :

    \[I^n_l(s) = \\int_0^\\infty \\frac{\\mathrm{d}q}{2\\pi^2} q^2 \\, P(q) \\, \\frac{j_l(qs)}{(q s)^n}\]

    Inputs

    • P1::Point and P2::Point: Point where the CF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on)

    • y: the cosine of the angle between the two points P1 and P2

    • cosmo::Cosmology: cosmology to be used in this computation

    See also: Point, Cosmology

    source
    GaPSE.ξ_GNCxLD_Newtonian_LensingFunction
     ξ_GNCxLD_Newtonian_Lensing(s1, s2, y, cosmo::Cosmology;
    -      en::Float64 = 1e6, N_χs::Int = 100):: Float64

    Return the Doppler-LocalGP cross-correlation function $\\xi^{v_{\\parallel}\\int\\phi} (s_1, s_2, \\cos{\\theta})$ concerning the perturbed luminosity distance, defined as follows:

    \[\\xi^{v_{\\parallel}\\int\\phi} (s_1, s_2, \\cos{\\theta}) = - 3 \\mathcal{H}(s_1) f(s_1) D(s_1) \\mathcal{H_0}^2 \\Omega_{M0} \\mathcal{R}(s_1) - \\int_0^{s_2} \\mathrm{d}\\chi_2 \\, J_{31} \\, I^3_1(\\chi)\]

    where $\\mathcal{H} = a H$, $\\chi = \\sqrt{s_1^2 + \\chi_2^2 - 2 s_1 \\chi_2 \\cos{\\theta}}$, $y = \\cos{\\theta} = \\hat{\\mathbf{s}}_1 \\cdot \\hat{\\mathbf{s}}_2$) and:

    \[J_{31} = - \\frac{D(\\chi_2) (s_1 - \\chi_2 \\cos{\\theta})}{a(\\chi_2)} \\chi^2 - \\left( - - \\frac{1}{s_2} + \\mathcal{R}(s_2) \\mathcal{H}(\\chi_2) (f(\\chi_2) - 1) - \\right)\]

    The computation is made applying trapz (see the Trapz Julia package) to the integrand function integrand_ξ_GNCxLD_Newtonian_Lensing.

    Inputs

    • s1 and s2: comovign distances where the function must be evaluated

    • y: the cosine of the angle between the two points P1 and P2

    • cosmo::Cosmology: cosmology to be used in this computation

    Optional arguments

    • en::Float64 = 1e6: just a float number used in order to deal better with small numbers;

    • N_χs::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ1) and (0, s1) (for χ2); it has been checked that with N_χs ≥ 50 the result is stable.

    See also: integrand_ξ_GNCxLD_Newtonian_Lensing, int_on_mu_Newtonian_Lensing integral_on_mu, ξ_GNC_multipole

    source
    GaPSE.ξ_GNCxLD_Newtonian_LocalGPFunction
     ξ_GNCxLD_Newtonian_LocalGP(P1::Point, P2::Point, y, cosmo::Cosmology) :: Float64

    Return the LocalGP-LocalGP cross-correlation function concerning the perturbed luminosity distance, defined as follows:

    \[\\xi^{v_{\\parallel}\\phi} (s_1, s_2, \\cos{\\theta}) = - \\frac{3}{2 a(s_2)} \\mathcal{H}(s_1) f(s_1) D(s_1) - \\mathcal{R}(s_1) \\mathcal{H}_0^2 \\Omega_{M0} D(s_2) - (1 + \\mathcal{R}(s_2)) (s_2\\cos{\\theta} - s_1) s^2 I^3_1(s)\]

    where $\\mathcal{H} = a H$, $y = \\cos{\\theta} = \\hat{\\mathbf{s}}_1 \\cdot \\hat{\\mathbf{s}}_2$ and :

    \[I^n_l(s) = \\int_0^\\infty \\frac{\\mathrm{d}q}{2\\pi^2} q^2 \\, P(q) \\, \\frac{j_l(qs)}{(q s)^n}\]

    Inputs

    • P1::Point and P2::Point: Point where the CF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on)

    • y: the cosine of the angle between the two points P1 and P2

    • cosmo::Cosmology: cosmology to be used in this computation

    See also: Point, Cosmology

    source
    GaPSE.ξ_GNCxLD_Newtonian_IntegratedGPFunction
     ξ_GNCxLD_Newtonian_IntegratedGP(s1, s2, y, cosmo::Cosmology;
    -      en::Float64 = 1e6, N_χs::Int = 100):: Float64

    Return the Doppler-LocalGP cross-correlation function $\\xi^{v_{\\parallel}\\int\\phi} (s_1, s_2, \\cos{\\theta})$ concerning the perturbed luminosity distance, defined as follows:

    \[\\xi^{v_{\\parallel}\\int\\phi} (s_1, s_2, \\cos{\\theta}) = - 3 \\mathcal{H}(s_1) f(s_1) D(s_1) \\mathcal{H_0}^2 \\Omega_{M0} \\mathcal{R}(s_1) - \\int_0^{s_2} \\mathrm{d}\\chi_2 \\, J_{31} \\, I^3_1(\\chi)\]

    where $\\mathcal{H} = a H$, $\\chi = \\sqrt{s_1^2 + \\chi_2^2 - 2 s_1 \\chi_2 \\cos{\\theta}}$, $y = \\cos{\\theta} = \\hat{\\mathbf{s}}_1 \\cdot \\hat{\\mathbf{s}}_2$) and:

    \[J_{31} = - \\frac{D(\\chi_2) (s_1 - \\chi_2 \\cos{\\theta})}{a(\\chi_2)} \\chi^2 - \\left( - - \\frac{1}{s_2} + \\mathcal{R}(s_2) \\mathcal{H}(\\chi_2) (f(\\chi_2) - 1) - \\right)\]

    The computation is made applying trapz (see the Trapz Julia package) to the integrand function integrand_ξ_GNCxLD_Newtonian_IntegratedGP.

    Inputs

    • s1 and s2: comovign distances where the function must be evaluated

    • y: the cosine of the angle between the two points P1 and P2

    • cosmo::Cosmology: cosmology to be used in this computation

    Optional arguments

    • en::Float64 = 1e6: just a float number used in order to deal better with small numbers;

    • N_χs::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ1) and (0, s1) (for χ2); it has been checked that with N_χs ≥ 50 the result is stable.

    See also: integrand_ξ_GNCxLD_Newtonian_IntegratedGP, int_on_mu_Newtonian_IntegratedGP integral_on_mu, ξ_GNC_multipole

    source
    GaPSE.ξ_GNCxLD_Doppler_DopplerFunction
     ξ_GNCxLD_Doppler_Doppler(P1::Point, P2::Point, y, cosmo::Cosmology) :: Float64
    -
    - ξ_GNCxLD_Doppler_Doppler(s1, s2, y, cosmo::Cosmology) = 
    -      ξ_GNCxLD_Doppler_Doppler(Point(s1, cosmo), Point(s2, cosmo), y, cosmo)

    Return the Doppler auto-correlation function concerning the perturbed luminosity distance, defined as follows:

    \[\xi^{v_{\parallel}v_{\parallel}} (s_1, s_2, \cos{\theta}) -= D_1 D_2 f_1 f_2 \mathcal{H}_1 \mathcal{H}_2 \mathcal{R}_1 \mathcal{R}_2 -(J_{00}\, I^0_0(s) + J_{02}\,I^0_2(s) + J_{04}\,I^0_4(s) + J_{20}\,I^2_0(s))\]

    where $D_1 = D(s_1)$, $D_2 = D(s_2)$ and so on, $\mathcal{H} = a H$, $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$ and the J coefficients are given by:

    \[\begin{align*} - J_{00} (s_1, s_2, y) & = \frac{1}{45} (y^2 s_1 s_2 - 2y(s_1^2 + s_2^2) + 3s_1 s_2) \\ - J_{02} (s_1, s_2, y) & = \frac{2}{63} (y^2 s_1 s_2 - 2y(s_1^2 + s_2^2) + 3s_1 s_2) \\ - J_{04} (s_1, s_2, y) & = \frac{1}{105} (y^2 s_1 s_2 - 2y(s_1^2 + s_2^2) + 3s_1 s_2) \\ - J_{20} (s_1, s_2, y) & = \frac{1}{3} y s^2 -\end{align*}\]

    Inputs

    • P1::Point and P2::Point: Point where the CF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on)

    • y: the cosine of the angle between the two points P1 and P2

    • cosmo::Cosmology: cosmology to be used in this computation

    See also: Point, Cosmology

    source
    GaPSE.ξ_GNCxLD_Doppler_LensingFunction
     ξ_GNCxLD_Doppler_Lensing(s1, s2, y, cosmo::Cosmology;
    -      en::Float64 = 1e6, N_χs::Int = 100):: Float64

    Return the Lensing-Doppler cross-correlation function $\xi^{\kappa v_{\parallel}} (s_1, s_2, \cos{\theta})$ concerning the perturbed luminosity distance, defined as follows:

    \[\xi^{\kappa v_{\parallel}} (s_1, s_2, \cos{\theta}) = - \mathcal{H}_0^2 \Omega_{M0} D(s_2) f(s_2) \mathcal{H}(s_2) \mathcal{R}(s_2) - \int_0^{s_1} \mathrm{d} \chi_1 - \frac{ D(\chi_1) (\chi_1 - s_1) }{a(\chi_1) s_1} - \left( - J_{00} I^0_0(\Delta\chi_1) + J_{02} I^0_2(\Delta\chi_1) - + J_{04} I^0_4(\Delta\chi_1) + J_{20} I^2_0(\Delta\chi_1) - \right)\]

    where $\mathcal{H} = a H$, $\Delta\chi_1= \sqrt{\chi_1^2 + s_2^2 - 2 \chi_1 s_2 \cos{\theta}}$, $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$) and the $J$ coefficients are given by:

    \[\begin{align*} - J_{00} & = \frac{1}{15}(\chi_1^2 y + \chi_1(4 y^2 - 3) s_2 - 2 y s_2^2) \\ - J_{02} & = \frac{1}{42 \Delta\chi_1^2} - (4 \chi_1^4 y + 4 \chi_1^3 (2 y^2 - 3) s_2 + \chi_1^2 y (11 - 23 y^2) s_2^2 + - \chi_1 (23 y^2 - 3) s_2^3 - 8 y s_2^4) \\ - J_{04} & = \frac{1}{70 \Delta\chi_1^2} - (2 \chi_1^4 y + 2 \chi_1^3 (2y^2 - 3) s_2 - \chi_1^2 y (y^2 + 5) s_2^2 + - \chi_1 (y^2 + 9) s_2^3 - 4 y s_2^4) \\ - J_{20} & = y \Delta\chi_1^2 -\end{align*}\]

    The computation is made applying trapz (see the Trapz Julia package) to the integrand function integrand_ξ_LD_GNC-LD_Doppler_Lensing.

    Inputs

    • s1 and s2: comovign distances where the function must be evaluated

    • y: the cosine of the angle between the two points P1 and P2

    • cosmo::Cosmology: cosmology to be used in this computation

    Optional arguments

    • en::Float64 = 1e6: just a float number used in order to deal better with small numbers;

    • Δχ_min::Float64 = 1e-6 : when $\Delta\chi = \sqrt{\chi_1^2 + \chi_2^2 - 2 \, \chi_1 \chi_2 y} \to 0^{+}$, some $I_\ell^n$ term diverges, but the overall parenthesis has a known limit:

      \[ \lim_{\chi\to0^{+}} (J_{00} \, I^0_0(\chi) + J_{02} \, I^0_2(\chi) + - J_{31} \, I^3_1(\chi) + J_{22} \, I^2_2(\chi)) = - \frac{4}{15} \, (5 \, \sigma_2 + \frac{2}{3} \, σ_0 \,s_1^2 \, \chi_2^2)\]

      So, when it happens that $\chi < \Delta\chi_\mathrm{min}$, the function considers this limit as the result of the parenthesis instead of calculating it in the normal way; it prevents computational divergences.

    • N_χs::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ2) and (0, s1) (for χ2); it has been checked that with N_χs ≥ 50 the result is stable.

    See also: integrand_ξ_GNCxLD_Doppler_Lensing, int_on_mu_Lensing_Doppler integral_on_mu, ξ_LD_multipole

    source
    GaPSE.ξ_GNCxLD_Doppler_LocalGPFunction
     ξ_GNCxLD_Doppler_LocalGP(P1::Point, P2::Point, y, cosmo::Cosmology) :: Float64

    Return the Doppler-LocalGP cross-correlation function concerning the perturbed luminosity distance, defined as follows:

    \[\\xi^{v_{\\parallel}\\phi} (s_1, s_2, \\cos{\\theta}) = - \\frac{3}{2 a(s_2)} \\mathcal{H}(s_1) f(s_1) D(s_1) - \\mathcal{R}(s_1) \\mathcal{H}_0^2 \\Omega_{M0} D(s_2) - (1 + \\mathcal{R}(s_2)) (s_2\\cos{\\theta} - s_1) s^2 I^3_1(s)\]

    where $\\mathcal{H} = a H$, $y = \\cos{\\theta} = \\hat{\\mathbf{s}}_1 \\cdot \\hat{\\mathbf{s}}_2$ and :

    \[I^n_l(s) = \\int_0^\\infty \\frac{\\mathrm{d}q}{2\\pi^2} q^2 \\, P(q) \\, \\frac{j_l(qs)}{(q s)^n}\]

    Inputs

    • P1::Point and P2::Point: Point where the CF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on)

    • y: the cosine of the angle between the two points P1 and P2

    • cosmo::Cosmology: cosmology to be used in this computation

    See also: Point, Cosmology

    source
    GaPSE.ξ_GNCxLD_Doppler_IntegratedGPFunction
     ξ_GNCxLD_Doppler_IntegratedGP(s1, s2, y, cosmo::Cosmology;
    -      en::Float64 = 1e6, N_χs::Int = 100):: Float64

    Return the Doppler-LocalGP cross-correlation function $\\xi^{v_{\\parallel}\\int\\phi} (s_1, s_2, \\cos{\\theta})$ concerning the perturbed luminosity distance, defined as follows:

    \[\\xi^{v_{\\parallel}\\int\\phi} (s_1, s_2, \\cos{\\theta}) = - 3 \\mathcal{H}(s_1) f(s_1) D(s_1) \\mathcal{H_0}^2 \\Omega_{M0} \\mathcal{R}(s_1) - \\int_0^{s_2} \\mathrm{d}\\chi_2 \\, J_{31} \\, I^3_1(\\chi)\]

    where $\\mathcal{H} = a H$, $\\chi = \\sqrt{s_1^2 + \\chi_2^2 - 2 s_1 \\chi_2 \\cos{\\theta}}$, $y = \\cos{\\theta} = \\hat{\\mathbf{s}}_1 \\cdot \\hat{\\mathbf{s}}_2$) and:

    \[J_{31} = - \\frac{D(\\chi_2) (s_1 - \\chi_2 \\cos{\\theta})}{a(\\chi_2)} \\chi^2 - \\left( - - \\frac{1}{s_2} + \\mathcal{R}(s_2) \\mathcal{H}(\\chi_2) (f(\\chi_2) - 1) - \\right)\]

    The computation is made applying trapz (see the Trapz Julia package) to the integrand function integrand_ξ_GNCxLD_Doppler_IntegratedGP.

    Inputs

    • s1 and s2: comovign distances where the function must be evaluated

    • y: the cosine of the angle between the two points P1 and P2

    • cosmo::Cosmology: cosmology to be used in this computation

    Optional arguments

    • en::Float64 = 1e6: just a float number used in order to deal better with small numbers;

    • N_χs::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ1) and (0, s1) (for χ2); it has been checked that with N_χs ≥ 50 the result is stable.

    See also: integrand_ξ_GNCxLD_Doppler_IntegratedGP, int_on_mu_Doppler_IntegratedGP integral_on_mu, ξ_LD_multipole

    source
    GaPSE.ξ_GNCxLD_Lensing_DopplerFunction
     ξ_GNCxLD_Lensing_Doppler(s1, s2, y, cosmo::Cosmology;
    -      en::Float64 = 1e6, N_χs::Int = 100):: Float64

    Return the Lensing-Doppler cross-correlation function $\xi^{\kappa v_{\parallel}} (s_1, s_2, \cos{\theta})$ concerning the perturbed luminosity distance, defined as follows:

    \[\xi^{\kappa v_{\parallel}} (s_1, s_2, \cos{\theta}) = - \mathcal{H}_0^2 \Omega_{M0} D(s_2) f(s_2) \mathcal{H}(s_2) \mathcal{R}(s_2) - \int_0^{s_1} \mathrm{d} \chi_1 - \frac{ D(\chi_1) (\chi_1 - s_1) }{a(\chi_1) s_1} - \left( - J_{00} I^0_0(\Delta\chi_1) + J_{02} I^0_2(\Delta\chi_1) - + J_{04} I^0_4(\Delta\chi_1) + J_{20} I^2_0(\Delta\chi_1) - \right)\]

    where $\mathcal{H} = a H$, $\Delta\chi_1= \sqrt{\chi_1^2 + s_2^2 - 2 \chi_1 s_2 \cos{\theta}}$, $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$) and the $J$ coefficients are given by:

    \[\begin{align*} - J_{00} & = \frac{1}{15}(\chi_1^2 y + \chi_1(4 y^2 - 3) s_2 - 2 y s_2^2) \\ - J_{02} & = \frac{1}{42 \Delta\chi_1^2} - (4 \chi_1^4 y + 4 \chi_1^3 (2 y^2 - 3) s_2 + \chi_1^2 y (11 - 23 y^2) s_2^2 + - \chi_1 (23 y^2 - 3) s_2^3 - 8 y s_2^4) \\ - J_{04} & = \frac{1}{70 \Delta\chi_1^2} - (2 \chi_1^4 y + 2 \chi_1^3 (2y^2 - 3) s_2 - \chi_1^2 y (y^2 + 5) s_2^2 + - \chi_1 (y^2 + 9) s_2^3 - 4 y s_2^4) \\ - J_{20} & = y \Delta\chi_1^2 -\end{align*}\]

    The computation is made applying trapz (see the Trapz Julia package) to the integrand function integrand_ξ_LD_LD_Lensing_Doppler.

    Inputs

    • s1 and s2: comovign distances where the function must be evaluated

    • y: the cosine of the angle between the two points P1 and P2

    • cosmo::Cosmology: cosmology to be used in this computation

    Optional arguments

    • en::Float64 = 1e6: just a float number used in order to deal better with small numbers;

    • Δχ_min::Float64 = 1e-6 : when $\Delta\chi = \sqrt{\chi_1^2 + \chi_2^2 - 2 \, \chi_1 \chi_2 y} \to 0^{+}$, some $I_\ell^n$ term diverges, but the overall parenthesis has a known limit:

      \[ \lim_{\chi\to0^{+}} (J_{00} \, I^0_0(\chi) + J_{02} \, I^0_2(\chi) + - J_{31} \, I^3_1(\chi) + J_{22} \, I^2_2(\chi)) = - \frac{4}{15} \, (5 \, \sigma_2 + \frac{2}{3} \, σ_0 \,s_1^2 \, \chi_2^2)\]

      So, when it happens that $\chi < \Delta\chi_\mathrm{min}$, the function considers this limit as the result of the parenthesis instead of calculating it in the normal way; it prevents computational divergences.

    • N_χs::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ1) and (0, s1) (for χ2); it has been checked that with N_χs ≥ 50 the result is stable.

    See also: integrand_ξ_GNCxLD_Lensing_Doppler, int_on_mu_Lensing_Doppler integral_on_mu, ξ_LD_multipole

    source
    GaPSE.ξ_GNCxLD_Lensing_LensingFunction
     ξ_GNCxLD_Lensing_Lensing(P1::Point, P2::Point, y, cosmo::Cosmology;
    -      en::Float64 = 1e6,
    -      N_χs::Int = 100) :: Float64
    -
    - ξ_GNCxLD_Lensing_Lensing(s1, s2, y, cosmo::Cosmology; kwargs...) = 
    -      ξ_GNCxLD_Lensing_Lensing(Point(s1, cosmo), Point(s2, cosmo), y, cosmo; kwargs...)

    Return the Lensing auto-correlation function $\xi^{\kappa\kappa} (s_1, s_2, \cos{\theta})$ concerning the perturbed luminosity distance, defined as follows:

    \[\xi^{\kappa\kappa} (s_1, s_2, \cos{\theta}) = -\int_0^{s_1} \mathrm{d} \chi_1 \int_0^{s_2} \mathrm{d} \chi_2 -\frac{1}{2} -\frac{ - \mathcal{H}_0^4 \Omega_{ \mathrm{M0}}^2 D_1 D_2 (\chi_1 - s_1)(\chi_2 - s_2) -}{ - s_1 s_2 a(\chi_1) a(\chi_2) } -(J_{00} \, I^0_0(\chi) + J_{02} \, I^0_2(\chi) + - J_{31} \, I^3_1(\chi) + J_{22} \, I^2_2(\chi))\]

    where $D_1 = D(\chi_1)$, $D_2 = D(\chi_2)$ and so on, $\mathcal{H} = a H$, $\chi = \sqrt{\chi_1^2 + \chi_2^2 - 2\chi_1\chi_2\cos{\theta}}$, $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$) and the $J$ coefficients are given by

    \[\begin{align*} - J_{00} & = - \frac{3 \chi_1^2 \chi_2^2}{4 \chi^4} (y^2 - 1) - (8 y (\chi_1^2 + \chi_2^2) - 9 \chi_1 \chi_2 y^2 - 7 \chi_1 \chi_2) \\ - J_{02} & = - \frac{3 \chi_1^2 \chi_2^2}{2 \chi^4} (y^2 - 1) - (4 y (\chi_1^2 + \chi_2^2) - 3 \chi_1 \chi_2 y^2 - 5 \chi_1 \chi_2) \\ - J_{31} & = 9 y \chi^2 \\ - J_{22} & = \frac{9 \chi_1 \chi_2}{4 \chi^4} - [ 2 (\chi_1^4 + \chi_2^4) (7 y^2 - 3) - - 16 y \chi_1 \chi_2 (\chi_1^2 + \chi_2^2) (y^2+1) - + \chi_1^2 \chi_2^2 (11 y^4 + 14 y^2 + 23)] -\end{align*}\]

    The computation is made applying trapz (see the Trapz Julia package) to the integrand function integrand_ξ_GNCxLD_Lensing_Lensing.

    Inputs

    • s1 and s2: comovign distances where the function must be evaluated

    • y: the cosine of the angle between the two points P1 and P2

    • cosmo::Cosmology: cosmology to be used in this computation

    Optional arguments

    • en::Float64 = 1e6: just a float number used in order to deal better with small numbers;

    • Δχ_min::Float64 = 1e-6 : when $\Delta\chi = \sqrt{\chi_1^2 + \chi_2^2 - 2 \, \chi_1 \chi_2 y} \to 0^{+}$, some $I_\ell^n$ term diverges, but the overall parenthesis has a known limit:

      \[ \lim_{\chi\to0^{+}} (J_{00} \, I^0_0(\chi) + J_{02} \, I^0_2(\chi) + - J_{31} \, I^3_1(\chi) + J_{22} \, I^2_2(\chi)) = - \frac{4}{15} \, (5 \, \sigma_2 + \frac{2}{3} \, σ_0 \,s_1^2 \, \chi_2^2)\]

      So, when it happens that $\chi < \Delta\chi_\mathrm{min}$, the function considers this limit as the result of the parenthesis instead of calculating it in the normal way; it prevents computational divergences.

    • N_χs::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ1) and (0, s1) (for χ2); it has been checked that with N_χs ≥ 50 the result is stable.

    See also: integrand_ξ_GNCxLD_Lensing_Lensing, integrand_on_mu_Lensing integral_on_mu, ξ_GNC_multipole

    source
    GaPSE.ξ_GNCxLD_Lensing_LocalGPFunction
     ξ_GNCxLD_Lensing_LocalGP(s1, s2, y, cosmo::Cosmology;
    -      en::Float64 = 1e6, N_χs::Int = 100):: Float64

    Return the Lensing-LocalGP cross-correlation function $\xi^{\kappa \phi} (s_1, s_2, \cos{\theta})$ concerning the perturbed luminosity distance, defined as follows:

    \[\xi^{\kappa \phi} (s_1, s_2, \cos{\theta}) = - \frac{ - 9 \mathcal{H}_0^4 \Omega_{M0}^2 D(s_2) (1 + \mathcal{R}(s_2)) s_2 - }{4 a(s_2) s_1} - \int_0^{s_1} \mathrm{d}\chi_1 \frac{D(\chi_1)(s_1 - \chi_1) }{a(\chi_1)} - \left( J_{31} I^3_1(\Delta\chi_1) + J_{22} I^2_2(\Delta\chi_1) \right)\]

    where $\mathcal{H} = a H$, $\Delta\chi_1 = \sqrt{\chi_1^2 + s_2^2 - 2 \chi_1 s_2\cos{\theta}}$, $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$) and the $J$ coefficients are given by

    \[\begin{align*} - J_{31} & = -2 y \Delta\chi_1^2 \\ - J_{22} & = \chi_1 s_2 (1 - y^2) -\end{align*}\]

    The computation is made applying trapz (see the Trapz Julia package) to the integrand function integrand_ξ_GNCxLD_Lensing_LocalGP.

    Inputs

    • s1 and s2: comovign distances where the function must be evaluated

    • y: the cosine of the angle between the two points P1 and P2

    • cosmo::Cosmology: cosmology to be used in this computation

    Optional arguments

    • en::Float64 = 1e6: just a float number used in order to deal better with small numbers;

    • N_χs::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ1) and (0, s1) (for χ2); it has been checked that with N_χs ≥ 50 the result is stable.

    See also: integrand_ξ_GNCxLD_Lensing_LocalGP, int_on_mu_Lensing_LocalGP integral_on_mu, ξ_LD_multipole

    source
    GaPSE.ξ_GNCxLD_Lensing_IntegratedGPFunction
     ξ_GNCxLD_Lensing_IntegratedGP(s1, s2, y, cosmo::Cosmology;
    -      en::Float64 = 1e6,
    -      N_χs::Int = 100) :: Float64

    Return theLensing-IntegratedGP cross-correlation function $\xi^{\kappa\int\phi} (s_1, s_2, \cos{\theta})$ concerning the perturbed luminosity distance, defined as follows:

    \[\xi^{\kappa\int\phi} (s_1, s_2, \cos{\theta}) = - \frac{9}{2}\mathcal{H}_0^4\Omega_{M0}^2 - &\mathrm{d}\chi_1 \int_0^{s_2} \mathrm{d}\chi_2 - \frac{D(\chi_1)D(\chi_2)\chi_2(s_1 - \chi_1)}{s_1a(\chi_1)a(\chi_2)} \\ - &\left(\mathcal{H}(\chi_2)(f(\chi_2) - 1)\mathcal{R}(s_2) -\frac{1}{s_2} \right) - \left( J_{31} I^3_1(\chi) + J_{22} I^2_2(\chi) \right) -\end{split}\]

    where $D_1 = D(\chi_1)$, $D_2 = D(\chi_2)$ and so on, $\mathcal{H} = a H$, $\chi = \sqrt{\chi_1^2 + \chi_2^2 - 2\chi_1\chi_2\cos{\theta}}$, $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$) and the $J$ coefficients are given by

    \[\begin{align*} - J_{31} & = -2y\chi^2 \\ - J_{22} & = \chi_1\chi_2(1-y^2) -\end{align*}\]

    The computation is made applying trapz (see the Trapz Julia package) to the integrand function integrand_ξ_GNCxLD_Lensing_IntegratedGP.

    Inputs

    • s1 and s2: comovign distances where the function must be evaluated

    • y: the cosine of the angle between the two points P1 and P2

    • cosmo::Cosmology: cosmology to be used in this computation

    Optional arguments

    • en::Float64 = 1e6: just a float number used in order to deal better with small numbers;

    • N_χs::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ1) and (0, s1) (for χ2); it has been checked that with N_χs ≥ 50 the result is stable.

    See also: integrand_ξ_GNCxLD_Lensing_IntegratedGP, integrand_on_mu_Lensing_IntegratedGP integral_on_mu, ξ_LD_multipole

    source
    GaPSE.ξ_GNCxLD_LocalGP_DopplerFunction
     ξ_GNCxLD_LocalGP_Doppler(P1::Point, P2::Point, y, cosmo::Cosmology) :: Float64

    Return the Doppler-LocalGP cross-correlation function concerning the perturbed luminosity distance, defined as follows:

    \[\\xi^{v_{\\parallel}\\phi} (s_1, s_2, \\cos{\\theta}) = - \\frac{3}{2 a(s_2)} \\mathcal{H}(s_1) f(s_1) D(s_1) - \\mathcal{R}(s_1) \\mathcal{H}_0^2 \\Omega_{M0} D(s_2) - (1 + \\mathcal{R}(s_2)) (s_2\\cos{\\theta} - s_1) s^2 I^3_1(s)\]

    where $\\mathcal{H} = a H$, $y = \\cos{\\theta} = \\hat{\\mathbf{s}}_1 \\cdot \\hat{\\mathbf{s}}_2$ and :

    \[I^n_l(s) = \\int_0^\\infty \\frac{\\mathrm{d}q}{2\\pi^2} q^2 \\, P(q) \\, \\frac{j_l(qs)}{(q s)^n}\]

    Inputs

    • P1::Point and P2::Point: Point where the CF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on)

    • y: the cosine of the angle between the two points P1 and P2

    • cosmo::Cosmology: cosmology to be used in this computation

    See also: Point, Cosmology

    source
    GaPSE.ξ_GNCxLD_LocalGP_LensingFunction
     ξ_GNCxLD_LocalGP_Lensing(s1, s2, y, cosmo::Cosmology;
    -      en::Float64 = 1e6, N_χs::Int = 100):: Float64

    Return the Lensing-LocalGP cross-correlation function $\xi^{\kappa \phi} (s_1, s_2, \cos{\theta})$ concerning the perturbed luminosity distance, defined as follows:

    \[\xi^{\kappa \phi} (s_1, s_2, \cos{\theta}) = - \frac{ - 9 \mathcal{H}_0^4 \Omega_{M0}^2 D(s_2) (1 + \mathcal{R}(s_2)) s_2 - }{4 a(s_2) s_1} - \int_0^{s_1} \mathrm{d}\chi_1 \frac{D(\chi_1)(s_1 - \chi_1) }{a(\chi_1)} - \left( J_{31} I^3_1(\Delta\chi_1) + J_{22} I^2_2(\Delta\chi_1) \right)\]

    where $\mathcal{H} = a H$, $\Delta\chi_1 = \sqrt{\chi_1^2 + s_2^2 - 2 \chi_1 s_2\cos{\theta}}$, $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$) and the $J$ coefficients are given by

    \[\begin{align*} - J_{31} & = -2 y \Delta\chi_1^2 \\ - J_{22} & = \chi_1 s_2 (1 - y^2) -\end{align*}\]

    The computation is made applying trapz (see the Trapz Julia package) to the integrand function integrand_ξ_GNCxLD_LocalGP_Lensing.

    Inputs

    • s1 and s2: comovign distances where the function must be evaluated

    • y: the cosine of the angle between the two points P1 and P2

    • cosmo::Cosmology: cosmology to be used in this computation

    Optional arguments

    • en::Float64 = 1e6: just a float number used in order to deal better with small numbers;

    • N_χs::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ2) and (0, s1) (for χ2); it has been checked that with N_χs ≥ 50 the result is stable.

    See also: integrand_ξ_GNCxLD_LocalGP_Lensing, int_on_mu_Lensing_LocalGP integral_on_mu, ξ_GNC_multipole

    source
    GaPSE.ξ_GNCxLD_LocalGP_LocalGPFunction
     ξ_GNCxLD_LocalGP_LocalGP(P1::Point, P2::Point, y, cosmo::Cosmology) :: Float64
    -
    - ξ_GNCxLD_LocalGP_LocalGP(s1, s2, y, cosmo::Cosmology) = 
    -      ξ_GNCxLD_LocalGP_LocalGP(Point(s1, cosmo), Point(s2, cosmo), y, cosmo::Cosmology)

    Return the local gravitational potential auto-correlation function concerning the perturbed luminosity distance, defined as follows:

    \[\xi^{\phi\phi} (s_1, s_2, \cos{\theta}) = - \frac{9 \mathcal{H}_0^4 \Omega_{M0}^2 D(s_1) D(s_2)s^4}{4 a(s_1) a(s_2)} - (1 + \mathcal{R}_1 + \mathcal{R}_2 + \mathcal{R}_1\mathcal{R}_2) - \tilde{I}^4_0(s)\]

    where $D_1 = D(s_1)$, $D_2 = D(s_2)$ and so on, $\mathcal{H} = a H$, $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$ and:

    \[\tilde{I}^4_0 (s) &= \int_0^\infty \frac{\mathrm{d}q}{2\pi^2} - q^2 \, P(q) \, \frac{j_0(q s) - 1}{(q s)^4}\]

    Inputs

    • P1::Point and P2::Point: Point where the CF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on)

    • y: the cosine of the angle between the two points P1 and P2

    • cosmo::Cosmology: cosmology to be used in this computation

    See also: Point, Cosmology

    source
    GaPSE.ξ_GNCxLD_LocalGP_IntegratedGPFunction
     ξ_GNCxLD_LocalGP_IntegratedGP(s1, s2, y, cosmo::Cosmology;
    -      en::Float64 = 1e6, N_χs::Int = 100):: Float64

    Return the LocalGP-IntegratedGP cross-correlation function $\xi^{v_{\parallel}\int \phi} (s_1, s_2, \cos{\theta})$ concerning the perturbed luminosity distance, defined as follows:

    \[\xi^{v_{\parallel}\int \phi} (s_1, s_2, \cos{\theta}) = - \frac{9 \mathcal{H}_0^4 \Omega_{M0}^2 D(s_1) (\mathcal{R}(s_1) +1)}{2 a(s_1)} - \int_0^{s_2} \mathrm{d}\chi_2 \frac{D(\chi_2) \Delta\chi_2^4}{ a(\chi_2)} - \left( - \mathcal{H}(\chi_2)( f(\chi_2) - 1) \mathcal{R}(s_2) - \frac{1}{s_2} - \right) \tilde{I}^4_0(\Delta\chi_2)\]

    where $\mathcal{H} = a H$, $\Delta\chi_2 = \sqrt{s_1^2 + \chi_2^2 - 2 s_1 \chi_2 \cos{\theta}}$, $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$).

    The computation is made applying trapz (see the Trapz Julia package) to the integrand function integrand_ξ_GNCxLD_LocalGP_IntegratedGP.

    Inputs

    • s1 and s2: comovign distances where the function must be evaluated

    • y: the cosine of the angle between the two points P1 and P2

    • cosmo::Cosmology: cosmology to be used in this computation

    Optional arguments

    • en::Float64 = 1e6: just a float number used in order to deal better with small numbers;

    • N_χs::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ1) and (0, s1) (for χ2); it has been checked that with N_χs ≥ 50 the result is stable.

    See also: integrand_ξ_GNCxLD_LocalGP_IntegratedGP, int_on_mu_LocalGP_IntegratedGP integral_on_mu, ξ_GNCxLD_multipole

    source
    GaPSE.ξ_GNCxLD_IntegratedGP_DopplerFunction
     ξ_GNCxLD_IntegratedGP_Doppler(s1, s2, y, cosmo::Cosmology;
    -      en::Float64 = 1e6, N_χs::Int = 100):: Float64

    Return the Doppler-LocalGP cross-correlation function $\\xi^{v_{\\parallel}\\int\\phi} (s_1, s_2, \\cos{\\theta})$ concerning the perturbed luminosity distance, defined as follows:

    \[\\xi^{v_{\\parallel}\\int\\phi} (s_1, s_2, \\cos{\\theta}) = - 3 \\mathcal{H}(s_1) f(s_1) D(s_1) \\mathcal{H_0}^2 \\Omega_{M0} \\mathcal{R}(s_1) - \\int_0^{s_2} \\mathrm{d}\\chi_2 \\, J_{31} \\, I^3_1(\\chi)\]

    where $\\mathcal{H} = a H$, $\\chi = \\sqrt{s_1^2 + \\chi_2^2 - 2 s_1 \\chi_2 \\cos{\\theta}}$, $y = \\cos{\\theta} = \\hat{\\mathbf{s}}_1 \\cdot \\hat{\\mathbf{s}}_2$) and:

    \[J_{31} = - \\frac{D(\\chi_2) (s_1 - \\chi_2 \\cos{\\theta})}{a(\\chi_2)} \\chi^2 - \\left( - - \\frac{1}{s_2} + \\mathcal{R}(s_2) \\mathcal{H}(\\chi_2) (f(\\chi_2) - 1) - \\right)\]

    The computation is made applying trapz (see the Trapz Julia package) to the integrand function integrand_ξ_GNCxLD_IntegratedGP_Doppler.

    Inputs

    • s1 and s2: comovign distances where the function must be evaluated

    • y: the cosine of the angle between the two points P1 and P2

    • cosmo::Cosmology: cosmology to be used in this computation

    Optional arguments

    • en::Float64 = 1e6: just a float number used in order to deal better with small numbers;

    • N_χs::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ1) and (0, s1) (for χ1); it has been checked that with N_χs ≥ 50 the result is stable.

    See also: integrand_ξ_GNCxLD_IntegratedGP_Doppler, int_on_mu_Doppler_IntegratedGP integral_on_mu, ξ_LD_multipole

    source
    GaPSE.ξ_GNCxLD_IntegratedGP_LensingFunction
     ξ_GNCxLD_IntegratedGP_Lensing(s1, s2, y, cosmo::Cosmology;
    -      en::Float64 = 1e6,
    -      N_χs::Int = 100) :: Float64

    Return theLensing-IntegratedGP cross-correlation function $\xi^{\kappa\int\phi} (s_1, s_2, \cos{\theta})$ concerning the perturbed luminosity distance, defined as follows:

    \[\xi^{\kappa\int\phi} (s_1, s_2, \cos{\theta}) = - \frac{9}{2}\mathcal{H}_0^4\Omega_{M0}^2 - &\mathrm{d}\chi_1 \int_0^{s_2} \mathrm{d}\chi_2 - \frac{D(\chi_1)D(\chi_2)\chi_2(s_1 - \chi_1)}{s_1a(\chi_1)a(\chi_2)} \\ - &\left(\mathcal{H}(\chi_2)(f(\chi_2) - 1)\mathcal{R}(s_2) -\frac{1}{s_2} \right) - \left( J_{31} I^3_1(\chi) + J_{22} I^2_2(\chi) \right) -\end{split}\]

    where $D_1 = D(\chi_1)$, $D_2 = D(\chi_2)$ and so on, $\mathcal{H} = a H$, $\chi = \sqrt{\chi_1^2 + \chi_2^2 - 2\chi_1\chi_2\cos{\theta}}$, $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$) and the $J$ coefficients are given by

    \[\begin{align*} - J_{31} & = -2y\chi^2 \\ - J_{22} & = \chi_1\chi_2(1-y^2) -\end{align*}\]

    The computation is made applying trapz (see the Trapz Julia package) to the integrand function integrand_ξ_GNCxLD_IntegratedGP_Lensing.

    Inputs

    • s1 and s2: comovign distances where the function must be evaluated

    • y: the cosine of the angle between the two points P1 and P2

    • cosmo::Cosmology: cosmology to be used in this computation

    Optional arguments

    • en::Float64 = 1e6: just a float number used in order to deal better with small numbers;

    • N_χs::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ1) and (0, s1) (for χ2); it has been checked that with N_χs ≥ 50 the result is stable.

    See also: integrand_ξ_GNCxLD_IntegratedGP_Lensing, integrand_on_mu_Lensing_IntegratedGP integral_on_mu, ξ_LD_multipole

    source
    GaPSE.ξ_GNCxLD_IntegratedGP_LocalGPFunction
     ξ_GNCxLD_IntegratedGP_LocalGP(s1, s2, y, cosmo::Cosmology;
    -      en::Float64 = 1e6, N_χs::Int = 100):: Float64

    Return the LocalGP-IntegratedGP cross-correlation function $\xi^{v_{\parallel}\int \phi} (s_1, s_2, \cos{\theta})$ concerning the perturbed luminosity distance, defined as follows:

    \[\xi^{v_{\parallel}\int \phi} (s_1, s_2, \cos{\theta}) = - \frac{9 \mathcal{H}_0^4 \Omega_{M0}^2 D(s_1) (\mathcal{R}(s_1) +1)}{2 a(s_1)} - \int_0^{s_2} \mathrm{d}\chi_2 \frac{D(\chi_2) \Delta\chi_2^4}{ a(\chi_2)} - \left( - \mathcal{H}(\chi_2)( f(\chi_2) - 1) \mathcal{R}(s_2) - \frac{1}{s_2} - \right) \tilde{I}^4_0(\Delta\chi_2)\]

    where $\mathcal{H} = a H$, $\Delta\chi_2 = \sqrt{s_1^2 + \chi_2^2 - 2 s_1 \chi_2 \cos{\theta}}$, $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$).

    The computation is made applying trapz (see the Trapz Julia package) to the integrand function integrand_ξ_GNCxLD_IntegratedGP_LocalGP.

    Inputs

    • s2 and s1: comovign distances where the function must be evaluated

    • y: the cosine of the angle between the two points P1 and P2

    • cosmo::Cosmology: cosmology to be used in this computation

    Optional arguments

    • en::Float64 = 1e6: just a float number used in order to deal better with small numbers;

    • N_χs::Int = 100: number of points to be used for sampling the integral along the ranges (0, s2) (for χ1) and (0, s2) (for χ1); it has been checked that with N_χs ≥ 50 the result is stable.

    See also: integrand_ξ_GNCxLD_IntegratedGP_LocalGP, int_on_mu_LocalGP_IntegratedGP integral_on_mu, ξ_GNC_multipole

    source
    GaPSE.ξ_GNCxLD_IntegratedGP_IntegratedGPFunction
     ξ_GNCxLD_IntegratedGP_IntegratedGP(P1::Point, P2::Point, y, cosmo::Cosmology; 
    -      en::Float64 = 1e10,
    -      N_χs::Int = 100) :: Float64
    -
    - ξ_GNCxLD_IntegratedGP_IntegratedGP(s1, s2, y, cosmo::Cosmology; kwargs...) = 
    -      ξ_GNCxLD_IntegratedGP_IntegratedGP(Point(s1, cosmo), Point(s2, cosmo), y, cosmo; kwargs...)

    Return the integrated gravitational potential auto-correlation function $\xi^{\int\phi\int\phi}(s_1, s_2, \cos{\theta})$ concerning the perturbed luminosity distance, defined as follows:

    \[\xi^{\int\phi\int\phi} (s_1, s_2, \cos{\theta}) = - \int_0^{s_1} \mathrm{d} \chi_1 \int_0^{s_2}\mathrm{d} \chi_2 \; - J_{40}(s_1, s_2, y, \chi_1, \chi_2) \, \tilde{I}^4_0(\chi)\]

    where $\chi = \sqrt{\chi_1^2 + \chi_2^2 - 2 \, \chi_1 \, \chi_2 \, y}$, $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$ and:

    \[\begin{split} - &J_{40}(s_1, s_2, y, \chi_1, \chi_2) = - \frac{ - 9 \mathcal{H}_0^4 \Omega_{M0}^2 D(\chi_1) D(\chi_2) \chi^4 - }{ a(\chi_1) a(\chi_2) s_1 s_2} - (s_2 \mathcal{H}(\chi_2) \mathcal{R}(s_2) (f(\chi_2)-1) - 1) - (s_1 \mathcal{H}(\chi_1) \mathcal{R}(s_1) (f(\chi_1)-1) - 1)\\[5pt] - &\tilde{I}^4_0 (s) = \int_0^\infty \frac{\mathrm{d}q}{2\pi^2} - q^2 \, P(q) \, \frac{j_0(q s) - 1}{(q s)^4} -\end{split}\]

    and $P(q)$ is the input power spectrum.

    The computation is made applying trapz (see the Trapz Julia package) to the integrand function integrand_ξ_GNC_Lensing.

    Inputs

    • s1 and s2: comovign distances where the function must be evaluated

    • y: the cosine of the angle between the two points P1 and P2

    • cosmo::Cosmology: cosmology to be used in this computation

    Optional arguments

    • en::Float64 = 1e10: just a float number used in order to deal better with small numbers.

    • N_χs::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ1) and (0, s1) (for χ2); it has been checked that with N_χs ≥ 50 the result is stable.

    See also: integrand_ξ_GNCxLD_IntegratedGP_IntegratedGP, integrand_on_mu_IntegratedGP integral_on_mu, ξ_GNC_multipole

    source

    Two-Point Cross-Correlation Function multipoles

    GaPSE.integrand_ξ_GNCxLD_multipoleFunction
     integrand_ξ_GNCxLD_multipole(s1, s, μ, effect::Function, cosmo::Cosmology;
    -      L::Int = 0, use_windows::Bool = true, kwargs...)
    -
    - integrand_ξ_GNCxLD_multipole(s1, s, μ, effect::String, cosmo::Cosmology; kwargs...)

    Return the integrand on $\mu = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}$ of the chosen two-point cross correlation between a Galaxy Number Counts (GNC) effect and a perturbation of the Luminosity Distance (LD) term, i.e. the following function $f(s_1, s, \mu)$:

    \[ f_L(s_1, s, \mu) = \xi \left(s_1, s_2, y\right) - \, \mathcal{L}_L(\mu) \, \times - \begin{cases} - \frac{1}{\mathcal{N}}\mathcal{F}(s, \mu) \quad \mathrm{use\_windows == true} \\ - 1 \quad\quad \mathrm{use\_windows == false} - \end{cases}\]

    where:

    • $s_2 = s_2(s_1, s, \mu) = \sqrt{s_1^2 + s^2 + 2 \, s_1 \, s \, \mu}$
    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2 = \frac{\mu \, s + s_1}{s_2(s_1, s, \mu)}$
    • $\xi$ is the corresponding GNCxLD TPCF effect
    • $\mathcal{L}_L(\mu)$ is the Legendre polynomial of order $L$
    • $\mathcal{F}(s, \mu)$ is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)
    • $\mathcal{N}$ is the integrated window function norm (check the documentation of WindowFIntegrated)

    In the former method you have to pass as an input the GNCxLD effect function you want to integrate, while in the (recommended) latter one it's necessary to specify the name of the GNCxLD TPCF term among the following:

    newton_doppler , newton_lensing , newton_localgp , newton_integratedgp , doppler_doppler , doppler_lensing , doppler_localgp , doppler_integratedgp , lensing_doppler , lensing_lensing , lensing_localgp , lensing_integratedgp , localgp_doppler , localgp_lensing , localgp_localgp , localgp_integratedgp , integratedgp_doppler , integratedgp_lensing , integratedgp_localgp , integratedgp_integratedgp ,

    to which correspond the following functions, respectively:

    ξ_GNCxLD_Newtonian_Doppler , ξ_GNCxLD_Newtonian_Lensing , ξ_GNCxLD_Newtonian_LocalGP , ξ_GNCxLD_Newtonian_IntegratedGP , ξ_GNCxLD_Doppler_Doppler , ξ_GNCxLD_Doppler_Lensing , ξ_GNCxLD_Doppler_LocalGP , ξ_GNCxLD_Doppler_IntegratedGP , ξ_GNCxLD_Lensing_Doppler , ξ_GNCxLD_Lensing_Lensing , ξ_GNCxLD_Lensing_LocalGP , ξ_GNCxLD_Lensing_IntegratedGP , ξ_GNCxLD_LocalGP_Doppler , ξ_GNCxLD_LocalGP_Lensing , ξ_GNCxLD_LocalGP_LocalGP , ξ_GNCxLD_LocalGP_IntegratedGP , ξ_GNCxLD_IntegratedGP_Doppler , ξ_GNCxLD_IntegratedGP_Lensing , ξ_GNCxLD_IntegratedGP_LocalGP , ξ_GNCxLD_IntegratedGP_IntegratedGP ,

    Internally, the second method recall the first, so all the keyword arguments are in common.

    Note that these is an internal conversion of coordiate sistems from (s1, s, μ) to (s1, s2, y) thorugh the functions y and s2. The inverse relations are:

    • $s = s(s_1, s_2, y) = \sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$
    • $\mu = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}} = \frac{y \, s_2 - s_1}{s(s_1, s_2, y)}$.

    Inputs

    • s1: the comoving distance where must be evaluated the integral

    • s: the comoving distance from s1 where must be evaluated the integral

    • μ: the cosine between s1 and s where must be evaluated the integral

    • effect::Function or effect::String : name/function you want to consider, among the ones inside GaPSE.GR_EFFECTS_GNCxLD/GaPSE.VEC_ξs_GNCxLD respectively.

    • cosmo::Cosmology: cosmology to be used in this computation

    Optional arguments

    • L::Int = 0: order of the Legendre polynomial to be used

    • use_windows::Bool = false: tells if the integrand must consider the two window function $\phi$ and $\mathcal{F}$

    • kwargs... : other keyword arguments that will be passed to the selected GR TPCF effect (ξ_GNCxLD_Doppler, ξ_GNCxLD_Lensing, ...)

    See also: ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole, WindowFIntegrated, ϕ, Cosmology, y, s2, GR_EFFECTS_GNCxLD, GaPSE.VEC_ξs_GNCxLD

    source
    GaPSE.ξ_GNCxLD_multipoleFunction
     ξ_GNCxLD_multipole(
    -      s1, s, effect::Function, cosmo::Cosmology;
    -      L::Int = 0, alg::Symbol = :lobatto, 
    -      use_windows::Bool = true, 
    -      N_lob::Int = 100, N_trap::Int = 200, 
    -      atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,
    -      enhancer::Float64 = 1e6, 
    -      kwargs...) ::Float64
    -
    - ξ_GNCxLD_multipole(s1, s, effect::String, cosmo::Cosmology; 
    -      kwargs...) ::Float64

    Evaluate the multipole of order L of the chosen two-point cross correlation between a Galaxy Number Counts (GNC) effect and a perturbation of the Luminosity Distance (LD) term i.e. the following function $\xi_L(s_1, s)$:

    \[ \xi_L(s_1, s) = \frac{2 L + 1}{2} \int_{-1}^{+1} \mathrm{d}\mu \; - \xi (s_1, s_2, \cos{\theta}) \, \mathcal{L}_L(\mu) \, \times - \begin{cases} - \frac{1}{\mathcal{N}}\mathcal{F}(s, \mu) \quad \mathrm{use\_windows == true} \\ - 1 \quad\quad \mathrm{use\_windows == false} - \end{cases}\]

    where:

    • $s_2 = s_2(s_1, s, \mu) = \sqrt{s_1^2 + s^2 + 2 \, s_1 \, s \, \mu}$
    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2 = \frac{\mu \, s + s_1}{s_2(s_1, s, \mu)}$
    • $\xi$ is the corresponding GNCxLD TPCF effect
    • $\mathcal{L}_L(\mu)$ is the Legendre polynomial of order $L$
    • $\mathcal{F}(s, \mu)$ is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)
    • $\mathcal{N}$ is the integrated window function norm (check the documentation of WindowFIntegrated)

    In the former method you have to pass as an input the GNCxLD effect function you want to integrate, while in the (recommended) latter one it's necessary to specify the name of the GNCxLD TPCF term among the following:

    newton_doppler , newton_lensing , newton_localgp , newton_integratedgp , doppler_doppler , doppler_lensing , doppler_localgp , doppler_integratedgp , lensing_doppler , lensing_lensing , lensing_localgp , lensing_integratedgp , localgp_doppler , localgp_lensing , localgp_localgp , localgp_integratedgp , integratedgp_doppler , integratedgp_lensing , integratedgp_localgp , integratedgp_integratedgp ,

    to which correspond the following functions:

    ξ_GNCxLD_Newtonian_Doppler , ξ_GNCxLD_Newtonian_Lensing , ξ_GNCxLD_Newtonian_LocalGP , ξ_GNCxLD_Newtonian_IntegratedGP , ξ_GNCxLD_Doppler_Doppler , ξ_GNCxLD_Doppler_Lensing , ξ_GNCxLD_Doppler_LocalGP , ξ_GNCxLD_Doppler_IntegratedGP , ξ_GNCxLD_Lensing_Doppler , ξ_GNCxLD_Lensing_Lensing , ξ_GNCxLD_Lensing_LocalGP , ξ_GNCxLD_Lensing_IntegratedGP , ξ_GNCxLD_LocalGP_Doppler , ξ_GNCxLD_LocalGP_Lensing , ξ_GNCxLD_LocalGP_LocalGP , ξ_GNCxLD_LocalGP_IntegratedGP , ξ_GNCxLD_IntegratedGP_Doppler , ξ_GNCxLD_IntegratedGP_Lensing , ξ_GNCxLD_IntegratedGP_LocalGP , ξ_GNCxLD_IntegratedGP_IntegratedGP ,

    Internally, the second method recall the first, so all the keyword arguments are in common.

    Note that these is an internal conversion of coordiate sistems from (s1, s, μ) to (s1, s2, y) thorugh the functions y and s2. The inverse relations are:

    • $s = s(s_1, s_2, y) = \sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$
    • $\mu = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}} = \frac{y \, s_2 - s_1}{s(s_1, s_2, y)}$.

    Inputs

    • s1: the comoving distance where must be evaluated the integral

    • s: the comoving distance from s1 where must be evaluated the integral

    • effect::Function or effect::String : name/function you want to consider, among the ones inside GaPSE.GR_EFFECTS_GNCxLD/GaPSE.VEC_ξs_GNCxLD respectively.

    • cosmo::Cosmology: cosmology to be used in this computation

    Optional arguments

    • L::Int = 0: order of the Legendre polynomial to be used

    • alg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):

      • :quad -> the integration over $\mu$ will be preformed through the Julia function quadgk

      from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.

      • :trap -> the integration over $\mu$ will be preformed through the Julia function trapz

      from the Trapz.jl Julia package, that uses the simple trapezoidal rulae.

      • :lobatto -> the integration over $\mu$ will be preformed through the Julia function gausslobatto

      from the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!

    • use_windows::Bool = false: tells if the integrand must consider the two window function $\phi$ and $\mathcal{F}$

    • N_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • N_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    • kwargs... : other keyword arguments that will be passed to the selected GNCxLD TPCF effect (ξ_GNCxLD_Doppler, ξ_GNCxLD_Lensing, ...)

    See also: integrand_ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole WindowFIntegrated, Cosmology, y, s2, GR_EFFECTS_GNCxLD, VEC_ξs_GNCxLD

    source
    GaPSE.map_ξ_GNCxLD_multipoleFunction
     map_ξ_GNCxLD_multipole(cosmo::Cosmology,
    -      effect::Union{String,Function}, ss = nothing;
    -      s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,
    -      N_lob::Int = 100, N_trap::Int = 50,
    -      atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,
    -      enhancer::Float64=1e6, N_log::Int = 1000, 
    -      pr::Bool = true,
    -      kwargs...) ::Tuple{Vector{Float64}, Vector{Float64}}

    Evaluate the multipole of order L of the chosen two-point cross correlation between a Galaxy Number Counts (GNC) effect and a perturbation of the Luminosity Distance (LD) term for all the comoving distance values stored inside ss. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). If s1 = nothing, it is set s1 = cosmo.s_eff.

    The function evaluated is then the following $\xi_L(s_1, s)$:

    \[ \xi_L(s_1, s) = \frac{2 L + 1}{2} \int_{-1}^{+1} \mathrm{d}\mu \; - \xi (s_1, s_2, \cos{\theta}) \, \mathcal{L}_L(\mu) \, \times - \begin{cases} - \frac{1}{\mathcal{N}}\mathcal{F}(s, \mu) \quad \mathrm{use\_windows == true} \\ - 1 \quad\quad \mathrm{use\_windows == false} - \end{cases}\]

    where:

    • $s_2 = s_2(s_1, s, \mu) = \sqrt{s_1^2 + s^2 + 2 \, s_1 \, s \, \mu}$
    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2 = \frac{\mu \, s + s_1}{s_2(s_1, s, \mu)}$
    • $\xi$ is the corresponding GNCxLD TPCF effect
    • $\mathcal{L}_L(\mu)$ is the Legendre polynomial of order $L$
    • $\mathcal{F}(s, \mu)$ is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)
    • $\mathcal{N}$ is the integrated window function norm (check the documentation of WindowFIntegrated)

    Note that these is an internal conversion of coordiate sistems from (s1, s, μ) to (s1, s2, y) thorugh the functions y and s2. The inverse relations are:

    • $s = s(s_1, s_2, y) = \sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$
    • $\mu = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}} = \frac{y \, s_2 - s_1}{s(s_1, s_2, y)}$.

    Inputs

    • cosmo::Cosmology : cosmology to be used in this computation

    • effect::Union{String,Function} : the GR effect TPCF you want to consider; you may specify the name of the effect as one of the following strings (recommended):

      newton_doppler , newton_lensing , newton_localgp , newton_integratedgp , doppler_doppler , doppler_lensing , doppler_localgp , doppler_integratedgp , lensing_doppler , lensing_lensing , lensing_localgp , lensing_integratedgp , localgp_doppler , localgp_lensing , localgp_localgp , localgp_integratedgp , integratedgp_doppler , integratedgp_lensing , integratedgp_localgp , integratedgp_integratedgp ,

      or directly the name of the function among the following:

      ξ_GNCxLD_Newtonian_Doppler , ξ_GNCxLD_Newtonian_Lensing , ξ_GNCxLD_Newtonian_LocalGP , ξ_GNCxLD_Newtonian_IntegratedGP , ξ_GNCxLD_Doppler_Doppler , ξ_GNCxLD_Doppler_Lensing , ξ_GNCxLD_Doppler_LocalGP , ξ_GNCxLD_Doppler_IntegratedGP , ξ_GNCxLD_Lensing_Doppler , ξ_GNCxLD_Lensing_Lensing , ξ_GNCxLD_Lensing_LocalGP , ξ_GNCxLD_Lensing_IntegratedGP , ξ_GNCxLD_LocalGP_Doppler , ξ_GNCxLD_LocalGP_Lensing , ξ_GNCxLD_LocalGP_LocalGP , ξ_GNCxLD_LocalGP_IntegratedGP , ξ_GNCxLD_IntegratedGP_Doppler , ξ_GNCxLD_IntegratedGP_Lensing , ξ_GNCxLD_IntegratedGP_LocalGP , ξ_GNCxLD_IntegratedGP_IntegratedGP ,

    • ss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). This is why it is returned also the vector of the "input" values.

    Optional arguments

    • s1 = nothing : comoving distance from the observer where the TPCF should be evaluated; if s1 = nothing, it is automatically set s1 = cosmo.s_eff from the given input cosmo::Cosmology.

    • L::Int = 0: order of the Legendre polynomial to be used

    • alg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):

      • :quad -> the integration over $\mu$ will be preformed through the Julia function quadgk

      from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.

      • :trap -> the integration over $\mu$ will be preformed through the Julia function trapz

      from the Trapz.jl Julia package, that uses the simple trapezoidal rulae.

      • :lobatto -> the integration over $\mu$ will be preformed through the Julia function gausslobatto

      from the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!

    • use_windows::Bool = false: tells if the integrand must consider the two window function $\phi$ and $\mathcal{F}$

    • N_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • N_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    • N_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing

    • pr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)

    • kwargs... : other keyword arguments that will be passed to the selected GNCxLD TPCF effect (ξ_GNCxLD_Doppler, ξ_GNCxLD_Lensing, ...)

    Returns

    A Tuple{Vector{Float64}, Vector{Float64}}, which has as first element the ss vector and as second one the corresponding ξ value evaluated.

    See also: integrand_ξ_GNCxLD_multipole, ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole, WindowFIntegrated, Cosmology, y, s2, GR_EFFECTS_GNCxLD, GaPSE.VEC_ξs_GNCxLD

    source
    GaPSE.print_map_ξ_GNCxLD_multipoleFunction
     print_map_ξ_GNCxLD_multipole(
    -      cosmo::Cosmology, out::String,
    -      effect::Union{String,Function},
    -      ss = nothing;
    -      s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,
    -      N_lob::Int = 100, N_trap::Int = 50,
    -      atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,
    -      enhancer::Float64=1e6, N_log::Int = 1000, 
    -      pr::Bool = true,
    -      kwargs...)

    Evaluate the multipole of order L of the of the chosen two-point cross correlation between a Galaxy Number Counts (GNC) effect and a perturbation of the Luminosity Distance (LD) term for all the comoving distance values stored inside ss, and print the results (with all the options used) in a file named out. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). If s1 = nothing, it is set s1 = cosmo.s_eff.

    The function evaluated is then the following $\xi_L(s_1, s)$:

    \[ \xi_L(s_1, s) = \frac{2 L + 1}{2} \int_{-1}^{+1} \mathrm{d}\mu \; - \xi (s_1, s_2, \cos{\theta}) \, \mathcal{L}_L(\mu) \, \times - \begin{cases} - \frac{1}{\mathcal{N}}\mathcal{F}(s, \mu) \quad \mathrm{use\_windows == true} \\ - 1 \quad\quad \mathrm{use\_windows == false} - \end{cases}\]

    where:

    • $s_2 = s_2(s_1, s, \mu) = \sqrt{s_1^2 + s^2 + 2 \, s_1 \, s \, \mu}$
    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2 = \frac{\mu \, s + s_1}{s_2(s_1, s, \mu)}$
    • $\xi$ is the corresponding GNCxLD TPCF effect
    • $\mathcal{L}_L(\mu)$ is the Legendre polynomial of order $L$
    • $\mathcal{F}(s, \mu)$ is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)
    • $\mathcal{N}$ is the integrated window function norm (check the documentation of WindowFIntegrated)

    Note that these is an internal conversion of coordiate sistems from (s1, s, μ) to (s1, s2, y) thorugh the functions y and s2. The inverse relations are:

    • $s = s(s_1, s_2, y) = \sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$
    • $\mu = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}} = \frac{y \, s_2 - s_1}{s(s_1, s_2, y)}$.

    Inputs

    • cosmo::Cosmology : cosmology to be used in this computation

    • effect::Union{String,Function} : the GR effect TPCF you want to consider; you may specify the name of the effect as one of the following strings (recommended):

      newton_doppler , newton_lensing , newton_localgp , newton_integratedgp , doppler_doppler , doppler_lensing , doppler_localgp , doppler_integratedgp , lensing_doppler , lensing_lensing , lensing_localgp , lensing_integratedgp , localgp_doppler , localgp_lensing , localgp_localgp , localgp_integratedgp , integratedgp_doppler , integratedgp_lensing , integratedgp_localgp , integratedgp_integratedgp ,

      or directly the name of the function among the following:

      ξ_GNCxLD_Newtonian_Doppler , ξ_GNCxLD_Newtonian_Lensing , ξ_GNCxLD_Newtonian_LocalGP , ξ_GNCxLD_Newtonian_IntegratedGP , ξ_GNCxLD_Doppler_Doppler , ξ_GNCxLD_Doppler_Lensing , ξ_GNCxLD_Doppler_LocalGP , ξ_GNCxLD_Doppler_IntegratedGP , ξ_GNCxLD_Lensing_Doppler , ξ_GNCxLD_Lensing_Lensing , ξ_GNCxLD_Lensing_LocalGP , ξ_GNCxLD_Lensing_IntegratedGP , ξ_GNCxLD_LocalGP_Doppler , ξ_GNCxLD_LocalGP_Lensing , ξ_GNCxLD_LocalGP_LocalGP , ξ_GNCxLD_LocalGP_IntegratedGP , ξ_GNCxLD_IntegratedGP_Doppler , ξ_GNCxLD_IntegratedGP_Lensing , ξ_GNCxLD_IntegratedGP_LocalGP , ξ_GNCxLD_IntegratedGP_IntegratedGP ,

    • out::String : name of the file where the results must be stored.

    • ss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log).

    Optional arguments

    This function recall internally map_ξ_GNCxLD_multipole, so the kwargs are the same; we report them for comfortness:

    • s1 = nothing : comoving distance from the observer where the TPCF should be evaluated; if s1 = nothing, it is automatically set s1 = cosmo.s_eff from the given input cosmo::Cosmology.

    • L::Int = 0: order of the Legendre polynomial to be used

    • alg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):

      • :quad -> the integration over $\mu$ will be preformed through the Julia function quadgk

      from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.

      • :trap -> the integration over $\mu$ will be preformed through the Julia function trapz

      from the Trapz.jl Julia package, that uses the simple trapezoidal rulae.

      • :lobatto -> the integration over $\mu$ will be preformed through the Julia function gausslobatto

      from the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!

    • use_windows::Bool = false: tells if the integrand must consider the two window function $\phi$ and $\mathcal{F}$

    • N_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • N_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    • N_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing

    • pr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)

    • kwargs... : other keyword arguments that will be passed to the selected GNCxLD TPCF effect (ξ_GNCxLD_Doppler, ξ_GNCxLD_Lensing, ...)

    See also: integrand_ξ_GNCxLD_multipole, ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole, WindowFIntegrated, Cosmology, y, s2, GR_EFFECTS_GNCxLD, GaPSE.VEC_ξs_GNCxLD

    source

    Two-Point Cross-Correlation Function Sum multipoles

    GaPSE.sum_ξ_GNCxLD_multipoleFunction
     sum_ξ_GNCxLD_multipole(s1, s, cosmo::Cosmology;
    -      s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,
    -      N_lob::Int = 100, N_trap::Int = 50,
    -      atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,
    -      enhancer::Float64=1e6, N_log::Int = 1000, 
    -      pr::Bool = true,
    -      kwargs...) ::Tuple{Float64, Vector{Float64}}

    Evaluate the multipole of order L of all the two-point cross correlation multipole between the Galaxy Number Counts (GNC) and the perturbations of the Luminosity Distance (LD) and their sum in the comoving distance s1 and a comoving distance s from it for the input cosmo::Cosmology. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    This function makes a for-loop on the GaPSE.GR_EFFECTS_GNCxLD strings, calling ξ_GNCxLD_multipole for each of them. To each string corresponds pretty intuitively one of the 20 GNCxLD effects. They are currently, in order:

    newton_doppler , newton_lensing , newton_localgp , newton_integratedgp , doppler_doppler , doppler_lensing , doppler_localgp , doppler_integratedgp , lensing_doppler , lensing_lensing , lensing_localgp , lensing_integratedgp , localgp_doppler , localgp_lensing , localgp_localgp , localgp_integratedgp , integratedgp_doppler , integratedgp_lensing , integratedgp_localgp , integratedgp_integratedgp ,

    Inputs

    • s1: the comoving distance where must be evaluated the integral

    • s: the comoving distance from s1 where must be evaluated the integral

    • cosmo::Cosmology: cosmology to be used in this computation

    Optional arguments

    This function recall internally ξ_GNCxLD_multipole, so the kwargs are the same; we report them for comfortness:

    • L::Int = 0: order of the Legendre polynomial to be used

    • alg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):

      • :quad -> the integration over $\mu$ will be preformed through the Julia function quadgk

      from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.

      • :trap -> the integration over $\mu$ will be preformed through the Julia function trapz

      from the Trapz.jl Julia package, that uses the simple trapezoidal rulae.

      • :lobatto -> the integration over $\mu$ will be preformed through the Julia function gausslobatto

      from the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!

    • use_windows::Bool = false: tells if the integrand must consider the two window function $\phi$ and $\mathcal{F}$

    • N_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • N_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    • kwargs... : other keyword arguments that will be passed to ALL the GNCxLD TPCF effect (ξ_GNCxLD_Doppler, ξ_GNCxLD_Lensing, ...); if one of them has that keyword argument, it will use the given value, otherwise it will be unaffected.

    Returns

    A tuple containing:

    • the sum of all the ξ multipoles as first element
    • a Vector{Float64} with all the values of each ξ; they are ordered following GR_EFFECTS_GNCxLD

    See also: integrand_ξ_GNCxLD_multipole, ξ_GNCxLD_multipole, map_sum_ξ_GNCxLD_multipole, print_map_sum_ξ_GNCxLD_multipole, Cosmology, GR_EFFECTS_GNCxLD

    source
    GaPSE.map_sum_ξ_GNCxLD_multipoleFunction
     map_sum_ξ_GNCxLD_multipole(
    -      effect::Union{String,Function}, ss = nothing;
    -      s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,
    -      N_lob::Int = 100, N_trap::Int = 50,
    -      atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,
    -      enhancer::Float64=1e6, N_log::Int = 1000, 
    -      pr::Bool = true,
    -      kwargs...) ::Tuple{Vector{Float64}, Vector{Float64}, Vector{Vector{Float64}}}

    Evaluate the multipole of order L of all the two-point cross correlation multipole between the Galaxy Number Counts (GNC) and the perturbations of the Luminosity Distance (LD) and their sum in the comoving distance s1, for all the comoving distances stored inside ss (representing the comoving distance from s1) for the input cosmo::Cosmology. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). If s1 = nothing, it is set s1 = cosmo.s_eff. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    This function makes a for-loop on the GaPSE.GR_EFFECTS_GNCxLD strings, calling map_ξ_GNCxLD_multipole for each of them. To each string corresponds pretty intuitively one of the 20 GNCxLD effects. They are currently, in order:

    newton_doppler , newton_lensing , newton_localgp , newton_integratedgp , doppler_doppler , doppler_lensing , doppler_localgp , doppler_integratedgp , lensing_doppler , lensing_lensing , lensing_localgp , lensing_integratedgp , localgp_doppler , localgp_lensing , localgp_localgp , localgp_integratedgp , integratedgp_doppler , integratedgp_lensing , integratedgp_localgp , integratedgp_integratedgp ,

    Inputs

    • cosmo::Cosmology : cosmology to be used in this computation

    • ss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). This is why it is returned also the vector of the "input" values.

    Optional arguments

    This function recall internally map_ξ_GNCxLD_multipole, so the kwargs are the same; we report them for comfortness:

    • s1 = nothing : comoving distance from the observer where the TPCF should be evaluated; if s1 = nothing, it is automatically set s1 = cosmo.s_eff from the given input cosmo::Cosmology.

    • L::Int = 0: order of the Legendre polynomial to be used

    • alg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):

      • :quad -> the integration over $\mu$ will be preformed through the Julia function quadgk

      from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.

      • :trap -> the integration over $\mu$ will be preformed through the Julia function trapz

      from the Trapz.jl Julia package, that uses the simple trapezoidal rulae.

      • :lobatto -> the integration over $\mu$ will be preformed through the Julia function gausslobatto

      from the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!

    • use_windows::Bool = false: tells if the integrand must consider the two window function $\phi$ and $\mathcal{F}$

    • N_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • N_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    • N_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing

    • pr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)

    • kwargs... : other keyword arguments that will be passed to ALL the GNCxLD TPCF effect (ξ_GNCxLD_Doppler, ξ_GNCxLD_Lensing, ...); if one of them has that keyword argument, it will use the given value, otherwise it will be unaffected.

    Returns

    A tuple containing:

    • as first element, the vector ss itself;
    • as second one, the Vector{Float64} of the sum of all the ξ multipoles;
    • as third one, a Vector{Vector{Float64}} with all the values of each ξ; they are ordered following GR_EFFECTS_GNCxLD

    See also: map_ξ_GNCxLD_multipole, sum_ξ_GNCxLD_multipole, print_map_sum_ξ_GNCxLD_multipole, Cosmology, GR_EFFECTS_GNCxLD

    source
    GaPSE.print_map_sum_ξ_GNCxLD_multipoleFunction
     print_map_sum_ξ_GNCxLD_multipole(
    -      cosmo::Cosmology, out::String, ss = nothing;
    -      s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,
    -      N_lob::Int = 100, N_trap::Int = 50,
    -      atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,
    -      enhancer::Float64=1e6, N_log::Int = 1000, 
    -      pr::Bool = true,
    -      single::Bool = true,
    -      kwargs...)

    Evaluate the multipole of order L of all the two-point cross correlation multipole between the Galaxy Number Counts (GNC) and the perturbations of the Luminosity Distance (LD) and their sum in the comoving distance s1, for all the comoving distances stored inside ss (representing the comoving distance from s1) for the input cosmo::Cosmology; finally, it saves the results inside the file out. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). If s1 = nothing, it is set s1 = cosmo.s_eff. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    This function makes a for-loop on the GaPSE.GR_EFFECTS_GNCxLD strings, calling map_ξ_GNCxLD_multipole for each of them. To each string corresponds pretty intuitively one of the 20 GNCxLD effects. They are currently, in order:

    newton_doppler , newton_lensing , newton_localgp , newton_integratedgp , doppler_doppler , doppler_lensing , doppler_localgp , doppler_integratedgp , lensing_doppler , lensing_lensing , lensing_localgp , lensing_integratedgp , localgp_doppler , localgp_lensing , localgp_localgp , localgp_integratedgp , integratedgp_doppler , integratedgp_lensing , integratedgp_localgp , integratedgp_integratedgp ,

    Inputs

    • cosmo::Cosmology : cosmology to be used in this computation

    • out::String : name of the file where the results must be stored.

    • ss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log).

    Optional arguments

    This function recall internally map_ξ_GNCxLD_multipole, so the kwargs are the same; we report them for comfortness:

    • s1 = nothing : comoving distance from the observer where the TPCF should be evaluated; if s1 = nothing, it is automatically set s1 = cosmo.s_eff from the given input cosmo::Cosmology.

    • L::Int = 0: order of the Legendre polynomial to be used

    • alg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):

      • :quad -> the integration over $\mu$ will be preformed through the Julia function quadgk

      from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.

      • :trap -> the integration over $\mu$ will be preformed through the Julia function trapz

      from the Trapz.jl Julia package, that uses the simple trapezoidal rulae.

      • :lobatto -> the integration over $\mu$ will be preformed through the Julia function gausslobatto

      from the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!

    • use_windows::Bool = false: tells if the integrand must consider the two window function $\phi$ and $\mathcal{F}$

    • N_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • N_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    • N_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing

    • pr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)

    • single::Bool = true : if true, all the CFs are printed inside the file of the sum, in a table with 18 columns (first one for ss, second for their sum an the next 20 for each effect). Otherwise, a new directory "allstandalonesCFs" is created (in the same path given in out) and they are separately saved in files there placed.

    • kwargs... : other keyword arguments that will be passed to ALL the GNCxLD TPCF effect (ξ_GNCxLD_Doppler, ξ_GNCxLD_Lensing, ...); if one of them has that keyword argument, it will use the given value, otherwise it will be unaffected.

    See also: map_ξ_GNCxLD_multipole, sum_ξ_GNCxLD_multipole, map_sum_ξ_GNCxLD_multipole, Cosmology, GR_EFFECTS_GNCxLD

    source
    diff --git a/dev/GNCxLD_Correlations_1/index.html b/dev/GNCxLD_Correlations_1/index.html new file mode 100644 index 00000000..413bc5be --- /dev/null +++ b/dev/GNCxLD_Correlations_1/index.html @@ -0,0 +1,838 @@ + +GNCxLD TPCFs · GaPSE.jl

    GNCxLD TPCFs

    Two-Point Cross-Correlation Functions

    GaPSE.ξ_GNCxLD_Newtonian_DopplerFunction
    ξ_GNCxLD_Newtonian_Doppler(P1::Point, P2::Point, y, cosmo::Cosmology;
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing,
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing ) ::Float64      
    +
    +ξ_GNCxLD_Newtonian_Doppler(
    +    s1, s2, y, cosmo::Cosmology; kwargs... ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Newtonian effect arising from the Galaxy Number Counts (GNC) and the Doppler one arising from the Luminosity Distance (LD) perturbations.

    In the first method, you should pass the two Point (P1 and P2) where to evaluate the function, while in the second method (that internally recalls the first) you must provide the two corresponding comoving distances s1 and s2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this TPCF is the following:

    \[\begin{split} + \xi^{\delta v_{\parallel}}( s_1 , s_2, y ) = + D_1 D_2 \, \mathfrak{J}^{\delta v_{\parallel}}_{\alpha} \left[ + \mathfrak{J}^{\delta v_{\parallel}}_{00} I^0_{0} (s) + + \mathfrak{J}^{\delta v_{\parallel}}_{02} I^0_2 (s) + + \mathfrak{J}^{\delta v_{\parallel}}_{04} I^0_4 (s) + \right] , +\end{split}\]

    with

    \[\begin{split} + \mathfrak{J}^{\delta v_{\parallel}}_{\alpha} &= - f_2 \mathcal{H}_2 \mathfrak{R}_2 + \, , \\ + %%%%%%%%%%%%%%%%%%%%% + \mathfrak{J}^{\delta v_{\parallel}}_{00} &= + \frac{1}{15} \left\{ + s_2 \left[ 5 b_1 + (2 y^2 + 1) f_1 \right] - + y s_1 \left[ 3 f_1 + 5 b_1 \right] + \right\} + \, , \\ + %%%%%%%%%%%%%%%%%%%%% + \mathfrak{J}^{\delta v_{\parallel}}_{02} &= + \frac{1}{21 s^2} + \left\{ + \left[ + (y^2 + 1) f_1 + 7 b_1 + \right] s_2^3 - + y \left[ + 21 b_1 + (5 y^2 + 4) f_1 + \right] s_1 s_2^2 + + \right.\nonumber \\ + &\left. \qquad \qquad + \left[ + 7 (2 y^2 + 1) b_1 + (10 y^2 - 1) f_1 + \right] s_1^2 s_2 - + y \left[ + 7 b_1 + 3 f_1 + \right] s_1^3 + \right\} + \, , \\ + %%%%%%%%%%%%%%%%%%%%% + \mathfrak{J}^{\delta v_{\parallel}}_{04} &= + \frac{f_1}{35 s^2} + \left[ + 2 y s_1 ^3 + - 2 (y^2 + 2) s_1 ^2 s_2 + + y (y^2 + 5) s_1 s_2^2 + + (1 - 3 y^2) s_2 ^3 + \right] + \, , +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + +\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $\mathfrak{R}_1 = \mathfrak{R}(s_1)$, ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}(s) s} ;\]

    • $b_1$, $s_{\mathrm{b}, 1}$, $\mathit{f}_{\mathrm{evo}, 1}$ (and $b_2$, $s_{\mathrm{b}, 2}$, $\mathit{f}_{\mathrm{evo}, 2}$) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    Inputs

    • P1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • b1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:

      • if not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;
      • if you set one or more values, they will override the cosmo ones in this computation;
      • the two sets of values should be different only if you are interested in studing two galaxy species;
      • only the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities.
    • s_lim=nothing : parameter used in order to avoid the divergence of the $\mathcal{R}$ and $\mathfrak{R}$ denominators: when $0 \leq s \leq s_\mathrm{lim}$ the returned values are

      \[\forall \, s \in [ 0, s_\mathrm{lim} ] \; : \quad + \mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}_0 \, s_\mathrm{lim}} \; , \quad + \mathcal{R}(s) = 5 s_{\mathrm{b}} + + \frac{2 - 5 s_{\mathrm{b}}}{\mathcal{H}_0 \, s_\mathrm{lim}} + + \frac{\dot{\mathcal{H}}}{\mathcal{H}_0^2} - \mathit{f}_{\mathrm{evo}} \; .\]

      If nothing, the fault value stored in cosmo will be considered.

    See also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole

    source
    GaPSE.ξ_GNCxLD_Newtonian_LensingFunction
    ξ_GNCxLD_Newtonian_Lensing(
    +    s1, s2, y, cosmo::Cosmology;
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing,
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,
    +    en::Float64 = 1e6, N_χs::Int = 100 ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Newtonian effect arising from the Galaxy Number Counts (GNC) and the Lensing one arising from the Luminosity Distance (LD) perturbations.

    You must provide the two comoving distances s1 and s2 where to evaluate the function. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this TPCF is the following:

    \[\begin{split} + \xi^{\delta \kappa} ( s_1 , s_2, y ) = + D_1 \int_0^{s_2}\! \mathrm{d}\chi_2\; + \mathfrak{J}^{\delta \kappa}_{\alpha} + \left[ + \mathfrak{J}^{\delta \kappa}_{00} I_0^0 ( \Delta\chi_2 ) + + \mathfrak{J}^{\delta \kappa}_{02} I_2^0 ( \Delta \chi_2 ) + + \mathfrak{J}^{\delta \kappa}_{00} I_4^0 ( \Delta \chi_2 ) + \right] \, , +\end{split}\]

    with

    \[\begin{split} + \mathfrak{J}^{\delta \kappa}_{\alpha} &= + - \frac{ + \mathcal{H}_0 ^2 \Omega_{\mathrm{M}0} D(\chi_2) + }{ + a(\chi_2 ) s_2 + } + (\chi_2 - s_2 ) + \, , \\ + %%%%%%%%%%%%%%%%%%%%%%%% + \mathfrak{J}^{\delta \kappa}_{00} &= + \frac{1}{5} + \left[ + (3 y^2 - 1) \chi_2 f_1 - y s_1(3 f_1 + 5 b_1) + \right] + \, , \\ + %%%%%%%%%%%%%%%%%%%%%%%% + \mathfrak{J}^{\delta \kappa}_{02} &= + \frac{1}{14 \Delta\chi_2^2} + \left\{ + 4 f_1 (3 y^2 - 1) \chi_2^3 - + 2 y + \left[ + (3 y^2 + 8) f_1 + 7 b_1 + \right] s_1 \chi_2^2 + + \right. \nonumber \\ + &\left.\qquad \qquad\qquad + \left[ + (9 y^2 + 11) f_1 - 7 (y^2 + 3) b_1 + \right] s_1^2 \chi_2 - + 2 y \left[7 b_1 + 3 f_1 \right] s_1^3 + \right\} + \, , \\ + %%%%%%%%%%%%%%%%%%%%%%%% + \mathfrak{J}^{\delta \kappa}_{04} &= + \frac{f_1}{70 \Delta\chi_2^4 } + \left\{ + (6 y^2 - 2) \chi_2^5 + + 6 y (y^2 - 3) s_1 \chi_2^4 - + (y^4 + 12 y^2 - 21) s_1^2 \chi_2^3 + + \right.\nonumber \\ + &\left.\qquad\qquad\qquad + 2 y (y^2 + 3) s_1^3 \chi_2^2 - + 12 \chi_2 s_1^4 + + 4 y s_1 ^5 + \right\} + \, , +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + +\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $\mathfrak{R}_1 = \mathfrak{R}(s_1)$, ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}(s) s} ;\]

    • $b_1$, $s_{\mathrm{b}, 1}$, $\mathit{f}_{\mathrm{evo}, 1}$ (and $b_2$, $s_{\mathrm{b}, 2}$, $\mathit{f}_{\mathrm{evo}, 2}$) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    The computation is made applying trapz() (see the Trapz Julia package) to the integrand function integrand_ξ_GNCxLD_Newtonian_Lensing.

    Inputs

    • s1 and s2: comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • b1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:

      • if not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;
      • if you set one or more values, they will override the cosmo ones in this computation;
      • the two sets of values should be different only if you are interested in studing two galaxy species;
      • only the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities.
    • s_lim=nothing : parameter used in order to avoid the divergence of the $\mathcal{R}$ and $\mathfrak{R}$ denominators: when $0 \leq s \leq s_\mathrm{lim}$ the returned values are

      \[\forall \, s \in [ 0, s_\mathrm{lim} ] \; : \quad + \mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}_0 \, s_\mathrm{lim}} \; , \quad + \mathcal{R}(s) = 5 s_{\mathrm{b}} + + \frac{2 - 5 s_{\mathrm{b}}}{\mathcal{H}_0 \, s_\mathrm{lim}} + + \frac{\dot{\mathcal{H}}}{\mathcal{H}_0^2} - \mathit{f}_{\mathrm{evo}} \; .\]

      If nothing, the fault value stored in cosmo will be considered.

    • en::Float64 = 1e6: just a float number used in order to deal better with small numbers;

    • N_χs::Int = 100: number of points to be used for sampling the integral along the range (0, s2) (for χ2); it has been checked that with N_χs ≥ 100 the result is stable.

    See also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole

    source
    GaPSE.ξ_GNCxLD_Newtonian_LocalGPFunction
    ξ_GNCxLD_Newtonian_LocalGP(P1::Point, P2::Point, y, cosmo::Cosmology;
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing,
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing ) ::Float64
    +
    +ξ_GNCxLD_Newtonian_LocalGP(
    +    s1, s2, y, cosmo::Cosmology; kwargs... ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Newtonian effect arising from the Galaxy Number Counts (GNC) and the Local Gravitational Potential (GP) one arising from the Luminosity Distance (LD) perturbations.

    In the first method, you should pass the two Point (P1 and P2) where to evaluate the function, while in the second method (that internally recalls the first) you must provide the two corresponding comoving distances s1 and s2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this TPCF is the following:

    \[\begin{split} + \xi^{\delta \phi}( s_1 , s_2, y ) = + D_1 D_2 \, \mathfrak{J}^{\delta \phi}_{\alpha} \left[ + \mathfrak{J}^{\delta \phi}_{\beta} + \left( + \frac{1}{30} I_0^0 (s) + + \frac{1}{21} I_2^0 (s) + + \frac{1}{70} I_4^0 (s) + \right) + + \mathfrak{J}^{\delta \phi}_{20} I_0^2 (s) + \right] + \, , +\end{split}\]

    with

    \[\begin{split} + \mathfrak{J}^{\delta \phi}_{\alpha} &= + - \frac{\mathcal{H}_0^2 \Omega_{\mathrm{M}0}}{a_2} + (1 + \mathfrak{R}_2) + \, , \\ + %%%%%%%%%%%%%%%%%%%%% + \mathfrak{J}^{\delta \phi}_{\beta} &= + f_1 \left[ + (3 y^2 - 1) s_2^2 - 4 y s_1 s_2 + 2 s_1^2 + \right] + \, , \\ + %%%%%%%%%%%%%%%%%%%%% + \mathfrak{J}^{\delta \phi}_{20} &= + - \frac{1}{2}(3 b_1 + f_1) (s_1^2 + s_2^2 - 2 y s_1 s_2) + \,, +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + +\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $\mathfrak{R}_1 = \mathfrak{R}(s_1)$, ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}(s) s} ;\]

    • $b_1$, $s_{\mathrm{b}, 1}$, $\mathit{f}_{\mathrm{evo}, 1}$ (and $b_2$, $s_{\mathrm{b}, 2}$, $\mathit{f}_{\mathrm{evo}, 2}$) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    Inputs

    • P1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • b1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:

      • if not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;
      • if you set one or more values, they will override the cosmo ones in this computation;
      • the two sets of values should be different only if you are interested in studing two galaxy species;
      • only the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities.
    • s_lim=nothing : parameter used in order to avoid the divergence of the $\mathcal{R}$ and $\mathfrak{R}$ denominators: when $0 \leq s \leq s_\mathrm{lim}$ the returned values are

      \[\forall \, s \in [ 0, s_\mathrm{lim} ] \; : \quad + \mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}_0 \, s_\mathrm{lim}} \; , \quad + \mathcal{R}(s) = 5 s_{\mathrm{b}} + + \frac{2 - 5 s_{\mathrm{b}}}{\mathcal{H}_0 \, s_\mathrm{lim}} + + \frac{\dot{\mathcal{H}}}{\mathcal{H}_0^2} - \mathit{f}_{\mathrm{evo}} \; .\]

      If nothing, the fault value stored in cosmo will be considered.

    See also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole

    source
    GaPSE.ξ_GNCxLD_Newtonian_IntegratedGPFunction
    ξ_GNCxLD_Newtonian_IntegratedGP(
    +    s1, s2, y, cosmo::Cosmology;
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing,
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,
    +    en::Float64 = 1e6, N_χs::Int = 100 ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Newtonian effect arising from the Galaxy Number Counts (GNC) and the Integrated Gravitational Potential (GP) one arising from the Luminosity Distance (LD) perturbations.

    You must provide the two comoving distances s1 and s2 where to evaluate the function. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this TPCF is the following:

    \[\begin{split} + \xi^{\delta \int\!\phi}(s_1 , s_2, y ) = + D_1 \int_0^{s_2}\! \mathrm{d}\chi_2 \; + &\mathfrak{J}^{\delta \int\!\phi}_{\alpha} + \left[ + \mathfrak{J}^{\delta \int\!\phi}_{20} I_0^2 ( \Delta\chi_2 ) + + \right. \\ + & \left. + \mathfrak{J}^{\delta \int\!\phi}_{\beta} + \left( + \frac{1}{15} I_0^0 ( \Delta\chi_2 ) + + \frac{1}{21} I_2^0 ( \Delta\chi_2 ) + + \frac{1}{35} I_4^0 ( \Delta\chi_2 ) + \right) + \right] \,, +\end{split}\]

    with

    \[\begin{split} + \mathfrak{J}^{\delta \int\!\phi}_{\alpha} &= + - \frac{\mathcal{H}_0^2 \Omega_{\mathrm{M}0} D(\chi_2)}{3 a(\chi_2) s_2} + \left[ + s_2 \mathfrak{R}_2 \mathcal{H}(\chi_2) ( f(\chi_2) - 1) - 1 + \right] + \, , \\ + %%%%%%%%%%%%%%%%%%%%% + \mathfrak{J}^{\delta \int\!\phi}_{\beta} &= + f_1 \left[ + (3 y^2 - 1) \chi_2^2 - 4 y s_1 \chi_2 + 2 s_1^2 + \right] + \, , \\ + %%%%%%%%%%%%%%%%%%%%% + \mathfrak{J}^{\delta \int\!\phi}_{20} &= + - \Delta\chi_2^2 ( 3 b_1 + f_1) + \, , +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + +\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $\mathfrak{R}_1 = \mathfrak{R}(s_1)$, ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}(s) s} ;\]

    • $b_1$, $s_{\mathrm{b}, 1}$, $\mathit{f}_{\mathrm{evo}, 1}$ (and $b_2$, $s_{\mathrm{b}, 2}$, $\mathit{f}_{\mathrm{evo}, 2}$) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    The computation is made applying trapz() (see the Trapz Julia package) to the integrand function integrand_ξ_GNCxLD_Newtonian_IntegratedGP.

    Inputs

    • s1 and s2: comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • b1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:

      • if not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;
      • if you set one or more values, they will override the cosmo ones in this computation;
      • the two sets of values should be different only if you are interested in studing two galaxy species;
      • only the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities.
    • s_lim=nothing : parameter used in order to avoid the divergence of the $\mathcal{R}$ and $\mathfrak{R}$ denominators: when $0 \leq s \leq s_\mathrm{lim}$ the returned values are

      \[\forall \, s \in [ 0, s_\mathrm{lim} ] \; : \quad + \mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}_0 \, s_\mathrm{lim}} \; , \quad + \mathcal{R}(s) = 5 s_{\mathrm{b}} + + \frac{2 - 5 s_{\mathrm{b}}}{\mathcal{H}_0 \, s_\mathrm{lim}} + + \frac{\dot{\mathcal{H}}}{\mathcal{H}_0^2} - \mathit{f}_{\mathrm{evo}} \; .\]

      If nothing, the fault value stored in cosmo will be considered.

    • en::Float64 = 1e6: just a float number used in order to deal better with small numbers;

    • N_χs::Int = 100: number of points to be used for sampling the integral along the range (0, s2) (for χ2); it has been checked that with N_χs ≥ 100 the result is stable.

    See also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole

    source
    GaPSE.ξ_GNCxLD_Doppler_DopplerFunction
    ξ_GNCxLD_Doppler_Doppler(
    +    P1::Point, P2::Point, y, cosmo::Cosmology;
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, 
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing ) ::Float64
    +
    +ξ_GNCxLD_Doppler_Doppler(
    +    s1, s2, y, cosmo::Cosmology; 
    +    kwargs... ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Doppler effect arising from the Galaxy Number Counts (GNC) and the Doppler one arising from the Luminosity Distance (LD) perturbations.

    In the first method, you should pass the two Point (P1 and P2) where to evaluate the function, while in the second method (that internally recalls the first) you must provide the two corresponding comoving distances s1 and s2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this TPCF is the following:

    \[\begin{split} + \xi^{v_{\parallel} v_{\parallel}}( s_1, s_2 , y ) = + D_1 D_2 \, \mathfrak{J}_{\alpha}^{v_{\parallel} v_{\parallel}} + \left[ + \mathfrak{J}_{\beta}^{v_{\parallel} v_{\parallel}} + \left( + \frac{1}{45} I_0^0(s) + + \frac{2}{63} I_2^0 (s) + + \frac{1}{105} I_4^0(s) + \right) + + \mathfrak{J}^{v_{\parallel} v_{\parallel}}_{20} I_0^2 (s) + \right] + \, , +\end{split}\]

    with

    \[\begin{split} + \mathfrak{J}_{\alpha}^{v_{\parallel} v_{\parallel}} &= + - f_1 f_2\mathcal{H}_1 \mathcal{H}_2 \mathcal{R}_1 \mathfrak{R}_2 + \, , \\ + %%%%%%%%%%%%%% + \mathfrak{J}_{\beta}^{v_{\parallel} v_{\parallel}} &= + y^2 s_1 s_2 - 2 y (s_1^2 + s_2^2) + 3 s_1 s_2 + \, , \\ + %%%%%%%%%%%%%% + \mathfrak{J}_{20}^{v_{\parallel} v_{\parallel}} &= + \frac{1}{3} y s^2 + \, . +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + +\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $\mathfrak{R}_1 = \mathfrak{R}(s_1)$, ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}(s) s} ;\]

    • $b_1$, $s_{\mathrm{b}, 1}$, $\mathit{f}_{\mathrm{evo}, 1}$ (and $b_2$, $s_{\mathrm{b}, 2}$, $\mathit{f}_{\mathrm{evo}, 2}$) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    Inputs

    • P1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • b1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:

      • if not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;
      • if you set one or more values, they will override the cosmo ones in this computation;
      • the two sets of values should be different only if you are interested in studing two galaxy species;
      • only the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities.
    • s_lim=nothing : parameter used in order to avoid the divergence of the $\mathcal{R}$ and $\mathfrak{R}$ denominators: when $0 \leq s \leq s_\mathrm{lim}$ the returned values are

      \[\forall \, s \in [ 0, s_\mathrm{lim} ] \; : \quad + \mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}_0 \, s_\mathrm{lim}} \; , \quad + \mathcal{R}(s) = 5 s_{\mathrm{b}} + + \frac{2 - 5 s_{\mathrm{b}}}{\mathcal{H}_0 \, s_\mathrm{lim}} + + \frac{\dot{\mathcal{H}}}{\mathcal{H}_0^2} - \mathit{f}_{\mathrm{evo}} \; .\]

      If nothing, the fault value stored in cosmo will be considered.

    See also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole

    source
    GaPSE.ξ_GNCxLD_Doppler_LensingFunction
    ξ_GNCxLD_Doppler_Lensing(s1, s2, y, cosmo::Cosmology;
    +    en::Float64 = 1e6, N_χs::Int = 100,
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing,
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Doppler effect arising from the Galaxy Number Counts (GNC) and the Lensing one arising from the Luminosity Distance (LD) perturbations.

    You must provide the two comoving distances s1 and s2 where to evaluate the function. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this TPCF is the following:

    \[\begin{split} + \xi^{v_{\parallel}\kappa} (s_1, s_2, y) = + D_1 \int_0^{s_2} &\! \mathrm{d}\chi_2 \; + \mathfrak{J}^{\kappa v_{\parallel}}_{\alpha} \times \\ + &\left[ + \mathfrak{J}^{\kappa v_{\parallel}}_{00} I_0^0(\Delta\chi_2) + + \mathfrak{J}^{\kappa v_{\parallel}}_{02} I_2^0(\Delta\chi_2) + + \mathfrak{J}^{\kappa v_{\parallel}}_{04} I_4^0(\Delta\chi_2) + + \mathfrak{J}^{\kappa v_{\parallel}}_{20} I_0^2(\Delta\chi_2) + \right] +\end{split}\]

    with

    \[\begin{split} + \mathfrak{J}^{\kappa v_{\parallel}}_{\alpha} &= + - \mathcal{H}_0^2 \Omega_{\mathrm{M}0} f_1 \mathcal{H}_1 \mathcal{R}_1 + \frac{D(\chi_2) (\chi_2 - s_2)}{a(\chi_2) s_2} + \, , \\ + %%%%%%%%%%%%%%%%%%%%%%%% + \mathfrak{J}^{\kappa v_{\parallel}}_{00} & = + \frac{1}{15} + \left[ + \chi_2^2 y + \chi_2(4 y^2 - 3) s_1 - 2 y s_1^2 + \right] + \, , \\ + %%%%%%%%%%%%%%%%%%%%%%%% + \mathfrak{J}^{\kappa v_{\parallel}}_{02} & = + \frac{1}{42 \Delta\chi_2^2} + \left[ + 4 \chi_2^4 y + 4 \chi_2^3 (2 y^2 - 3) s_1 + + \chi_2^2 y (11 - 23 y^2) s_1^2 + + \right.\\ + &\left.\qquad\qquad\qquad + \chi_2 (23 y^2 - 3) s_1^3 - 8 y s_1^4 + \right] \nonumber + \, , \\ + %%%%%%%%%%%%%%%%%%%%%%%% + \mathfrak{J}^{\kappa v_{\parallel}}_{04} & = + \frac{1}{70 \Delta\chi_2^2} + \left[ + 2\chi_2^4 y + 2 \chi_2^3 (2 y^2 - 3) s_1 - + \chi_2^2 y (y^2 + 5) s_1^2 + + \right.\\ + &\left.\qquad\qquad\qquad + \chi_2 (y^2 + 9) s_1^3 - 4 y s_1^4 + \right] \nonumber + \, , \\ + %%%%%%%%%%%%%%%%%%%%%%%% + \mathfrak{J}^{\kappa v_{\parallel}}_{20} & = y \Delta\chi_2^2 + \, , +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + +\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $\mathfrak{R}_1 = \mathfrak{R}(s_1)$, ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}(s) s} ;\]

    • $b_1$, $s_{\mathrm{b}, 1}$, $\mathit{f}_{\mathrm{evo}, 1}$ (and $b_2$, $s_{\mathrm{b}, 2}$, $\mathit{f}_{\mathrm{evo}, 2}$) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    The computation is made applying trapz() (see the Trapz Julia package) to the integrand function integrand_ξ_GNCxLD_Doppler_Lensing.

    Inputs

    • s1 and s2: comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • b1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:

      • if not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;
      • if you set one or more values, they will override the cosmo ones in this computation;
      • the two sets of values should be different only if you are interested in studing two galaxy species;
      • only the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities.
    • s_lim=nothing : parameter used in order to avoid the divergence of the $\mathcal{R}$ and $\mathfrak{R}$ denominators: when $0 \leq s \leq s_\mathrm{lim}$ the returned values are

      \[\forall \, s \in [ 0, s_\mathrm{lim} ] \; : \quad + \mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}_0 \, s_\mathrm{lim}} \; , \quad + \mathcal{R}(s) = 5 s_{\mathrm{b}} + + \frac{2 - 5 s_{\mathrm{b}}}{\mathcal{H}_0 \, s_\mathrm{lim}} + + \frac{\dot{\mathcal{H}}}{\mathcal{H}_0^2} - \mathit{f}_{\mathrm{evo}} \; .\]

      If nothing, the fault value stored in cosmo will be considered.

    • en::Float64 = 1e6: just a float number used in order to deal better with small numbers;

    • N_χs::Int = 100: number of points to be used for sampling the integral along the range (0, s2) (for χ2); it has been checked that with N_χs ≥ 100 the result is stable.

    See also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole

    source
    GaPSE.ξ_GNCxLD_Doppler_LocalGPFunction
    ξ_GNCxLD_Doppler_LocalGP(P1::Point, P2::Point, y, cosmo::Cosmology;
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, 
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing ) ::Float64
    +
    +ξ_GNCxLD_Doppler_LocalGP(s1, s2, y, cosmo::Cosmology; kwargs... ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Doppler effect arising from the Galaxy Number Counts (GNC) and the Local Gravitational Potential (GP) one arising from the Luminosity Distance (LD) perturbations.

    In the first method, you should pass the two Point (P1 and P2) where to evaluate the function, while in the second method (that internally recalls the first) you must provide the two corresponding comoving distances s1 and s2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this TPCF is the following:

    \[\begin{split} + \xi^{v_{\parallel}\phi} (s_1, s_2, y) = + D_1 \, D_2 \, \mathfrak{J}^{v_{\parallel}\phi}_{31} I^3_1(s) +\end{split}\]

    with

    \[\begin{split} + \mathfrak{J}^{v_{\parallel}\phi}_{31} = + - \frac{3}{2 a_2} f_1 \mathcal{H}_1 \mathcal{R}_1 \mathcal{H}_0^2 + \Omega_{\mathrm{M}0} (1 + \mathfrak{R}_2)(y s_2 - s_1) + \, s^2 \, , +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + +\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $\mathfrak{R}_1 = \mathfrak{R}(s_1)$, ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}(s) s} ;\]

    • $b_1$, $s_{\mathrm{b}, 1}$, $\mathit{f}_{\mathrm{evo}, 1}$ (and $b_2$, $s_{\mathrm{b}, 2}$, $\mathit{f}_{\mathrm{evo}, 2}$) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    Inputs

    • P1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • b1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:

      • if not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;
      • if you set one or more values, they will override the cosmo ones in this computation;
      • the two sets of values should be different only if you are interested in studing two galaxy species;
      • only the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities.
    • s_lim=nothing : parameter used in order to avoid the divergence of the $\mathcal{R}$ and $\mathfrak{R}$ denominators: when $0 \leq s \leq s_\mathrm{lim}$ the returned values are

      \[\forall \, s \in [ 0, s_\mathrm{lim} ] \; : \quad + \mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}_0 \, s_\mathrm{lim}} \; , \quad + \mathcal{R}(s) = 5 s_{\mathrm{b}} + + \frac{2 - 5 s_{\mathrm{b}}}{\mathcal{H}_0 \, s_\mathrm{lim}} + + \frac{\dot{\mathcal{H}}}{\mathcal{H}_0^2} - \mathit{f}_{\mathrm{evo}} \; .\]

      If nothing, the fault value stored in cosmo will be considered.

    See also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole

    source
    GaPSE.ξ_GNCxLD_Doppler_IntegratedGPFunction
    ξ_GNCxLD_Doppler_IntegratedGP(s1, s2, y, cosmo::Cosmology;
    +    en::Float64 = 1e6, N_χs::Int = 100,
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, 
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Doppler effect arising from the Galaxy Number Counts (GNC) and the Integrated Gravitational Potential (GP) one arising from the Luminosity Distance (LD) perturbations.

    You must provide the two comoving distances s1 and s2 where to evaluate the function. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this TPCF is the following:

    \[\begin{split} + \xi^{v_{\parallel} \int\!\phi} (s_1, s_2, y) = + D_1 \int_0^{s_2} \! \mathrm{d}\chi_2 \; + \mathfrak{J}^{v_{\parallel} \int\!\phi}_{31} \,I_1^3(\Delta\chi_2) \, , +\end{split}\]

    with

    \[\begin{split} + \mathfrak{J}^{v_{\parallel} \int\!\phi}_{31} = + 3 f_1 \mathcal{H}_1 \mathcal{R}_1 \mathcal{H}_0^2 \Omega_{\mathrm{M}0} + \frac{ + D(\chi_2)(\chi_2 y - s_1) + }{ + a(\chi_2) s_2 + } \Delta\chi_2^2 \left[ + s_2 \mathfrak{R}_2 \mathcal{H}(\chi_2)(f_2 -1) - 1 + \right] \, , +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + +\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $\mathfrak{R}_1 = \mathfrak{R}(s_1)$, ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}(s) s} ;\]

    • $b_1$, $s_{\mathrm{b}, 1}$, $\mathit{f}_{\mathrm{evo}, 1}$ (and $b_2$, $s_{\mathrm{b}, 2}$, $\mathit{f}_{\mathrm{evo}, 2}$) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    The computation is made applying trapz() (see the Trapz Julia package) to the integrand function integrand_ξ_GNCxLD_Doppler_IntegratedGP.

    Inputs

    • s1 and s2: comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • b1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:

      • if not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;
      • if you set one or more values, they will override the cosmo ones in this computation;
      • the two sets of values should be different only if you are interested in studing two galaxy species;
      • only the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities.
    • s_lim=nothing : parameter used in order to avoid the divergence of the $\mathcal{R}$ and $\mathfrak{R}$ denominators: when $0 \leq s \leq s_\mathrm{lim}$ the returned values are

      \[\forall \, s \in [ 0, s_\mathrm{lim} ] \; : \quad + \mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}_0 \, s_\mathrm{lim}} \; , \quad + \mathcal{R}(s) = 5 s_{\mathrm{b}} + + \frac{2 - 5 s_{\mathrm{b}}}{\mathcal{H}_0 \, s_\mathrm{lim}} + + \frac{\dot{\mathcal{H}}}{\mathcal{H}_0^2} - \mathit{f}_{\mathrm{evo}} \; .\]

      If nothing, the fault value stored in cosmo will be considered.

    • en::Float64 = 1e6: just a float number used in order to deal better with small numbers;

    • N_χs::Int = 100: number of points to be used for sampling the integral along the range (0, s2) (for χ2); it has been checked that with N_χs ≥ 100 the result is stable.

    See also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole

    source
    GaPSE.ξ_GNCxLD_Lensing_DopplerFunction
    ξ_GNCxLD_Lensing_Doppler(
    +    s1, s2, y, cosmo::Cosmology;
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing,
    +	  𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,
    +    en::Float64=1e6, N_χs::Int=100 ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Lensing effect arising from the Galaxy Number Counts (GNC) and the Doppler one arising from the Luminosity Distance (LD) perturbations.

    You must provide the two comoving distances s1 and s2 where to evaluate the function. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this TPCF is the following:

    \[\begin{split} + \xi^{\kappa v_{\parallel}} (s_1, s_2, y) = + D_2 \int_0^{s_1} &\! \mathrm{d}\chi_1 \; + \mathfrak{J}^{\kappa v_{\parallel}}_{\alpha} \times \\ + &\left[ + \mathfrak{J}^{\kappa v_{\parallel}}_{00} I_0^0(\Delta\chi_1) + + \mathfrak{J}^{\kappa v_{\parallel}}_{02} I_2^0(\Delta\chi_1) + + \mathfrak{J}^{\kappa v_{\parallel}}_{04} I_4^0(\Delta\chi_1) + + \mathfrak{J}^{\kappa v_{\parallel}}_{20} I_0^2(\Delta\chi_1) + \right], +\end{split}\]

    with

    \[\begin{split} + \mathfrak{J}^{\kappa v_{\parallel}}_{\alpha} &= + - \mathcal{H}_0^2 \Omega_{\mathrm{M}0} f_2 \mathcal{H}_2 \mathfrak{R}_2 + \frac{D(\chi_1) (\chi_1 - s_1)}{a(\chi_1) s_1} + (5 s_{\mathrm{b}, 1} - 2 ) + \, , \\ + %%%%%%%%%%%%%%%%%%%%%%%% + \mathfrak{J}^{\kappa v_{\parallel}}_{00} & = + \frac{1}{15} + \left[ + \chi_1^2 y + \chi_1(4 y^2 - 3) s_2 - 2 y s_2^2 + \right] + \, , \\ + %%%%%%%%%%%%%%%%%%%%%%%% + \mathfrak{J}^{\kappa v_{\parallel}}_{02} & = + \frac{1}{42 \Delta\chi_1^2} + \left[ + 4 \chi_1^4 y + 4 \chi_1^3 (2 y^2 - 3) s_2 + + \chi_1^2 y (11 - 23 y^2) s_2^2 + + \right.\\ + &\left.\qquad\qquad\qquad + \chi_1 (23 y^2 - 3) s_2^3 - 8 y s_2^4 + \right] \nonumber + \, , \\ + %%%%%%%%%%%%%%%%%%%%%%%% + \mathfrak{J}^{\kappa v_{\parallel}}_{04} & = + \frac{1}{70 \Delta\chi_1^2} + \left[ + 2\chi_1^4 y + 2 \chi_1^3 (2 y^2 - 3) s_2 - + \chi_1^2 y (y^2 + 5) s_2^2 + + \right.\\ + &\left.\qquad\qquad\qquad + \chi_1(y^2 + 9) s_2^3 - 4 y s_2^4 + \right] \nonumber + \, , \\ + %%%%%%%%%%%%%%%%%%%%%%%% + \mathfrak{J}^{\kappa v_{\parallel}}_{20} & = y \Delta\chi_1^2 + \,, +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + +\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $\mathfrak{R}_1 = \mathfrak{R}(s_1)$, ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}(s) s} ;\]

    • $b_1$, $s_{\mathrm{b}, 1}$, $\mathit{f}_{\mathrm{evo}, 1}$ (and $b_2$, $s_{\mathrm{b}, 2}$, $\mathit{f}_{\mathrm{evo}, 2}$) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    The computation is made applying trapz() (see the Trapz Julia package) to the integrand function integrand_ξ_GNCxLD_Lensing_Doppler.

    Inputs

    • s1 and s2: comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • b1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:

      • if not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;
      • if you set one or more values, they will override the cosmo ones in this computation;
      • the two sets of values should be different only if you are interested in studing two galaxy species;
      • only the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities.
    • s_lim=nothing : parameter used in order to avoid the divergence of the $\mathcal{R}$ and $\mathfrak{R}$ denominators: when $0 \leq s \leq s_\mathrm{lim}$ the returned values are

      \[\forall \, s \in [ 0, s_\mathrm{lim} ] \; : \quad + \mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}_0 \, s_\mathrm{lim}} \; , \quad + \mathcal{R}(s) = 5 s_{\mathrm{b}} + + \frac{2 - 5 s_{\mathrm{b}}}{\mathcal{H}_0 \, s_\mathrm{lim}} + + \frac{\dot{\mathcal{H}}}{\mathcal{H}_0^2} - \mathit{f}_{\mathrm{evo}} \; .\]

      If nothing, the fault value stored in cosmo will be considered.

    • en::Float64 = 1e6: just a float number used in order to deal better with small numbers;

    • N_χs::Int = 100: number of points to be used for sampling the integral along the range (0, s1) (for χ1); it has been checked that with N_χs ≥ 100 the result is stable.

    See also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole

    source
    GaPSE.ξ_GNCxLD_Lensing_LensingFunction
    ξ_GNCxLD_Lensing_Lensing(
    +    P1::Point, P2::Point, y, cosmo::Cosmology;
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing,
    +	  𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,
    +    en::Float64=1e6, N_χs_2::Int=100 ) ::Float64
    +
    +ξ_GNCxLD_Lensing_Lensing(s1, s2, y, cosmo::Cosmology; kwargs... ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Lensing effect arising from the Galaxy Number Counts (GNC) and the Lensing one arising from the Luminosity Distance (LD) perturbations.

    In the first method, you should pass the two extreme Points (P1 and P2) where to evaluate the function. In the second method (that internally recalls the first), you must provide the two corresponding comoving distances s1, s2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this TPCF is the following:

    \[\begin{split} + \xi^{\kappa\kappa} (s_1, s_2, y) = + \int_0^{s_1} \! \mathrm{d}\chi_1 \int_0^{s_2} \! \mathrm{d}\chi_2\; + \mathfrak{J}^{\kappa\kappa}_{\alpha} + &\left[ + \mathfrak{J}^{\kappa\kappa}_{00} I_0^0(\Delta\chi) + + \mathfrak{J}^{\kappa\kappa}_{02} I_2^0(\Delta\chi) + + \right.\\ + &\left. + \mathfrak{J}^{\kappa\kappa}_{31} I_1^3(\Delta\chi) + + \mathfrak{J}^{\kappa\kappa}_{22} I_2^2(\Delta\chi) + \right] \nonumber \, , +\end{split}\]

    with

    \[\begin{split} + \mathfrak{J}^{\kappa\kappa}_{\alpha} & = + - \frac{ + \mathcal{H}_0^4 \Omega_{\mathrm{M}0}^2 D(\chi_1) D(\chi_2) + }{ + s_1 s_2 a(\chi_1) a(\chi_2)} + (\chi_1 - s_1)(\chi_2 - s_2) + (5 s_{\mathrm{b}, 2} - 1) + \, , \\ + %%%%&%%%%%%%%%%%%% + \mathfrak{J}^{\kappa\kappa}_{00} & = + -\frac{ 3 \chi_1^2 \chi_2^2}{4 \Delta\chi^4} (y^2 - 1) + \left[ + 8 y (\chi_1^2 + \chi_2^2) - 9\chi_1\chi_2y^2 - + 7\chi_1\chi_2 + \right] + \, , \\ + %%%%&%%%%%%%%%%%%% + \mathfrak{J}^{\kappa\kappa}_{02} & = + -\frac{ 3 \chi_1^2 \chi_2^2}{2 \Delta\chi^4}(y^2 - 1) + \left[ + 4 y (\chi_1^2 + \chi_2^2) - 3 \chi_1 \chi_2 y^2 - + 5 \chi_1 \chi_2 + \right] + \, , \\ + %%%%%%%%%%%%%%%%%% + \mathfrak{J}^{\kappa\kappa}_{31} & = 9 y \Delta\chi^2 + \, , \\ + %%%%%%%%%%%%%%%%%% + \mathfrak{J}^{\kappa\kappa}_{22} & = + \frac{9 \chi_1 \chi_2}{4 \Delta\chi^4} + \left[ + 2(\chi_1^4 + \chi_2^4)(7 y^2 - 3) - + 16 y \chi_1 \chi_2 (\chi_1^2 + \chi_2^2)(y^2 + 1) + + \right.\\ + &\left.\qquad\qquad\qquad + \chi_1^2 \chi_2^2 (11y^4 + 14y^2 + 23) + \right] + \, , +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + +\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $\mathfrak{R}_1 = \mathfrak{R}(s_1)$, ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}(s) s} ;\]

    • $b_1$, $s_{\mathrm{b}, 1}$, $\mathit{f}_{\mathrm{evo}, 1}$ (and $b_2$, $s_{\mathrm{b}, 2}$, $\mathit{f}_{\mathrm{evo}, 2}$) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    The computation is made applying trapz() (see the Trapz Julia package) to the integrand function integrand_ξ_GNCxLD_Lensing_Lensing.

    Inputs

    • P1::Point, P2::Point or s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • b1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:

      • if not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;
      • if you set one or more values, they will override the cosmo ones in this computation;
      • the two sets of values should be different only if you are interested in studing two galaxy species;
      • only the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities.
    • s_lim=nothing : parameter used in order to avoid the divergence of the $\mathcal{R}$ and $\mathfrak{R}$ denominators: when $0 \leq s \leq s_\mathrm{lim}$ the returned values are

      \[\forall \, s \in [ 0, s_\mathrm{lim} ] \; : \quad + \mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}_0 \, s_\mathrm{lim}} \; , \quad + \mathcal{R}(s) = 5 s_{\mathrm{b}} + + \frac{2 - 5 s_{\mathrm{b}}}{\mathcal{H}_0 \, s_\mathrm{lim}} + + \frac{\dot{\mathcal{H}}}{\mathcal{H}_0^2} - \mathit{f}_{\mathrm{evo}} \; .\]

      If nothing, the fault value stored in cosmo will be considered.

    • en::Float64 = 1e6: just a float number used in order to deal better with small numbers;

    • N_χs_2::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ1) and (0, s2) (for χ2); it has been checked that with N_χs_2 ≥ 50 the result is stable.

    See also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole

    source
    GaPSE.ξ_GNCxLD_Lensing_LocalGPFunction
      ξ_GNCxLD_Lensing_LocalGP(
    +	    s1, s2, y, cosmo::Cosmology;
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing,
    +	  𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,
    +	  en::Float64 = 1e6, N_χs::Int = 100) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Lensing effect arising from the Galaxy Number Counts (GNC) and the Local Gravitational Potential (GP) one arising from the Luminosity Distance (LD) perturbations.

    You must provide the two comoving distances s1 and s2 where to evaluate the function. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this TPCF is the following:

    \[\begin{split} + \xi^{\kappa \phi} (s_1, s_2, y) = + D_2 \int_0^{s_1} \! \mathrm{d}\chi_1 \; + \mathfrak{J}^{\kappa \phi}_{\alpha} \left[ + \mathfrak{J}^{\kappa \phi}_{31} I_1^3(\Delta\chi_1) + + \mathfrak{J}^{\kappa \phi}_{22} I_2^2(\Delta\chi_1) + \right] \nonumber \, , +\end{split}\]

    with

    \[\begin{split} + \mathfrak{J}^{\kappa \phi}_{\alpha} &= + - \frac{ + 9 \mathcal{H}_0^4 \Omega_{\mathrm{M}0}^2 s_2 D(\chi_1)(s_1 - \chi_1) + }{ + 4 a_2 s_1a(\chi_1) + } + (1 + \mathfrak{R}_2) + (5 s_{\mathrm{b}, 1} - 2) + \, , \\ + %%%%%%%%%%%%%%%%%%%%%%%% + \mathfrak{J}^{\kappa \phi}_{31} & = -2 y \Delta\chi_1^2 + \, , \\ + %%%%%%%%%%%%%%%%%%%%%%%% + \mathfrak{J}^{\kappa \phi}_{22} & = \chi_1 s_2 (1 - y^2) + \,, +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + +\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $\mathfrak{R}_1 = \mathfrak{R}(s_1)$, ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}(s) s} ;\]

    • $b_1$, $s_{\mathrm{b}, 1}$, $\mathit{f}_{\mathrm{evo}, 1}$ (and $b_2$, $s_{\mathrm{b}, 2}$, $\mathit{f}_{\mathrm{evo}, 2}$) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    The computation is made applying trapz() (see the Trapz Julia package) to the integrand function integrand_ξ_GNCxLD_Lensing_LocalGP.

    Inputs

    • s1 and s2: comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • b1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:

      • if not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;
      • if you set one or more values, they will override the cosmo ones in this computation;
      • the two sets of values should be different only if you are interested in studing two galaxy species;
      • only the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities.
    • s_lim=nothing : parameter used in order to avoid the divergence of the $\mathcal{R}$ and $\mathfrak{R}$ denominators: when $0 \leq s \leq s_\mathrm{lim}$ the returned values are

      \[\forall \, s \in [ 0, s_\mathrm{lim} ] \; : \quad + \mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}_0 \, s_\mathrm{lim}} \; , \quad + \mathcal{R}(s) = 5 s_{\mathrm{b}} + + \frac{2 - 5 s_{\mathrm{b}}}{\mathcal{H}_0 \, s_\mathrm{lim}} + + \frac{\dot{\mathcal{H}}}{\mathcal{H}_0^2} - \mathit{f}_{\mathrm{evo}} \; .\]

      If nothing, the fault value stored in cosmo will be considered.

    • en::Float64 = 1e6: just a float number used in order to deal better with small numbers;

    • N_χs::Int = 100: number of points to be used for sampling the integral along the range (0, s1) (for χ1); it has been checked that with N_χs ≥ 100 the result is stable.

    See also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole

    source
    GaPSE.ξ_GNCxLD_Lensing_IntegratedGPFunction
    ξ_GNCxLD_Lensing_IntegratedGP(
    +    P1::Point, P2::Point, y, cosmo::Cosmology;
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing,
    +	  𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,
    +    en::Float64 = 1e6, N_χs_2::Int = 100 ) ::Float64
    +
    +ξ_GNCxLD_Lensing_IntegratedGP(s1, s2, y, cosmo::Cosmology; kwargs... ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Lensing effect arising from the Galaxy Number Counts (GNC) and the Integrated Gravitational Potential (GP) one arising from the Luminosity Distance (LD) perturbations.

    In the first method, you should pass the two extreme Points (P1 and P2) where to evaluate the function. In the second method (that internally recalls the first), you must provide the two corresponding comoving distances s1, s2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this TPCF is the following:

    \[\begin{split} + \xi^{\kappa\int\!\phi} (s_1, s_2, y) = + \int_0^{s_1} \! \mathrm{d}\chi_1 \int_0^{s_2} \! \mathrm{d}\chi_2 \; + \mathfrak{J}^{\kappa\int\!\phi}_{\alpha} + \left[ + \mathfrak{J}^{\kappa\int\!\phi}_{31} I_1^3(\Delta\chi) + + \mathfrak{J}^{\kappa\int\!\phi}_{22} I_2^2(\Delta\chi) + \right] \, , +\end{split}\]

    with

    \[\begin{split} + \mathfrak{J}^{\kappa\int\!\phi}_{\alpha} & = + \frac{9}{2} \mathcal{H}_0^4 \Omega_{\mathrm{M}0}^2 + \frac{ + D(\chi_1) D(\chi_2) \chi_2 (s_1 - \chi_1) + }{ + s_1 s_2 a(\chi_1) a(\chi_2) + } (5 s_{\mathrm{b}, 1} - 2 ) + \left[ + s_2 \mathfrak{R}_2 \mathcal{H}(\chi_2) (f(\chi_2) - 1) - 1 + \right] + \, , \\ + %%%%%%%%%%%%%%%%%%%%%%%% + \mathfrak{J}^{\kappa\int\!\phi}_{31} & = -2 y \Delta\chi^2 + \, , \\ + %%%%%%%%%%%%%%%%%%%%%%%% + \mathfrak{J}^{\kappa\int\!\phi}_{22} & = \chi_1 \chi_2(1 - y^2) + \, , +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + +\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $\mathfrak{R}_1 = \mathfrak{R}(s_1)$, ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}(s) s} ;\]

    • $b_1$, $s_{\mathrm{b}, 1}$, $\mathit{f}_{\mathrm{evo}, 1}$ (and $b_2$, $s_{\mathrm{b}, 2}$, $\mathit{f}_{\mathrm{evo}, 2}$) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    The computation is made applying trapz() (see the Trapz Julia package) to the integrand function integrand_ξ_GNCxLD_Lensing_IntegratedGP.

    Inputs

    • P1::Point, P2::Point or s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • b1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:

      • if not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;
      • if you set one or more values, they will override the cosmo ones in this computation;
      • the two sets of values should be different only if you are interested in studing two galaxy species;
      • only the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities.
    • s_lim=nothing : parameter used in order to avoid the divergence of the $\mathcal{R}$ and $\mathfrak{R}$ denominators: when $0 \leq s \leq s_\mathrm{lim}$ the returned values are

      \[\forall \, s \in [ 0, s_\mathrm{lim} ] \; : \quad + \mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}_0 \, s_\mathrm{lim}} \; , \quad + \mathcal{R}(s) = 5 s_{\mathrm{b}} + + \frac{2 - 5 s_{\mathrm{b}}}{\mathcal{H}_0 \, s_\mathrm{lim}} + + \frac{\dot{\mathcal{H}}}{\mathcal{H}_0^2} - \mathit{f}_{\mathrm{evo}} \; .\]

      If nothing, the fault value stored in cosmo will be considered.

    • en::Float64 = 1e6: just a float number used in order to deal better with small numbers;

    • N_χs_2::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ1) and (0, s2) (for χ2); it has been checked that with N_χs_2 ≥ 50 the result is stable.

    See also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole

    source
    GaPSE.ξ_GNCxLD_LocalGP_DopplerFunction
    ξ_GNCxLD_LocalGP_Doppler(P1::Point, P2::Point, y, cosmo::Cosmology;
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing,
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing ) ::Float64
    +
    +ξ_GNCxLD_LocalGP_Doppler(
    +    s1, s2, y, cosmo::Cosmology; kwargs... ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Local Gravitational Potential (GP) effect arising from the Galaxy Number Counts (GNC) and the Doppler one arising from the Luminosity Distance (LD) perturbations.

    In the first method, you should pass the two Point (P1 and P2) where to evaluate the function, while in the second method (that internally recalls the first) you must provide the two corresponding comoving distances s1 and s2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this TPCF is the following:

    \[\begin{split} + \xi^{\phi v_{\parallel}} ( s_1 , s_2, y ) = + D_1 D_2 \,\mathfrak{J}^{\phi v_{\parallel}}_{\alpha} + \left[ + \frac{1}{90} I_0^0 (s) + + \frac{1}{63} I_2^0 (s) + + \frac{1}{210} I_4^0 (s) + + \frac{1}{6} I_0^2 (s) + \right] \; , +\end{split}\]

    with

    \[\begin{split} + \mathfrak{J}^{\phi v_{\parallel}}_{\alpha} &= + - \frac{f_2 \mathcal{H}_2 \mathfrak{R}_2 s^2}{a_1} (y s_1 - s_2) + \times\\ + &\qquad\qquad\qquad + \left[ + 2 f_1 a_1 \mathcal{H}_1^2 (\mathit{f}_{\mathrm{evo}, 1} - 3) + + 3 \mathcal{H}_0^2 \Omega_{\mathrm{M}0} (f_1 + \mathcal{R}_1 + 5 s_{\mathrm{b}, 1} - 2) + \right] + \,, +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + +\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $\mathfrak{R}_1 = \mathfrak{R}(s_1)$, ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}(s) s} ;\]

    • $b_1$, $s_{\mathrm{b}, 1}$, $\mathit{f}_{\mathrm{evo}, 1}$ (and $b_2$, $s_{\mathrm{b}, 2}$, $\mathit{f}_{\mathrm{evo}, 2}$) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    Inputs

    • P1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • b1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:

      • if not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;
      • if you set one or more values, they will override the cosmo ones in this computation;
      • the two sets of values should be different only if you are interested in studing two galaxy species;
      • only the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities.
    • s_lim=nothing : parameter used in order to avoid the divergence of the $\mathcal{R}$ and $\mathfrak{R}$ denominators: when $0 \leq s \leq s_\mathrm{lim}$ the returned values are

      \[\forall \, s \in [ 0, s_\mathrm{lim} ] \; : \quad + \mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}_0 \, s_\mathrm{lim}} \; , \quad + \mathcal{R}(s) = 5 s_{\mathrm{b}} + + \frac{2 - 5 s_{\mathrm{b}}}{\mathcal{H}_0 \, s_\mathrm{lim}} + + \frac{\dot{\mathcal{H}}}{\mathcal{H}_0^2} - \mathit{f}_{\mathrm{evo}} \; .\]

      If nothing, the fault value stored in cosmo will be considered.

    See also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole

    source
    GaPSE.ξ_GNCxLD_LocalGP_LensingFunction
    ξ_GNCxLD_LocalGP_Lensing(
    +	s1, s2, y, cosmo::Cosmology;
    +	b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing,
    +	𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,
    +	en::Float64 = 1e6, N_χs::Int = 100) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Local Gravitational Potential (GP) effect arising from the Galaxy Number Counts (GNC) and the Lensing one arising from the Luminosity Distance (LD) perturbations.

    You must provide the two comoving distances s1 and s2 where to evaluate the function. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this TPCF is the following:

    \[\begin{split} + \xi^{\phi \kappa} (s_1 , s_2, y ) &= + D_1 \, \int_0^{s_2}\! \mathrm{d}\chi_2 \; + \mathfrak{J}^{\phi \kappa}_{\alpha}\left[ + \mathfrak{J}^{\phi \kappa}_{20} I_0^2 ( \Delta \chi_2 ) + + \right.\nonumber \\ + &\left.\qquad + \mathfrak{J}^{\phi \kappa}_{\beta} + \left( + \frac{1}{60} I_0^0 ( \Delta \chi_2 ) + + \frac{1}{42} I_2^0 ( \Delta \chi_2 ) + + \frac{1}{140} I_4^0 ( \Delta \chi_2 ) + \right) + \right] \, , +\end{split}\]

    with

    \[\begin{split} + \mathfrak{J}^{\phi \kappa}_{\alpha} &= + - \frac{\mathcal{H}_0^2 \Omega_{\mathrm{M}0} s_1 D(\chi_2)}{ a_1 s_2 a(\chi_2)} + (\chi_2 - s_2) + \times\\ + &\qquad\qquad + \left[ + 2 f_1 a_1 \mathcal{H}_1^2 (\mathit{f}_{\mathrm{evo}, 1} - 3) + + 3 \mathcal{H}_0^2 \Omega_{\mathrm{M}0} (f_1 + \mathcal{R}_1 + 5 s_{\mathrm{b}, 1} - 2) + \right] \nonumber + \, , \\ + %%%%%%%%%%%%%%%%%%% + \mathfrak{J}^{\phi \kappa}_{\beta} &= + 2 y \chi_2^2 - \chi_2 s_1 (y^2 + 3) + 2 y s_1^2 + \, ,\\ + %%%%%%%%%%%%%%%%%%% + \mathfrak{J}^{\phi \kappa}_{20} &= \frac{1}{2} y \Delta\chi_2^2\, , +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + +\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $\mathfrak{R}_1 = \mathfrak{R}(s_1)$, ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}(s) s} ;\]

    • $b_1$, $s_{\mathrm{b}, 1}$, $\mathit{f}_{\mathrm{evo}, 1}$ (and $b_2$, $s_{\mathrm{b}, 2}$, $\mathit{f}_{\mathrm{evo}, 2}$) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    The computation is made applying trapz() (see the Trapz Julia package) to the integrand function integrand_ξ_GNCxLD_LocalGP_Lensing.

    Inputs

    • s1 and s2: comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • b1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:

      • if not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;
      • if you set one or more values, they will override the cosmo ones in this computation;
      • the two sets of values should be different only if you are interested in studing two galaxy species;
      • only the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities.
    • s_lim=nothing : parameter used in order to avoid the divergence of the $\mathcal{R}$ and $\mathfrak{R}$ denominators: when $0 \leq s \leq s_\mathrm{lim}$ the returned values are

      \[\forall \, s \in [ 0, s_\mathrm{lim} ] \; : \quad + \mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}_0 \, s_\mathrm{lim}} \; , \quad + \mathcal{R}(s) = 5 s_{\mathrm{b}} + + \frac{2 - 5 s_{\mathrm{b}}}{\mathcal{H}_0 \, s_\mathrm{lim}} + + \frac{\dot{\mathcal{H}}}{\mathcal{H}_0^2} - \mathit{f}_{\mathrm{evo}} \; .\]

      If nothing, the fault value stored in cosmo will be considered.

    • en::Float64 = 1e6: just a float number used in order to deal better with small numbers;

    • N_χs::Int = 100: number of points to be used for sampling the integral along the range (0, s2) (for χ2); it has been checked that with N_χs ≥ 100 the result is stable.

    See also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole

    source
    GaPSE.ξ_GNCxLD_LocalGP_LocalGPFunction
    ξ_GNCxLD_LocalGP_LocalGP(P1::Point, P2::Point, y, cosmo::Cosmology;
    +	b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing,
    +	𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing ) ::Float64
    +
    +ξ_GNCxLD_LocalGP_LocalGP(
    +	s1, s2, y, cosmo::Cosmology; kwargs... ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Local Gravitational pential (GP) effect arising from the Galaxy Number Counts (GNC) and the Local GP one arising from the Luminosity Distance (LD) perturbations.

    In the first method, you should pass the two Point (P1 and P2) where to evaluate the function, while in the second method (that internally recalls the first) you must provide the two corresponding comoving distances s1 and s2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this TPCF is the following:

    \[\begin{split} + \xi^{\phi\phi}( s_1 , s_2, y ) &= + D_1 D_2 \, \mathfrak{J}_{40}^{\phi\phi}( s_1, s_2 ) \tilde{I}_0^4 (s) + \, , +\end{split}\]

    with

    \[\begin{split} + \mathfrak{J}_{04}^{\phi\phi} (s_1, s_2) &= + - \frac{3 \mathcal{H}_0^2 \Omega_{\mathrm{M}0} s^4}{4 a_1 a_2} + (1 + \mathfrak{R}_2) + \left[ + 2 a_1 f_1( \mathit{f}_{\mathrm{evo}, 1}-3) \mathcal{H}_1^2 + + 3 \mathcal{H}_0^2 \Omega_{\mathrm{M}0} (f_1 + \mathcal{R}_1 + 5 s_{\mathrm{b}, 1} - 2) + \right] + \, , +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + +\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $\mathfrak{R}_1 = \mathfrak{R}(s_1)$, ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}(s) s} ;\]

    • $b_1$, $s_{\mathrm{b}, 1}$, $\mathit{f}_{\mathrm{evo}, 1}$ (and $b_2$, $s_{\mathrm{b}, 2}$, $\mathit{f}_{\mathrm{evo}, 2}$) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    Inputs

    • P1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • b1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:

      • if not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;
      • if you set one or more values, they will override the cosmo ones in this computation;
      • the two sets of values should be different only if you are interested in studing two galaxy species;
      • only the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities.
    • s_lim=nothing : parameter used in order to avoid the divergence of the $\mathcal{R}$ and $\mathfrak{R}$ denominators: when $0 \leq s \leq s_\mathrm{lim}$ the returned values are

      \[\forall \, s \in [ 0, s_\mathrm{lim} ] \; : \quad + \mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}_0 \, s_\mathrm{lim}} \; , \quad + \mathcal{R}(s) = 5 s_{\mathrm{b}} + + \frac{2 - 5 s_{\mathrm{b}}}{\mathcal{H}_0 \, s_\mathrm{lim}} + + \frac{\dot{\mathcal{H}}}{\mathcal{H}_0^2} - \mathit{f}_{\mathrm{evo}} \; .\]

      If nothing, the fault value stored in cosmo will be considered.

    See also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole

    source
    GaPSE.ξ_GNCxLD_LocalGP_IntegratedGPFunction
    ξ_GNCxLD_LocalGP_IntegratedGP(
    +	s1, s2, y, cosmo::Cosmology;
    +	b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing,
    +	𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,
    +	en::Float64=1e6, N_χs::Int=100 ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Local Gravitational Potential (GP) effect arising from the Galaxy Number Counts (GNC) and the Integrated GP one arising from the Luminosity Distance (LD) perturbations.

    You must provide the two comoving distances s1 and s2 where to evaluate the function. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this TPCF is the following:

    \[\begin{split} + \xi^{\phi \int\!\phi} ( s_1 , s_2, y ) = + D_1 \int_0^{s_2}\! \mathrm{d}\chi_2 \; + \mathfrak{J}^{\phi \int\!\phi}_{40} I_0^4 ( \Delta\chi_2 ) + \, , +\end{split}\]

    with

    \[\begin{split} + \mathfrak{J}^{\phi \int\!\phi}_{40} &= + - \frac{ + 3 \Delta\chi_2^4 \mathcal{H}_0^2 \Omega_{\mathrm{M}0} D(\chi_2) + }{ + 2 s_2 a(\chi_2) a_1 + } \left[ + s_2 \mathcal{H}(\chi_2) \mathfrak{R}_2 ( f(\chi_2) - 1 ) - 1 + \right] + \times\\ + &\qquad\qquad\qquad + \left[ + 2 a_1 f_1 \mathcal{H}_1^2 (\mathit{f}_{\mathrm{evo}, 1} - 3) + + 3 \mathcal{H}_0^2 \Omega_{\mathrm{M}0} (f_1 + \mathcal{R}_1 + 5 s_{\mathrm{b}, 1} - 2) + \right] + \, , +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + +\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $\mathfrak{R}_1 = \mathfrak{R}(s_1)$, ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}(s) s} ;\]

    • $b_1$, $s_{\mathrm{b}, 1}$, $\mathit{f}_{\mathrm{evo}, 1}$ (and $b_2$, $s_{\mathrm{b}, 2}$, $\mathit{f}_{\mathrm{evo}, 2}$) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    The computation is made applying trapz() (see the Trapz Julia package) to the integrand function integrand_ξ_GNCxLD_LocalGP_IntegratedGP.

    Inputs

    • s1 and s2: comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • b1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:

      • if not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;
      • if you set one or more values, they will override the cosmo ones in this computation;
      • the two sets of values should be different only if you are interested in studing two galaxy species;
      • only the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities.
    • s_lim=nothing : parameter used in order to avoid the divergence of the $\mathcal{R}$ and $\mathfrak{R}$ denominators: when $0 \leq s \leq s_\mathrm{lim}$ the returned values are

      \[\forall \, s \in [ 0, s_\mathrm{lim} ] \; : \quad + \mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}_0 \, s_\mathrm{lim}} \; , \quad + \mathcal{R}(s) = 5 s_{\mathrm{b}} + + \frac{2 - 5 s_{\mathrm{b}}}{\mathcal{H}_0 \, s_\mathrm{lim}} + + \frac{\dot{\mathcal{H}}}{\mathcal{H}_0^2} - \mathit{f}_{\mathrm{evo}} \; .\]

      If nothing, the fault value stored in cosmo will be considered.

    • en::Float64 = 1e6: just a float number used in order to deal better with small numbers;

    • N_χs::Int = 100: number of points to be used for sampling the integral along the range (0, s2) (for χ2); it has been checked that with N_χs ≥ 100 the result is stable.

    See also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole

    source
    GaPSE.ξ_GNCxLD_IntegratedGP_DopplerFunction
    ξ_GNCxLD_IntegratedGP_Doppler(s1, s2, y, cosmo::Cosmology;
    +    en::Float64 = 1e6, N_χs::Int = 100, 
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, 
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Integrated Gravitational Potential (GP) effect arising from the Galaxy Number Counts (GNC) and the Doppler one arising from the Luminosity Distance (LD) perturbations.

    You must provide the two comoving distances s1 and s2 where to evaluate the function. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this TPCF is the following:

    \[\begin{split} + \xi^{\int\!\phi \, v_{\parallel}} (s_1, s_2, y) = + D_2 \int_0^{s_1} \mathrm{d}\chi_1 \; + \mathfrak{J}^{\int\!\phi \, v_{\parallel}}_{31} \,I_1^3(\Delta\chi_1) \, +\end{split}\]

    with

    \[\begin{split} + \mathfrak{J}^{\int\!\phi \, v_{\parallel}}_{31} = + - 3 f_2 \mathcal{H}_2 \mathfrak{R}_2 \mathcal{H}_0^2 \Omega_{\mathrm{M}0} + \frac{ + D(\chi_1)(s_2 - \chi_1 y) + }{ + a(\chi_1) s_1 + } \Delta\chi_1^2 \left[ + s_1 \mathcal{R}_1 \mathcal{H}(\chi_1)(f_1 - 1) - 5 s_{\mathrm{b}, 1} + 2 + \right] \, , +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + +\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $\mathfrak{R}_1 = \mathfrak{R}(s_1)$, ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}(s) s} ;\]

    • $b_1$, $s_{\mathrm{b}, 1}$, $\mathit{f}_{\mathrm{evo}, 1}$ (and $b_2$, $s_{\mathrm{b}, 2}$, $\mathit{f}_{\mathrm{evo}, 2}$) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    The computation is made applying trapz() (see the Trapz Julia package) to the integrand function integrand_ξ_GNCxLD_IntegratedGP_Doppler.

    Inputs

    • s1 and s2: comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • b1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:

      • if not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;
      • if you set one or more values, they will override the cosmo ones in this computation;
      • the two sets of values should be different only if you are interested in studing two galaxy species;
      • only the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities.
    • s_lim=nothing : parameter used in order to avoid the divergence of the $\mathcal{R}$ and $\mathfrak{R}$ denominators: when $0 \leq s \leq s_\mathrm{lim}$ the returned values are

      \[\forall \, s \in [ 0, s_\mathrm{lim} ] \; : \quad + \mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}_0 \, s_\mathrm{lim}} \; , \quad + \mathcal{R}(s) = 5 s_{\mathrm{b}} + + \frac{2 - 5 s_{\mathrm{b}}}{\mathcal{H}_0 \, s_\mathrm{lim}} + + \frac{\dot{\mathcal{H}}}{\mathcal{H}_0^2} - \mathit{f}_{\mathrm{evo}} \; .\]

      If nothing, the fault value stored in cosmo will be considered.

    • en::Float64 = 1e6: just a float number used in order to deal better with small numbers;

    • N_χs::Int = 100: number of points to be used for sampling the integral along the range (0, s1) (for χ1); it has been checked that with N_χs ≥ 100 the result is stable.

    See also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole

    source
    GaPSE.ξ_GNCxLD_IntegratedGP_LensingFunction
    ξ_GNCxLD_IntegratedGP_Lensing(
    +    s1, s2, y, cosmo::Cosmology;
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing,
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing, 
    +    en::Float64 = 1e6, N_χs::Int = 100 ) ::Float64
    +
    +ξ_GNCxLD_IntegratedGP_Lensing(
    +    s1, s2, y, cosmo::Cosmology; 
    +    kwargs... ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Integrated Gravitational Potential (GP) effect arising from the Galaxy Number Counts (GNC) and the Lensing one arising from the Luminosity Distance (LD) perturbations.

    In the first method, you should pass the two extreme Points (P1 and P2) where to evaluate the function. In the second method (that internally recalls the first), you must provide the two corresponding comoving distances s1, s2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this TPCF is the following:

    \[\begin{split} + \xi^{\int\!\phi \, \kappa} ( s_1 , s_2, y ) = + \int_0^{s_1}\! \mathrm{d}\chi_1 \int_0^{s_2}\! \mathrm{d}\chi_2 \; + \mathfrak{J}_{\alpha}^{\int\!\phi \, \kappa} + \left[ + \mathfrak{J}_{31}^{\int\!\phi \, \kappa} I_1^3 ( \Delta \chi ) + + \mathfrak{J}_{22}^{\int\!\phi \, \kappa} I_2^2 ( \Delta \chi ) + \right] \, +\end{split}\]

    with

    \[\begin{split} + \mathfrak{J}_{\alpha}^{\int\!\phi \, \kappa} &= + - \frac{ + 9 \chi_1 \mathcal{H}_0^4 \Omega_{\mathrm{M}0}^2 D(\chi_1) D(\chi_2) + }{ + a(\chi_1) a(\chi_2) s_1 s_2 + } + (\chi_2 - s_2) + \left[ + \mathcal{H}(\chi_1) \mathcal{R}_1 s_1 (f(\chi_1) - 1) - 5 s_{\mathrm{b}, 1} + 2 + \right] + \, , \\ + %%%%%%%%%%%%% + \mathfrak{J}_{31}^{\int\!\phi \, \kappa} &= y \Delta\chi^2 + \, , \\ + %%%%%%%%%%%%% + \mathfrak{J}_{22}^{\int\!\phi \, \kappa} &= + \frac{1}{2} (y^2 - 1) \chi_1 \chi_2 + \, , +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + +\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $\mathfrak{R}_1 = \mathfrak{R}(s_1)$, ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}(s) s} ;\]

    • $b_1$, $s_{\mathrm{b}, 1}$, $\mathit{f}_{\mathrm{evo}, 1}$ (and $b_2$, $s_{\mathrm{b}, 2}$, $\mathit{f}_{\mathrm{evo}, 2}$) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    The computation is made applying trapz() (see the Trapz Julia package) to the integrand function integrand_ξ_GNCxLD_IntegratedGP_Lensing.

    Inputs

    • P1::Point, P2::Point or s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • b1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:

      • if not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;
      • if you set one or more values, they will override the cosmo ones in this computation;
      • the two sets of values should be different only if you are interested in studing two galaxy species;
      • only the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities.
    • s_lim=nothing : parameter used in order to avoid the divergence of the $\mathcal{R}$ and $\mathfrak{R}$ denominators: when $0 \leq s \leq s_\mathrm{lim}$ the returned values are

      \[\forall \, s \in [ 0, s_\mathrm{lim} ] \; : \quad + \mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}_0 \, s_\mathrm{lim}} \; , \quad + \mathcal{R}(s) = 5 s_{\mathrm{b}} + + \frac{2 - 5 s_{\mathrm{b}}}{\mathcal{H}_0 \, s_\mathrm{lim}} + + \frac{\dot{\mathcal{H}}}{\mathcal{H}_0^2} - \mathit{f}_{\mathrm{evo}} \; .\]

      If nothing, the fault value stored in cosmo will be considered.

    • en::Float64 = 1e6: just a float number used in order to deal better with small numbers;

    • N_χs_2::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ1) and (0, s2) (for χ2); it has been checked that with N_χs_2 ≥ 50 the result is stable.

    See also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole

    source
    GaPSE.ξ_GNCxLD_IntegratedGP_LocalGPFunction
    ξ_GNCxLD_IntegratedGP_LocalGP(
    +    s1, s2, y, cosmo::Cosmology;
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing,
    +	  𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,
    +    en::Float64 = 1e6, N_χs::Int = 100 ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Integrated Gravitational Potential (GP) effect arising from the Galaxy Number Counts (GNC) and the Local GP one arising from the Luminosity Distance (LD) perturbations.

    You must provide the two comoving distances s1 and s2 where to evaluate the function. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this TPCF is the following:

    \[\begin{split} + \xi^{\int\!\phi \, \phi} (s_1, s_2, y) = + D_2 \, \int_0^{s_1} \mathrm{d}\chi_1 \; + \mathfrak{J}^{int\!\phi \, \phi}_{40} \tilde{I}^4_0(\Delta\chi_1) + \, , +\end{split}\]

    with

    \[\begin{split} + \mathfrak{J}^{\int\!\phi \, \phi}_{40} = + - \frac{9 \mathcal{H}_0^4 \Omega_{\mathrm{M}0}^2 D(\chi_1) }{2 a_2 s_1 a(\chi_1)} + \Delta\chi_1^4 (1 + \mathfrak{R}_2) + \left[ + s_1 \mathcal{H}(\chi_1) \mathcal{R}_1 (f(\chi_1) - 1) - 5 s_{\mathrm{b}, 1} + 2 + \right] \, , +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + +\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $\mathfrak{R}_1 = \mathfrak{R}(s_1)$, ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}(s) s} ;\]

    • $b_1$, $s_{\mathrm{b}, 1}$, $\mathit{f}_{\mathrm{evo}, 1}$ (and $b_2$, $s_{\mathrm{b}, 2}$, $\mathit{f}_{\mathrm{evo}, 2}$) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    The computation is made applying trapz() (see the Trapz Julia package) to the integrand function integrand_ξ_GNCxLD_IntegratedGP_LocalGP.

    Inputs

    • s1 and s2: comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • b1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:

      • if not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;
      • if you set one or more values, they will override the cosmo ones in this computation;
      • the two sets of values should be different only if you are interested in studing two galaxy species;
      • only the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities.
    • s_lim=nothing : parameter used in order to avoid the divergence of the $\mathcal{R}$ and $\mathfrak{R}$ denominators: when $0 \leq s \leq s_\mathrm{lim}$ the returned values are

      \[\forall \, s \in [ 0, s_\mathrm{lim} ] \; : \quad + \mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}_0 \, s_\mathrm{lim}} \; , \quad + \mathcal{R}(s) = 5 s_{\mathrm{b}} + + \frac{2 - 5 s_{\mathrm{b}}}{\mathcal{H}_0 \, s_\mathrm{lim}} + + \frac{\dot{\mathcal{H}}}{\mathcal{H}_0^2} - \mathit{f}_{\mathrm{evo}} \; .\]

      If nothing, the fault value stored in cosmo will be considered.

    • en::Float64 = 1e6: just a float number used in order to deal better with small numbers;

    • N_χs::Int = 100: number of points to be used for sampling the integral along the range (0, s1) (for χ1); it has been checked that with N_χs ≥ 100 the result is stable.

    See also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole

    source
    GaPSE.ξ_GNCxLD_IntegratedGP_IntegratedGPFunction
    ξ_GNCxLD_IntegratedGP_IntegratedGP(
    +    P1::Point, P2::Point, y, cosmo::Cosmology; 
    +    en::Float64 = 1e10, N_χs::Int = 100,
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, 
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing ) ::Float64
    +
    +ξ_GNCxLD_IntegratedGP_IntegratedGP(
    +    s1, s2, y, cosmo::Cosmology; kwargs...) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Integrated Gravitational Potential (GP) effect arising from the Galaxy Number Counts (GNC) and the Integrated GP one arising from the Luminosity Distance (LD) perturbations.

    In the first method, you should pass the two extreme Points (P1 and P2) where to evaluate the function. In the second method (that internally recalls the first), you must provide the two corresponding comoving distances s1, s2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this TPCF is the following:

    \[\begin{split} + \xi^{\int\!\phi \, \int \!\phi }( s_1 , s_2, y ) = + \int_0^{s_1}\! \mathrm{d}\chi_1 \int_0^{s_2}\! \mathrm{d}\chi_2 \; + \mathfrak{J}^{\int \!\phi \int \!\phi}_{40} + \tilde{I}_0^4 ( \Delta\chi) \, , +\end{split}\]

    with

    \[\begin{split} + \mathfrak{J}^{\int \!\phi\int \!\phi}_{40} = + - \frac{ + 9 \Delta\chi ^4 \mathcal{H}_0^4 \Omega_{\mathrm{M}0}^2 D(\chi_1) D(\chi_2) + }{ + a(\chi_1) a(\chi_2) s_1 s_2 + } + &\left[ + s_1 (f(\chi_1) - 1) \mathcal{H}(\chi_1) \mathcal{R}_1 - 5 s_{\mathrm{b}, 1} + 2 + \right] \times + \nonumber \\ + &\left[ + s_2 (f(\chi_2) - 1) \mathcal{H}(\chi_2) \mathfrak{R}_2 - 1 + \right] + \, , +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + +\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $\mathfrak{R}_1 = \mathfrak{R}(s_1)$, ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}(s) s} ;\]

    • $b_1$, $s_{\mathrm{b}, 1}$, $\mathit{f}_{\mathrm{evo}, 1}$ (and $b_2$, $s_{\mathrm{b}, 2}$, $\mathit{f}_{\mathrm{evo}, 2}$) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    The computation is made applying trapz() (see the Trapz Julia package) to the integrand function integrand_ξ_GNCxLD_IntegratedGP_IntegratedGP.

    Inputs

    • P1::Point, P2::Point or s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • b1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:

      • if not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;
      • if you set one or more values, they will override the cosmo ones in this computation;
      • the two sets of values should be different only if you are interested in studing two galaxy species;
      • only the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities.
    • s_lim=nothing : parameter used in order to avoid the divergence of the $\mathcal{R}$ and $\mathfrak{R}$ denominators: when $0 \leq s \leq s_\mathrm{lim}$ the returned values are

      \[\forall \, s \in [ 0, s_\mathrm{lim} ] \; : \quad + \mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}_0 \, s_\mathrm{lim}} \; , \quad + \mathcal{R}(s) = 5 s_{\mathrm{b}} + + \frac{2 - 5 s_{\mathrm{b}}}{\mathcal{H}_0 \, s_\mathrm{lim}} + + \frac{\dot{\mathcal{H}}}{\mathcal{H}_0^2} - \mathit{f}_{\mathrm{evo}} \; .\]

      If nothing, the fault value stored in cosmo will be considered.

    • en::Float64 = 1e6: just a float number used in order to deal better with small numbers;

    • N_χs_2::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ1) and (0, s2) (for χ2); it has been checked that with N_χs_2 ≥ 50 the result is stable.

    See also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole

    source
    diff --git a/dev/GNCxLD_Correlations_2/index.html b/dev/GNCxLD_Correlations_2/index.html new file mode 100644 index 00000000..a62f2c0b --- /dev/null +++ b/dev/GNCxLD_Correlations_2/index.html @@ -0,0 +1,715 @@ + +GNCxLD TPCFs · GaPSE.jl

    GNCxLD TPCFs

    Two-Point Cross-Correlation Functions integrands

    GaPSE.integrand_ξ_GNCxLD_IntegratedGP_LensingFunction
    integrand_ξ_GNCxLD_IntegratedGP_Lensing(
    +	IP1::Point, IP2::Point, P1::Point, P2::Point, y, cosmo::Cosmology; 
    +	b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing,
    +	𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing ) ::Float64
    +
    +integrand_ξ_GNCxLD_IntegratedGP_Lensing(
    +	χ1::Float64, χ2::Float64, s1::Float64, s2::Float64, 
    +	y, cosmo::Cosmology; kwargs... ) ::Float64

    Return the integrand of the Two-Point Correlation Function (TPCF) given by the cross correlation between the Integrated Gravitational Potential (GP) effect arising from the Galaxy Number Counts (GNC) and the Lensing one arising from the Luminosity Distance (LD) perturbations.

    In the first method, you should pass the two extreme Points (P1 and P2) and the two intermediate integrand Points (IP1 and IP2) where to evaluate the function. In the second method (that internally recalls the first), you must provide the three corresponding comoving distances s1, s2, χ1, χ2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this integrand is the following:

    \[\begin{split} + f^{\int\!\phi \, \kappa} (\chi_1, \chi_2, s_1 , s_2, y ) = + \mathfrak{J}_{\alpha}^{\int\!\phi \, \kappa} + \left[ + \mathfrak{J}_{31}^{\int\!\phi \, \kappa} I_1^3 ( \Delta \chi ) + + \mathfrak{J}_{22}^{\int\!\phi \, \kappa} I_2^2 ( \Delta \chi ) + \right] \, +\end{split}\]

    with

    \[\begin{split} + \mathfrak{J}_{\alpha}^{\int\!\phi \, \kappa} &= + - \frac{ + 9 \chi_1 \mathcal{H}_0^4 \Omega_{\mathrm{M}0}^2 D(\chi_1) D(\chi_2) + }{ + a(\chi_1) a(\chi_2) s_1 s_2 + } + (\chi_2 - s_2) + \left[ + \mathcal{H}(\chi_1) \mathcal{R}_1 s_1 (f(\chi_1) - 1) - 5 s_{\mathrm{b}, 1} + 2 + \right] + \, , \\ + %%%%%%%%%%%%% + \mathfrak{J}_{31}^{\int\!\phi \, \kappa} &= y \Delta\chi^2 + \, , \\ + %%%%%%%%%%%%% + \mathfrak{J}_{22}^{\int\!\phi \, \kappa} &= + \frac{1}{2} (y^2 - 1) \chi_1 \chi_2 + \, , +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + +\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $\mathfrak{R}_1 = \mathfrak{R}(s_1)$, ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}(s) s} ;\]

    • $b_1$, $s_{\mathrm{b}, 1}$, $\mathit{f}_{\mathrm{evo}, 1}$ (and $b_2$, $s_{\mathrm{b}, 2}$, $\mathit{f}_{\mathrm{evo}, 2}$) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    This function is used inside ξ_GNCxLD_IntegratedGP_Lensing with the trapz() from the Trapz Julia package.

    Inputs

    • IP1::Point, IP2::Point, P1::Point, P2::Point or χ1,χ2,s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • b1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:

      • if not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;
      • if you set one or more values, they will override the cosmo ones in this computation;
      • the two sets of values should be different only if you are interested in studing two galaxy species;
      • only the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities.
    • s_lim=nothing : parameter used in order to avoid the divergence of the $\mathcal{R}$ and $\mathfrak{R}$ denominators: when $0 \leq s \leq s_\mathrm{lim}$ the returned values are

      \[\forall \, s \in [ 0, s_\mathrm{lim} ] \; : \quad + \mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}_0 \, s_\mathrm{lim}} \; , \quad + \mathcal{R}(s) = 5 s_{\mathrm{b}} + + \frac{2 - 5 s_{\mathrm{b}}}{\mathcal{H}_0 \, s_\mathrm{lim}} + + \frac{\dot{\mathcal{H}}}{\mathcal{H}_0^2} - \mathit{f}_{\mathrm{evo}} \; .\]

      If nothing, the fault value stored in cosmo will be considered.

    See also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole

    source
    GaPSE.integrand_ξ_GNCxLD_IntegratedGP_IntegratedGPFunction
    integrand_ξ_GNCxLD_IntegratedGP_IntegratedGP(IP1::Point, IP2::Point,
    +    P1::Point, P2::Point, y, cosmo::Cosmology;
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing,
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing ) ::Float64
    +
    +integrand_ξ_GNCxLD_IntegratedGP_IntegratedGP(
    +    χ1::Float64, χ2::Float64, s1::Float64, s2::Float64, 
    +    y, cosmo::Cosmology; kwargs... ) ::Float64

    Return the integrand of the Two-Point Correlation Function (TPCF) given by the cross correlation between the Integrated Gravitational Potential (GP) effect arising from the Galaxy Number Counts (GNC) and the Integrated GP one arising from the Luminosity Distance (LD) perturbations.

    In the first method, you should pass the two extreme Points (P1 and P2) and the two intermediate integrand Points (IP1 and IP2) where to evaluate the function. In the second method (that internally recalls the first), you must provide the three corresponding comoving distances s1, s2, χ1, χ2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this integrand is the following:

    \[\begin{split} + f^{\int\!\phi \, \int \!\phi }(\chi_1, \chi_2, s_1 , s_2, y ) = + \mathfrak{J}^{\int \!\phi \int \!\phi}_{40} + \tilde{I}_0^4 ( \Delta\chi) \, , +\end{split}\]

    with

    \[\begin{split} + \mathfrak{J}^{\int \!\phi\int \!\phi}_{40} = + - \frac{ + 9 \Delta\chi ^4 \mathcal{H}_0^4 \Omega_{\mathrm{M}0}^2 D(\chi_1) D(\chi_2) + }{ + a(\chi_1) a(\chi_2) s_1 s_2 + } + &\left[ + s_1 (f(\chi_1) - 1) \mathcal{H}(\chi_1) \mathcal{R}_1 - 5 s_{\mathrm{b}, 1} + 2 + \right] \times + \nonumber \\ + &\left[ + s_2 (f(\chi_2) - 1) \mathcal{H}(\chi_2) \mathfrak{R}_2 - 1 + \right] + \, , +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + +\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $\mathfrak{R}_1 = \mathfrak{R}(s_1)$, ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}(s) s} ;\]

    • $b_1$, $s_{\mathrm{b}, 1}$, $\mathit{f}_{\mathrm{evo}, 1}$ (and $b_2$, $s_{\mathrm{b}, 2}$, $\mathit{f}_{\mathrm{evo}, 2}$) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    This function is used inside ξ_GNCxLD_IntegratedGP_IntegratedGP with the trapz() from the Trapz Julia package.

    Inputs

    • IP1::Point, IP2::Point, P1::Point, P2::Point or χ1,χ2,s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • b1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:

      • if not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;
      • if you set one or more values, they will override the cosmo ones in this computation;
      • the two sets of values should be different only if you are interested in studing two galaxy species;
      • only the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities.
    • s_lim=nothing : parameter used in order to avoid the divergence of the $\mathcal{R}$ and $\mathfrak{R}$ denominators: when $0 \leq s \leq s_\mathrm{lim}$ the returned values are

      \[\forall \, s \in [ 0, s_\mathrm{lim} ] \; : \quad + \mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}_0 \, s_\mathrm{lim}} \; , \quad + \mathcal{R}(s) = 5 s_{\mathrm{b}} + + \frac{2 - 5 s_{\mathrm{b}}}{\mathcal{H}_0 \, s_\mathrm{lim}} + + \frac{\dot{\mathcal{H}}}{\mathcal{H}_0^2} - \mathit{f}_{\mathrm{evo}} \; .\]

      If nothing, the fault value stored in cosmo will be considered.

    See also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole

    source
    GaPSE.integrand_ξ_GNCxLD_LocalGP_IntegratedGPFunction
    integrand_ξ_GNCxLD_LocalGP_IntegratedGP(
    +	IP::Point, P1::Point, P2::Point, y, cosmo::Cosmology;
    +	b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing,
    +	𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing ) ::Float64
    +
    +integrand_ξ_GNCxLD_LocalGP_IntegratedGP(
    +	χ2::Float64, s1::Float64, s2::Float64,
    +	y, cosmo::Cosmology; kwargs... ) ::Float64

    Return the integrand of the Two-Point Correlation Function (TPCF) given by the cross correlation between the Local Gravitational Potential (GP) effect arising from the Galaxy Number Counts (GNC) and the Integrated GP one arising from the Luminosity Distance (LD) perturbations.

    In the first method, you should pass the two extreme Points (P1 and P2) and the intermediate integrand Point (IP) where to evaluate the function. In the second method (that internally recalls the first), you must provide the three corresponding comoving distances s1, s2, χ2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this integrand is the following:

    \[\begin{split} + f^{\phi \int\!\phi} (\chi_2, s_1 , s_2, y ) = + D_1 \, + \mathfrak{J}^{\phi \int\!\phi}_{40} I_0^4 ( \Delta\chi_2 ) + \, , +\end{split}\]

    with

    \[\begin{split} + \mathfrak{J}^{\phi \int\!\phi}_{40} &= + - \frac{ + 3 \Delta\chi_2^4 \mathcal{H}_0^2 \Omega_{\mathrm{M}0} D(\chi_2) + }{ + 2 s_2 a(\chi_2) a_1 + } \left[ + s_2 \mathcal{H}(\chi_2) \mathfrak{R}_2 ( f(\chi_2) - 1 ) - 1 + \right] + \times\\ + &\qquad\qquad\qquad + \left[ + 2 a_1 f_1 \mathcal{H}_1^2 (\mathit{f}_{\mathrm{evo}, 1} - 3) + + 3 \mathcal{H}_0^2 \Omega_{\mathrm{M}0} (f_1 + \mathcal{R}_1 + 5 s_{\mathrm{b}, 1} - 2) + \right] + \, , +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + +\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $\mathfrak{R}_1 = \mathfrak{R}(s_1)$, ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}(s) s} ;\]

    • $b_1$, $s_{\mathrm{b}, 1}$, $\mathit{f}_{\mathrm{evo}, 1}$ (and $b_2$, $s_{\mathrm{b}, 2}$, $\mathit{f}_{\mathrm{evo}, 2}$) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    This function is used inside ξ_GNCxLD_LocalGP_IntegratedGP with the trapz() from the Trapz Julia package.

    Inputs

    • IP::Point, P1::Point, P2::Point or χ2,s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • b1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:

      • if not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;
      • if you set one or more values, they will override the cosmo ones in this computation;
      • the two sets of values should be different only if you are interested in studing two galaxy species;
      • only the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities.
    • s_lim=nothing : parameter used in order to avoid the divergence of the $\mathcal{R}$ and $\mathfrak{R}$ denominators: when $0 \leq s \leq s_\mathrm{lim}$ the returned values are

      \[\forall \, s \in [ 0, s_\mathrm{lim} ] \; : \quad + \mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}_0 \, s_\mathrm{lim}} \; , \quad + \mathcal{R}(s) = 5 s_{\mathrm{b}} + + \frac{2 - 5 s_{\mathrm{b}}}{\mathcal{H}_0 \, s_\mathrm{lim}} + + \frac{\dot{\mathcal{H}}}{\mathcal{H}_0^2} - \mathit{f}_{\mathrm{evo}} \; .\]

      If nothing, the fault value stored in cosmo will be considered.

    See also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole

    source
    GaPSE.integrand_ξ_GNCxLD_IntegratedGP_DopplerFunction
    integrand_ξ_GNCxLD_IntegratedGP_Doppler(
    +	IP::Point, P1::Point, P2::Point, y, cosmo::Cosmology;
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing,
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing ) ::Float64
    +
    +integrand_ξ_GNCxLD_IntegratedGP_Doppler(
    +    χ1::Float64, s1::Float64, s2::Float64,
    +    y, cosmo::Cosmology; kwargs... ) ::Float64

    Return the integrand of the Two-Point Correlation Function (TPCF) given by the cross correlation between the Integrated Gravitational Potential (GP) effect arising from the Galaxy Number Counts (GNC) and the Doppler one arising from the Luminosity Distance (LD) perturbations.

    In the first method, you should pass the two extreme Points (P1 and P2) and the intermediate integrand Point (IP) where to evaluate the function. In the second method (that internally recalls the first), you must provide the three corresponding comoving distances s1, s2, χ2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this integrand is the following:

    \[\begin{split} + f^{\int\!\phi \, v_{\parallel}} (\chi_1, s_1, s_2, y) = + D_2 \mathfrak{J}^{\int\!\phi \, v_{\parallel}}_{31} \,I_1^3(\Delta\chi_1) \, +\end{split}\]

    with

    \[\begin{split} + \mathfrak{J}^{\int\!\phi \, v_{\parallel}}_{31} = + - 3 f_2 \mathcal{H}_2 \mathfrak{R}_2 \mathcal{H}_0^2 \Omega_{\mathrm{M}0} + \frac{ + D(\chi_1)(s_2 - \chi_1 y) + }{ + a(\chi_1) s_1 + } \Delta\chi_1^2 \left[ + s_1 \mathcal{R}_1 \mathcal{H}(\chi_1)(f_1 - 1) - 5 s_{\mathrm{b}, 1} + 2 + \right] \, , +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + +\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $\mathfrak{R}_1 = \mathfrak{R}(s_1)$, ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}(s) s} ;\]

    • $b_1$, $s_{\mathrm{b}, 1}$, $\mathit{f}_{\mathrm{evo}, 1}$ (and $b_2$, $s_{\mathrm{b}, 2}$, $\mathit{f}_{\mathrm{evo}, 2}$) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    This function is used inside ξ_GNCxLD_IntegratedGP_Doppler with the trapz() from the Trapz Julia package.

    Inputs

    • IP::Point, P1::Point, P2::Point or χ1,s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • b1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:

      • if not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;
      • if you set one or more values, they will override the cosmo ones in this computation;
      • the two sets of values should be different only if you are interested in studing two galaxy species;
      • only the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities.
    • s_lim=nothing : parameter used in order to avoid the divergence of the $\mathcal{R}$ and $\mathfrak{R}$ denominators: when $0 \leq s \leq s_\mathrm{lim}$ the returned values are

      \[\forall \, s \in [ 0, s_\mathrm{lim} ] \; : \quad + \mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}_0 \, s_\mathrm{lim}} \; , \quad + \mathcal{R}(s) = 5 s_{\mathrm{b}} + + \frac{2 - 5 s_{\mathrm{b}}}{\mathcal{H}_0 \, s_\mathrm{lim}} + + \frac{\dot{\mathcal{H}}}{\mathcal{H}_0^2} - \mathit{f}_{\mathrm{evo}} \; .\]

      If nothing, the fault value stored in cosmo will be considered.

    See also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole

    source
    GaPSE.integrand_ξ_GNCxLD_Newtonian_LensingFunction
    integrand_ξ_GNCxLD_Newtonian_Lensing(
    +    IP::Point, P1::Point, P2::Point, y, cosmo::Cosmology;
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing,
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing ) ::Float64
    +
    +integrand_ξ_GNCxLD_Newtonian_Lensing(
    +    χ2::Float64, s1::Float64, s2::Float64,
    +    y, cosmo::Cosmology; kwargs... ) ::Float64

    Return the integrand of the Two-Point Correlation Function (TPCF) given by the cross correlation between the Newtonian effect arising from the Galaxy Number Counts (GNC) and the Lensing one arising from the Luminosity Distance (LD) perturbations.

    In the first method, you should pass the two extreme Points (P1 and P2) and the intermediate integrand Point (IP) where to evaluate the function. In the second method (that internally recalls the first), you must provide the three corresponding comoving distances s1, s2, χ2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this integrand is the following:

    \[\begin{split} + f^{\delta \kappa} (\chi_2, s_1 , s_2, y ) = + D_1 \; + \mathfrak{J}^{\delta \kappa}_{\alpha} + \left[ + \mathfrak{J}^{\delta \kappa}_{00} I_0^0 ( \Delta\chi_2 ) + + \mathfrak{J}^{\delta \kappa}_{02} I_2^0 ( \Delta \chi_2 ) + + \mathfrak{J}^{\delta \kappa}_{00} I_4^0 ( \Delta \chi_2 ) + \right] \, , +\end{split}\]

    with

    \[\begin{split} + \mathfrak{J}^{\delta \kappa}_{\alpha} &= + - \frac{ + \mathcal{H}_0 ^2 \Omega_{\mathrm{M}0} D(\chi_2) + }{ + a(\chi_2 ) s_2 + } + (\chi_2 - s_2 ) + \, , \\ + %%%%%%%%%%%%%%%%%%%%%%%% + \mathfrak{J}^{\delta \kappa}_{00} &= + \frac{1}{5} + \left[ + (3 y^2 - 1) \chi_2 f_1 - y s_1(3 f_1 + 5 b_1) + \right] + \, , \\ + %%%%%%%%%%%%%%%%%%%%%%%% + \mathfrak{J}^{\delta \kappa}_{02} &= + \frac{1}{14 \Delta\chi_2^2} + \left\{ + 4 f_1 (3 y^2 - 1) \chi_2^3 - + 2 y + \left[ + (3 y^2 + 8) f_1 + 7 b_1 + \right] s_1 \chi_2^2 + + \right. \nonumber \\ + &\left.\qquad \qquad\qquad + \left[ + (9 y^2 + 11) f_1 - 7 (y^2 + 3) b_1 + \right] s_1^2 \chi_2 - + 2 y \left[7 b_1 + 3 f_1 \right] s_1^3 + \right\} + \, , \\ + %%%%%%%%%%%%%%%%%%%%%%%% + \mathfrak{J}^{\delta \kappa}_{04} &= + \frac{f_1}{70 \Delta\chi_2^4 } + \left\{ + (6 y^2 - 2) \chi_2^5 + + 6 y (y^2 - 3) s_1 \chi_2^4 - + (y^4 + 12 y^2 - 21) s_1^2 \chi_2^3 + + \right.\nonumber \\ + &\left.\qquad\qquad\qquad + 2 y (y^2 + 3) s_1^3 \chi_2^2 - + 12 \chi_2 s_1^4 + + 4 y s_1 ^5 + \right\} + \, , +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + +\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $\mathfrak{R}_1 = \mathfrak{R}(s_1)$, ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}(s) s} ;\]

    • $b_1$, $s_{\mathrm{b}, 1}$, $\mathit{f}_{\mathrm{evo}, 1}$ (and $b_2$, $s_{\mathrm{b}, 2}$, $\mathit{f}_{\mathrm{evo}, 2}$) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    This function is used inside ξ_GNCxLD_Newtonian_Lensing with the trapz() from the Trapz Julia package.

    Inputs

    • IP::Point, P1::Point, P2::Point or χ2,s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • b1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:

      • if not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;
      • if you set one or more values, they will override the cosmo ones in this computation;
      • the two sets of values should be different only if you are interested in studing two galaxy species;
      • only the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities.
    • s_lim=nothing : parameter used in order to avoid the divergence of the $\mathcal{R}$ and $\mathfrak{R}$ denominators: when $0 \leq s \leq s_\mathrm{lim}$ the returned values are

      \[\forall \, s \in [ 0, s_\mathrm{lim} ] \; : \quad + \mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}_0 \, s_\mathrm{lim}} \; , \quad + \mathcal{R}(s) = 5 s_{\mathrm{b}} + + \frac{2 - 5 s_{\mathrm{b}}}{\mathcal{H}_0 \, s_\mathrm{lim}} + + \frac{\dot{\mathcal{H}}}{\mathcal{H}_0^2} - \mathit{f}_{\mathrm{evo}} \; .\]

      If nothing, the fault value stored in cosmo will be considered.

    See also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole

    source
    GaPSE.integrand_ξ_GNCxLD_Lensing_IntegratedGPFunction
    integrand_ξ_GNCxLD_Lensing_IntegratedGP(
    +    IP1::Point, IP2::Point, P1::Point, P2::Point, y, cosmo::Cosmology;
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing,
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing ) ::Float64
    +
    +integrand_ξ_GNCxLD_Lensing_IntegratedGP(
    +    χ1::Float64, χ2::Float64,
    +    s1::Float64, s2::Float64,
    +    y, cosmo::Cosmology;
    +    kwargs... ) ::Float64

    Return the integrand of the Two-Point Correlation Function (TPCF) given by the cross correlation between the Lensing effect arising from the Galaxy Number Counts (GNC) and the Integrated Gravitational Potential (GP) one arising from the Luminosity Distance (LD) perturbations.

    In the first method, you should pass the two extreme Points (P1 and P2) and the two intermediate integrand Points (IP1 and IP2) where to evaluate the function. In the second method (that internally recalls the first), you must provide the three corresponding comoving distances s1, s2, χ1, χ2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this integrand is the following:

    \[\begin{split} + f^{\kappa\int\!\phi} (\chi_1, \chi_2, s_1, s_2, y) = + \mathfrak{J}^{\kappa\int\!\phi}_{\alpha} + \left[ + \mathfrak{J}^{\kappa\int\!\phi}_{31} I_1^3(\Delta\chi) + + \mathfrak{J}^{\kappa\int\!\phi}_{22} I_2^2(\Delta\chi) + \right] \, , +\end{split}\]

    with

    \[\begin{split} + \mathfrak{J}^{\kappa\int\!\phi}_{\alpha} & = + \frac{9}{2} \mathcal{H}_0^4 \Omega_{\mathrm{M}0}^2 + \frac{ + D(\chi_1) D(\chi_2) \chi_2 (s_1 - \chi_1) + }{ + s_1 s_2 a(\chi_1) a(\chi_2) + } (5 s_{\mathrm{b}, 1} - 2 ) + \left[ + s_2 \mathfrak{R}_2 \mathcal{H}(\chi_2) (f(\chi_2) - 1) - 1 + \right] + \, , \\ + %%%%%%%%%%%%%%%%%%%%%%%% + \mathfrak{J}^{\kappa\int\!\phi}_{31} & = -2 y \Delta\chi^2 + \, , \\ + %%%%%%%%%%%%%%%%%%%%%%%% + \mathfrak{J}^{\kappa\int\!\phi}_{22} & = \chi_1 \chi_2(1 - y^2) + \, , +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + +\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $\mathfrak{R}_1 = \mathfrak{R}(s_1)$, ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}(s) s} ;\]

    • $b_1$, $s_{\mathrm{b}, 1}$, $\mathit{f}_{\mathrm{evo}, 1}$ (and $b_2$, $s_{\mathrm{b}, 2}$, $\mathit{f}_{\mathrm{evo}, 2}$) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    This function is used inside ξ_GNCxLD_Lensing_IntegratedGP with the trapz() from the Trapz Julia package.

    Inputs

    • IP1::Point, IP2::Point, P1::Point, P2::Point or χ1,χ2,s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • b1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:

      • if not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;
      • if you set one or more values, they will override the cosmo ones in this computation;
      • the two sets of values should be different only if you are interested in studing two galaxy species;
      • only the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities.
    • s_lim=nothing : parameter used in order to avoid the divergence of the $\mathcal{R}$ and $\mathfrak{R}$ denominators: when $0 \leq s \leq s_\mathrm{lim}$ the returned values are

      \[\forall \, s \in [ 0, s_\mathrm{lim} ] \; : \quad + \mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}_0 \, s_\mathrm{lim}} \; , \quad + \mathcal{R}(s) = 5 s_{\mathrm{b}} + + \frac{2 - 5 s_{\mathrm{b}}}{\mathcal{H}_0 \, s_\mathrm{lim}} + + \frac{\dot{\mathcal{H}}}{\mathcal{H}_0^2} - \mathit{f}_{\mathrm{evo}} \; .\]

      If nothing, the fault value stored in cosmo will be considered.

    See also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole

    source
    GaPSE.integrand_ξ_GNCxLD_Doppler_IntegratedGPFunction
    integrand_ξ_GNCxLD_Doppler_IntegratedGP(
    +    IP::Point, P1::Point, P2::Point, y, cosmo::Cosmology; 
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing,
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing ) ::Float64
    +
    +integrand_ξ_GNCxLD_Doppler_IntegratedGP(
    +    χ2::Float64, s1::Float64, s2::Float64,
    +    y, cosmo::Cosmology; kwargs... ) ::Float64

    Return the integrand of the Two-Point Correlation Function (TPCF) given by the cross correlation between the Doppler effect arising from the Galaxy Number Counts (GNC) and the Integrated Gravitational Potential (GP) one arising from the Luminosity Distance (LD) perturbations.

    In the first method, you should pass the two extreme Points (P1 and P2) and the intermediate integrand Point (IP) where to evaluate the function. In the second method (that internally recalls the first), you must provide the three corresponding comoving distances s1, s2, χ2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this integrand is the following:

    \[\begin{split} + f^{v_{\parallel} \int\!\phi} (\chi_2, s_1, s_2, y) = + D_1 \mathfrak{J}^{v_{\parallel} \int\!\phi}_{31} \,I_1^3(\Delta\chi_2) \, , +\end{split}\]

    with

    \[\begin{split} + \mathfrak{J}^{v_{\parallel} \int\!\phi}_{31} = + 3 f_1 \mathcal{H}_1 \mathcal{R}_1 \mathcal{H}_0^2 \Omega_{\mathrm{M}0} + \frac{ + D(\chi_2)(\chi_2 y - s_1) + }{ + a(\chi_2) s_2 + } \Delta\chi_2^2 \left[ + s_2 \mathfrak{R}_2 \mathcal{H}(\chi_2)(f_2 -1) - 1 + \right] \, , +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + +\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $\mathfrak{R}_1 = \mathfrak{R}(s_1)$, ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}(s) s} ;\]

    • $b_1$, $s_{\mathrm{b}, 1}$, $\mathit{f}_{\mathrm{evo}, 1}$ (and $b_2$, $s_{\mathrm{b}, 2}$, $\mathit{f}_{\mathrm{evo}, 2}$) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    This function is used inside ξ_GNCxLD_Doppler_IntegratedGP with the trapz() from the Trapz Julia package.

    Inputs

    • IP::Point, P1::Point, P2::Point or χ2,s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • b1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:

      • if not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;
      • if you set one or more values, they will override the cosmo ones in this computation;
      • the two sets of values should be different only if you are interested in studing two galaxy species;
      • only the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities.
    • s_lim=nothing : parameter used in order to avoid the divergence of the $\mathcal{R}$ and $\mathfrak{R}$ denominators: when $0 \leq s \leq s_\mathrm{lim}$ the returned values are

      \[\forall \, s \in [ 0, s_\mathrm{lim} ] \; : \quad + \mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}_0 \, s_\mathrm{lim}} \; , \quad + \mathcal{R}(s) = 5 s_{\mathrm{b}} + + \frac{2 - 5 s_{\mathrm{b}}}{\mathcal{H}_0 \, s_\mathrm{lim}} + + \frac{\dot{\mathcal{H}}}{\mathcal{H}_0^2} - \mathit{f}_{\mathrm{evo}} \; .\]

      If nothing, the fault value stored in cosmo will be considered.

    See also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole

    source
    GaPSE.integrand_ξ_GNCxLD_IntegratedGP_LocalGPFunction
    integrand_ξ_GNCxLD_IntegratedGP_LocalGP(
    +    IP::Point, P1::Point, P2::Point, y, cosmo::Cosmology;
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing,
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing ) ::Float64
    +
    +integrand_ξ_GNCxLD_IntegratedGP_LocalGP(
    +    χ1::Float64, s1::Float64, s2::Float64,
    +    y, cosmo::Cosmology; kwargs... ) ::Float64

    Return the integrand of the Two-Point Correlation Function (TPCF) given by the cross correlation between the Integrated Gravitational Potential (GP) effect arising from the Galaxy Number Counts (GNC) and the Local GP one arising from the Luminosity Distance (LD) perturbations.

    In the first method, you should pass the two extreme Points (P1 and P2) and the intermediate integrand Point (IP) where to evaluate the function. In the second method (that internally recalls the first), you must provide the three corresponding comoving distances s1, s2, χ2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this integrand is the following:

    \[\begin{split} + f^{\int\!\phi \, \phi} (\chi_1, s_1, s_2, y) = + D_2 \, + \mathfrak{J}^{\int\!\phi \, \phi}_{40} \tilde{I}^4_0(\Delta\chi_1) + \, , +\end{split}\]

    with

    \[\begin{split} + \mathfrak{J}^{\int\!\phi \, \phi}_{40} = + - \frac{9 \mathcal{H}_0^4 \Omega_{\mathrm{M}0}^2 D(\chi_1) }{2 a_2 s_1 a(\chi_1)} + \Delta\chi_1^4 (1 + \mathfrak{R}_2) + \left[ + s_1 \mathcal{H}(\chi_1) \mathcal{R}_1 (f(\chi_1) - 1) - 5 s_{\mathrm{b}, 1} + 2 + \right] \, , +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + +\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $\mathfrak{R}_1 = \mathfrak{R}(s_1)$, ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}(s) s} ;\]

    • $b_1$, $s_{\mathrm{b}, 1}$, $\mathit{f}_{\mathrm{evo}, 1}$ (and $b_2$, $s_{\mathrm{b}, 2}$, $\mathit{f}_{\mathrm{evo}, 2}$) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    This function is used inside ξ_GNCxLD_IntegratedGP_LocalGP with the trapz() from the Trapz Julia package.

    Inputs

    • IP::Point, P1::Point, P2::Point or χ1,s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • b1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:

      • if not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;
      • if you set one or more values, they will override the cosmo ones in this computation;
      • the two sets of values should be different only if you are interested in studing two galaxy species;
      • only the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities.
    • s_lim=nothing : parameter used in order to avoid the divergence of the $\mathcal{R}$ and $\mathfrak{R}$ denominators: when $0 \leq s \leq s_\mathrm{lim}$ the returned values are

      \[\forall \, s \in [ 0, s_\mathrm{lim} ] \; : \quad + \mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}_0 \, s_\mathrm{lim}} \; , \quad + \mathcal{R}(s) = 5 s_{\mathrm{b}} + + \frac{2 - 5 s_{\mathrm{b}}}{\mathcal{H}_0 \, s_\mathrm{lim}} + + \frac{\dot{\mathcal{H}}}{\mathcal{H}_0^2} - \mathit{f}_{\mathrm{evo}} \; .\]

      If nothing, the fault value stored in cosmo will be considered.

    See also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole

    source
    GaPSE.integrand_ξ_GNCxLD_LocalGP_LensingFunction
    integrand_ξ_GNCxLD_LocalGP_Lensing(
    +	IP::Point, P1::Point, P2::Point, y, cosmo::Cosmology; 
    +	b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing,
    +	𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing ) ::Float64
    +
    +integrand_ξ_GNCxLD_LocalGP_Lensing(
    +	χ2::Float64, s1::Float64, s2::Float64,
    +	y, cosmo::Cosmology; kwargs... ) ::Float64

    Return the integrand of the Two-Point Correlation Function (TPCF) given by the cross correlation between the Local Gravitational Potential (GP) effect arising from the Galaxy Number Counts (GNC) and the Lensing one arising from the Luminosity Distance (LD) perturbations.

    In the first method, you should pass the two extreme Points (P1 and P2) and the intermediate integrand Point (IP) where to evaluate the function. In the second method (that internally recalls the first), you must provide the three corresponding comoving distances s1, s2, χ2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this integrand is the following:

    \[\begin{split} + f^{\phi \kappa} (\chi_2, s_1 , s_2, y ) &= + D_1 \, + \mathfrak{J}^{\phi \kappa}_{\alpha}\left[ + \mathfrak{J}^{\phi \kappa}_{20} I_0^2 ( \Delta \chi_2 ) + + \right.\nonumber \\ + &\left.\qquad + \mathfrak{J}^{\phi \kappa}_{\beta} + \left( + \frac{1}{60} I_0^0 ( \Delta \chi_2 ) + + \frac{1}{42} I_2^0 ( \Delta \chi_2 ) + + \frac{1}{140} I_4^0 ( \Delta \chi_2 ) + \right) + \right] \, , +\end{split}\]

    with

    \[\begin{split} + \mathfrak{J}^{\phi \kappa}_{\alpha} &= + - \frac{\mathcal{H}_0^2 \Omega_{\mathrm{M}0} s_1 D(\chi_2)}{ a_1 s_2 a(\chi_2)} + (\chi_2 - s_2) + \times\\ + &\qquad\qquad + \left[ + 2 f_1 a_1 \mathcal{H}_1^2 (\mathit{f}_{\mathrm{evo}, 1} - 3) + + 3 \mathcal{H}_0^2 \Omega_{\mathrm{M}0} (f_1 + \mathcal{R}_1 + 5 s_{\mathrm{b}, 1} - 2) + \right] \nonumber + \, , \\ + %%%%%%%%%%%%%%%%%%% + \mathfrak{J}^{\phi \kappa}_{\beta} &= + 2 y \chi_2^2 - \chi_2 s_1 (y^2 + 3) + 2 y s_1^2 + \, ,\\ + %%%%%%%%%%%%%%%%%%% + \mathfrak{J}^{\phi \kappa}_{20} &= \frac{1}{2} y \Delta\chi_2^2\, , +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + +\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $\mathfrak{R}_1 = \mathfrak{R}(s_1)$, ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}(s) s} ;\]

    • $b_1$, $s_{\mathrm{b}, 1}$, $\mathit{f}_{\mathrm{evo}, 1}$ (and $b_2$, $s_{\mathrm{b}, 2}$, $\mathit{f}_{\mathrm{evo}, 2}$) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    This function is used inside ξ_GNCxLD_Lensing_IntegratedGP with the trapz() from the Trapz Julia package.

    Inputs

    • IP::Point, P1::Point, P2::Point or χ2,s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • b1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:

      • if not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;
      • if you set one or more values, they will override the cosmo ones in this computation;
      • the two sets of values should be different only if you are interested in studing two galaxy species;
      • only the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities.
    • s_lim=nothing : parameter used in order to avoid the divergence of the $\mathcal{R}$ and $\mathfrak{R}$ denominators: when $0 \leq s \leq s_\mathrm{lim}$ the returned values are

      \[\forall \, s \in [ 0, s_\mathrm{lim} ] \; : \quad + \mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}_0 \, s_\mathrm{lim}} \; , \quad + \mathcal{R}(s) = 5 s_{\mathrm{b}} + + \frac{2 - 5 s_{\mathrm{b}}}{\mathcal{H}_0 \, s_\mathrm{lim}} + + \frac{\dot{\mathcal{H}}}{\mathcal{H}_0^2} - \mathit{f}_{\mathrm{evo}} \; .\]

      If nothing, the fault value stored in cosmo will be considered.

    See also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole

    source
    GaPSE.integrand_ξ_GNCxLD_Doppler_LensingFunction
    integrand_ξ_GNCxLD_Doppler_Lensing(
    +    IP::Point, P1::Point, P2::Point, y, cosmo::Cosmology;
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing,
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing ) ::Float64
    +
    +integrand_ξ_GNCxLD_Doppler_Lensing(
    +    χ2::Float64, s1::Float64, s2::Float64,
    +    y, cosmo::Cosmology; kwargs... ) ::Float64

    Return the integrand of the Two-Point Correlation Function (TPCF) given by the cross correlation between the Doppler effect arising from the Galaxy Number Counts (GNC) and the Lensing one arising from the Luminosity Distance (LD) perturbations.

    In the first method, you should pass the two extreme Points (P1 and P2) and the intermediate integrand Point (IP) where to evaluate the function. In the second method (that internally recalls the first), you must provide the three corresponding comoving distances s1, s2, χ2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this integrand is the following:

    \[\begin{split} + f^{v_{\parallel}\kappa} (\chi_2, s_1, s_2, y) = + D_1 + \mathfrak{J}^{\kappa v_{\parallel}}_{\alpha} \times \\ + &\left[ + \mathfrak{J}^{\kappa v_{\parallel}}_{00} I_0^0(\Delta\chi_2) + + \mathfrak{J}^{\kappa v_{\parallel}}_{02} I_2^0(\Delta\chi_2) + + \mathfrak{J}^{\kappa v_{\parallel}}_{04} I_4^0(\Delta\chi_2) + + \mathfrak{J}^{\kappa v_{\parallel}}_{20} I_0^2(\Delta\chi_2) + \right] +\end{split}\]

    with

    \[\begin{split} + \mathfrak{J}^{\kappa v_{\parallel}}_{\alpha} &= + - \mathcal{H}_0^2 \Omega_{\mathrm{M}0} f_1 \mathcal{H}_1 \mathcal{R}_1 + \frac{D(\chi_2) (\chi_2 - s_2)}{a(\chi_2) s_2} + \, , \\ + %%%%%%%%%%%%%%%%%%%%%%%% + \mathfrak{J}^{\kappa v_{\parallel}}_{00} & = + \frac{1}{15} + \left[ + \chi_2^2 y + \chi_2(4 y^2 - 3) s_1 - 2 y s_1^2 + \right] + \, , \\ + %%%%%%%%%%%%%%%%%%%%%%%% + \mathfrak{J}^{\kappa v_{\parallel}}_{02} & = + \frac{1}{42 \Delta\chi_2^2} + \left[ + 4 \chi_2^4 y + 4 \chi_2^3 (2 y^2 - 3) s_1 + + \chi_2^2 y (11 - 23 y^2) s_1^2 + + \right.\\ + &\left.\qquad\qquad\qquad + \chi_2 (23 y^2 - 3) s_1^3 - 8 y s_1^4 + \right] \nonumber + \, , \\ + %%%%%%%%%%%%%%%%%%%%%%%% + \mathfrak{J}^{\kappa v_{\parallel}}_{04} & = + \frac{1}{70 \Delta\chi_2^2} + \left[ + 2\chi_2^4 y + 2 \chi_2^3 (2 y^2 - 3) s_1 - + \chi_2^2 y (y^2 + 5) s_1^2 + + \right.\\ + &\left.\qquad\qquad\qquad + \chi_2 (y^2 + 9) s_1^3 - 4 y s_1^4 + \right] \nonumber + \, , \\ + %%%%%%%%%%%%%%%%%%%%%%%% + \mathfrak{J}^{\kappa v_{\parallel}}_{20} & = y \Delta\chi_2^2 + \, , +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + +\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $\mathfrak{R}_1 = \mathfrak{R}(s_1)$, ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}(s) s} ;\]

    • $b_1$, $s_{\mathrm{b}, 1}$, $\mathit{f}_{\mathrm{evo}, 1}$ (and $b_2$, $s_{\mathrm{b}, 2}$, $\mathit{f}_{\mathrm{evo}, 2}$) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    This function is used inside ξ_GNCxLD_Doppler_Lensing with the trapz() from the Trapz Julia package.

    Inputs

    • IP::Point, P1::Point, P2::Point or χ2,s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • b1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:

      • if not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;
      • if you set one or more values, they will override the cosmo ones in this computation;
      • the two sets of values should be different only if you are interested in studing two galaxy species;
      • only the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities.
    • s_lim=nothing : parameter used in order to avoid the divergence of the $\mathcal{R}$ and $\mathfrak{R}$ denominators: when $0 \leq s \leq s_\mathrm{lim}$ the returned values are

      \[\forall \, s \in [ 0, s_\mathrm{lim} ] \; : \quad + \mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}_0 \, s_\mathrm{lim}} \; , \quad + \mathcal{R}(s) = 5 s_{\mathrm{b}} + + \frac{2 - 5 s_{\mathrm{b}}}{\mathcal{H}_0 \, s_\mathrm{lim}} + + \frac{\dot{\mathcal{H}}}{\mathcal{H}_0^2} - \mathit{f}_{\mathrm{evo}} \; .\]

      If nothing, the fault value stored in cosmo will be considered.

    See also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole

    source
    GaPSE.integrand_ξ_GNCxLD_Lensing_LensingFunction
    integrand_ξ_GNCxLD_Lensing_Lensing(
    +    IP1::Point, IP2::Point, P1::Point, P2::Point, y, cosmo::Cosmology;
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing,
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing ) ::Float64
    +
    +integrand_ξ_GNCxLD_Lensing_Lensing(
    +    χ1::Float64, χ2::Float64,
    +    s1::Float64, s2::Float64,
    +    y, cosmo::Cosmology; kwargs... ) ::Float64

    Return the integrand of the Two-Point Correlation Function (TPCF) given by the cross correlation between the Lensing effect arising from the Galaxy Number Counts (GNC) and the Lensing one arising from the Luminosity Distance (LD) perturbations.

    In the first method, you should pass the two extreme Points (P1 and P2) and the two intermediate integrand Points (IP1 and IP2) where to evaluate the function. In the second method (that internally recalls the first), you must provide the three corresponding comoving distances s1, s2, χ1, χ2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this integrand is the following:

    \[\begin{split} + f^{\kappa\kappa} (\chi_1, \chi_2, s_1, s_2, y) = + \mathfrak{J}^{\kappa\kappa}_{\alpha} + &\left[ + \mathfrak{J}^{\kappa\kappa}_{00} I_0^0(\Delta\chi) + + \mathfrak{J}^{\kappa\kappa}_{02} I_2^0(\Delta\chi) + + \right.\\ + &\left. + \mathfrak{J}^{\kappa\kappa}_{31} I_1^3(\Delta\chi) + + \mathfrak{J}^{\kappa\kappa}_{22} I_2^2(\Delta\chi) + \right] \nonumber \, , +\end{split}\]

    with

    \[\begin{split} + \mathfrak{J}^{\kappa\kappa}_{\alpha} & = + - \frac{ + \mathcal{H}_0^4 \Omega_{\mathrm{M}0}^2 D(\chi_1) D(\chi_2) + }{ + s_1 s_2 a(\chi_1) a(\chi_2)} + (\chi_1 - s_1)(\chi_2 - s_2) + (5 s_{\mathrm{b}, 2} - 1) + \, , \\ + %%%%&%%%%%%%%%%%%% + \mathfrak{J}^{\kappa\kappa}_{00} & = + -\frac{ 3 \chi_1^2 \chi_2^2}{4 \Delta\chi^4} (y^2 - 1) + \left[ + 8 y (\chi_1^2 + \chi_2^2) - 9\chi_1\chi_2y^2 - + 7\chi_1\chi_2 + \right] + \, , \\ + %%%%&%%%%%%%%%%%%% + \mathfrak{J}^{\kappa\kappa}_{02} & = + -\frac{ 3 \chi_1^2 \chi_2^2}{2 \Delta\chi^4}(y^2 - 1) + \left[ + 4 y (\chi_1^2 + \chi_2^2) - 3 \chi_1 \chi_2 y^2 - + 5 \chi_1 \chi_2 + \right] + \, , \\ + %%%%%%%%%%%%%%%%%% + \mathfrak{J}^{\kappa\kappa}_{31} & = 9 y \Delta\chi^2 + \, , \\ + %%%%%%%%%%%%%%%%%% + \mathfrak{J}^{\kappa\kappa}_{22} & = + \frac{9 \chi_1 \chi_2}{4 \Delta\chi^4} + \left[ + 2(\chi_1^4 + \chi_2^4)(7 y^2 - 3) - + 16 y \chi_1 \chi_2 (\chi_1^2 + \chi_2^2)(y^2 + 1) + + \right.\\ + &\left.\qquad\qquad\qquad + \chi_1^2 \chi_2^2 (11y^4 + 14y^2 + 23) + \right] + \, , +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + +\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $\mathfrak{R}_1 = \mathfrak{R}(s_1)$, ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}(s) s} ;\]

    • $b_1$, $s_{\mathrm{b}, 1}$, $\mathit{f}_{\mathrm{evo}, 1}$ (and $b_2$, $s_{\mathrm{b}, 2}$, $\mathit{f}_{\mathrm{evo}, 2}$) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    This function is used inside ξ_GNCxLD_Lensing_Lensing with the trapz() from the Trapz Julia package.

    Inputs

    • IP1::Point, IP2::Point, P1::Point, P2::Point or χ1,χ2,s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • b1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:

      • if not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;
      • if you set one or more values, they will override the cosmo ones in this computation;
      • the two sets of values should be different only if you are interested in studing two galaxy species;
      • only the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities.
    • s_lim=nothing : parameter used in order to avoid the divergence of the $\mathcal{R}$ and $\mathfrak{R}$ denominators: when $0 \leq s \leq s_\mathrm{lim}$ the returned values are

      \[\forall \, s \in [ 0, s_\mathrm{lim} ] \; : \quad + \mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}_0 \, s_\mathrm{lim}} \; , \quad + \mathcal{R}(s) = 5 s_{\mathrm{b}} + + \frac{2 - 5 s_{\mathrm{b}}}{\mathcal{H}_0 \, s_\mathrm{lim}} + + \frac{\dot{\mathcal{H}}}{\mathcal{H}_0^2} - \mathit{f}_{\mathrm{evo}} \; .\]

      If nothing, the fault value stored in cosmo will be considered.

    See also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole

    source
    GaPSE.integrand_ξ_GNCxLD_Lensing_DopplerFunction
    integrand_ξ_GNCxLD_Lensing_Doppler(
    +    IP::Point, P1::Point, P2::Point, y, cosmo::Cosmology;
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing,
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing ) ::Float64
    +
    +integrand_ξ_GNCxLD_Lensing_Doppler(
    +    χ1::Float64, s1::Float64, s2::Float64, y, cosmo::Cosmology;
    +    kwargs... ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Lensing effect arising from the Galaxy Number Counts (GNC) and the Doppler one arising from the Luminosity Distance (LD) perturbations.

    In the first method, you should pass the two extreme Points (P1 and P2) and the intermediate integrand Point (IP) where to evaluate the function. In the second method (that internally recalls the first), you must provide the three corresponding comoving distances s1, s2, χ2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this TPCF is the following:

    \[\begin{split} + f^{\kappa v_{\parallel}} (\chi_1, s_1, s_2, y) = + D_2 \, + \mathfrak{J}^{\kappa v_{\parallel}}_{\alpha} \times \\ + &\left[ + \mathfrak{J}^{\kappa v_{\parallel}}_{00} I_0^0(\Delta\chi_1) + + \mathfrak{J}^{\kappa v_{\parallel}}_{02} I_2^0(\Delta\chi_1) + + \mathfrak{J}^{\kappa v_{\parallel}}_{04} I_4^0(\Delta\chi_1) + + \mathfrak{J}^{\kappa v_{\parallel}}_{20} I_0^2(\Delta\chi_1) + \right], +\end{split}\]

    with

    \[\begin{split} + \mathfrak{J}^{\kappa v_{\parallel}}_{\alpha} &= + - \mathcal{H}_0^2 \Omega_{\mathrm{M}0} f_2 \mathcal{H}_2 \mathfrak{R}_2 + \frac{D(\chi_1) (\chi_1 - s_1)}{a(\chi_1) s_1} + (5 s_{\mathrm{b}, 1} - 2 ) + \, , \\ + %%%%%%%%%%%%%%%%%%%%%%%% + \mathfrak{J}^{\kappa v_{\parallel}}_{00} & = + \frac{1}{15} + \left[ + \chi_1^2 y + \chi_1(4 y^2 - 3) s_2 - 2 y s_2^2 + \right] + \, , \\ + %%%%%%%%%%%%%%%%%%%%%%%% + \mathfrak{J}^{\kappa v_{\parallel}}_{02} & = + \frac{1}{42 \Delta\chi_1^2} + \left[ + 4 \chi_1^4 y + 4 \chi_1^3 (2 y^2 - 3) s_2 + + \chi_1^2 y (11 - 23 y^2) s_2^2 + + \right.\\ + &\left.\qquad\qquad\qquad + \chi_1 (23 y^2 - 3) s_2^3 - 8 y s_2^4 + \right] \nonumber + \, , \\ + %%%%%%%%%%%%%%%%%%%%%%%% + \mathfrak{J}^{\kappa v_{\parallel}}_{04} & = + \frac{1}{70 \Delta\chi_1^2} + \left[ + 2\chi_1^4 y + 2 \chi_1^3 (2 y^2 - 3) s_2 - + \chi_1^2 y (y^2 + 5) s_2^2 + + \right.\\ + &\left.\qquad\qquad\qquad + \chi_1(y^2 + 9) s_2^3 - 4 y s_2^4 + \right] \nonumber + \, , \\ + %%%%%%%%%%%%%%%%%%%%%%%% + \mathfrak{J}^{\kappa v_{\parallel}}_{20} & = y \Delta\chi_1^2 + \,, +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + +\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $\mathfrak{R}_1 = \mathfrak{R}(s_1)$, ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}(s) s} ;\]

    • $b_1$, $s_{\mathrm{b}, 1}$, $\mathit{f}_{\mathrm{evo}, 1}$ (and $b_2$, $s_{\mathrm{b}, 2}$, $\mathit{f}_{\mathrm{evo}, 2}$) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    This function is used inside ξ_GNCxLD_Lensing_Doppler with the trapz() from the Trapz Julia package.

    Inputs

    • IP::Point, P1::Point, P2::Point or χ1,s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • b1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:

      • if not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;
      • if you set one or more values, they will override the cosmo ones in this computation;
      • the two sets of values should be different only if you are interested in studing two galaxy species;
      • only the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities.
    • s_lim=nothing : parameter used in order to avoid the divergence of the $\mathcal{R}$ and $\mathfrak{R}$ denominators: when $0 \leq s \leq s_\mathrm{lim}$ the returned values are

      \[\forall \, s \in [ 0, s_\mathrm{lim} ] \; : \quad + \mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}_0 \, s_\mathrm{lim}} \; , \quad + \mathcal{R}(s) = 5 s_{\mathrm{b}} + + \frac{2 - 5 s_{\mathrm{b}}}{\mathcal{H}_0 \, s_\mathrm{lim}} + + \frac{\dot{\mathcal{H}}}{\mathcal{H}_0^2} - \mathit{f}_{\mathrm{evo}} \; .\]

      If nothing, the fault value stored in cosmo will be considered.

    See also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole

    source
    GaPSE.integrand_ξ_GNCxLD_Newtonian_IntegratedGPFunction
    integrand_ξ_GNCxLD_Newtonian_IntegratedGP(
    +    IP::Point, P1::Point, P2::Point, y, cosmo::Cosmology;
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing,
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing ) ::Float64
    +
    +integrand_ξ_GNCxLD_Newtonian_IntegratedGP(
    +    χ2::Float64, s1::Float64, s2::Float64,
    +    y, cosmo::Cosmology; kwargs... ) ::Float64

    Return the integrand of the Two-Point Correlation Function (TPCF) given by the cross correlation between the Newtonian effect arising from the Galaxy Number Counts (GNC) and the Integrated Gravitational Potential (GP) one arising from the Luminosity Distance (LD) perturbations.

    In the first method, you should pass the two extreme Points (P1 and P2) and the intermediate integrand Point (IP) where to evaluate the function. In the second method (that internally recalls the first), you must provide the three corresponding comoving distances s1, s2, χ2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this integrand is the following:

    \[\begin{split} + f^{\delta \int\!\phi}(\chi_2, s_1 , s_2, y ) = + D_1 \; + &\mathfrak{J}^{\delta \int\!\phi}_{\alpha} + \left[ + \mathfrak{J}^{\delta \int\!\phi}_{20} I_0^2 ( \Delta\chi_2 ) + + \right. \\ + & \left. + \mathfrak{J}^{\delta \int\!\phi}_{\beta} + \left( + \frac{1}{15} I_0^0 ( \Delta\chi_2 ) + + \frac{1}{21} I_2^0 ( \Delta\chi_2 ) + + \frac{1}{35} I_4^0 ( \Delta\chi_2 ) + \right) + \right] \,, +\end{split}\]

    with

    \[\begin{split} + \mathfrak{J}^{\delta \int\!\phi}_{\alpha} &= + - \frac{\mathcal{H}_0^2 \Omega_{\mathrm{M}0} D(\chi_2)}{3 a(\chi_2) s_2} + \left[ + s_2 \mathfrak{R}_2 \mathcal{H}(\chi_2) ( f(\chi_2) - 1) - 1 + \right] + \, , \\ + %%%%%%%%%%%%%%%%%%%%% + \mathfrak{J}^{\delta \int\!\phi}_{\beta} &= + f_1 \left[ + (3 y^2 - 1) \chi_2^2 - 4 y s_1 \chi_2 + 2 s_1^2 + \right] + \, , \\ + %%%%%%%%%%%%%%%%%%%%% + \mathfrak{J}^{\delta \int\!\phi}_{20} &= + - \Delta\chi_2^2 ( 3 b_1 + f_1) + \, , +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + +\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $\mathfrak{R}_1 = \mathfrak{R}(s_1)$, ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}(s) s} ;\]

    • $b_1$, $s_{\mathrm{b}, 1}$, $\mathit{f}_{\mathrm{evo}, 1}$ (and $b_2$, $s_{\mathrm{b}, 2}$, $\mathit{f}_{\mathrm{evo}, 2}$) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    This function is used inside ξ_GNCxLD_Newtonian_IntegratedGP with the trapz() from the Trapz Julia package.

    Inputs

    • IP::Point, P1::Point, P2::Point or χ2,s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • b1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:

      • if not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;
      • if you set one or more values, they will override the cosmo ones in this computation;
      • the two sets of values should be different only if you are interested in studing two galaxy species;
      • only the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities.
    • s_lim=nothing : parameter used in order to avoid the divergence of the $\mathcal{R}$ and $\mathfrak{R}$ denominators: when $0 \leq s \leq s_\mathrm{lim}$ the returned values are

      \[\forall \, s \in [ 0, s_\mathrm{lim} ] \; : \quad + \mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}_0 \, s_\mathrm{lim}} \; , \quad + \mathcal{R}(s) = 5 s_{\mathrm{b}} + + \frac{2 - 5 s_{\mathrm{b}}}{\mathcal{H}_0 \, s_\mathrm{lim}} + + \frac{\dot{\mathcal{H}}}{\mathcal{H}_0^2} - \mathit{f}_{\mathrm{evo}} \; .\]

      If nothing, the fault value stored in cosmo will be considered.

    See also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole

    source
    GaPSE.integrand_ξ_GNCxLD_Lensing_LocalGPFunction
    integrand_ξ_GNCxLD_Lensing_LocalGP(
    +	IP::Point, P1::Point, P2::Point, y, cosmo::Cosmology;
    +	b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing,
    +	𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing ) ::Float64
    +
    +integrand_ξ_GNCxLD_Lensing_LocalGP(
    +	χ1::Float64, s1::Float64, s2::Float64, 
    +	y, cosmo::Cosmology; kwargs... ) ::Float64

    Return the integrand of the Two-Point Correlation Function (TPCF) given by the cross correlation between the Lensing effect arising from the Galaxy Number Counts (GNC) and the Local Gravitational Potential (GP) one arising from the Luminosity Distance (LD) perturbations.

    In the first method, you should pass the two extreme Points (P1 and P2) and the intermediate integrand Point (IP) where to evaluate the function. In the second method (that internally recalls the first), you must provide the three corresponding comoving distances s1, s2, χ2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this integrand is the following:

    \[\begin{split} + f^{\kappa \phi} (\chi_1, s_1, s_2, y) = + D_2 + \mathfrak{J}^{\kappa \phi}_{\alpha} \left[ + \mathfrak{J}^{\kappa \phi}_{31} I_1^3(\Delta\chi_1) + + \mathfrak{J}^{\kappa \phi}_{22} I_2^2(\Delta\chi_1) + \right] \nonumber \, , +\end{split}\]

    with

    \[\begin{split} + \mathfrak{J}^{\kappa \phi}_{\alpha} &= + - \frac{ + 9 \mathcal{H}_0^4 \Omega_{\mathrm{M}0}^2 s_2 D(\chi_1)(s_1 - \chi_1) + }{ + 4 a_2 s_1a(\chi_1) + } + (1 + \mathfrak{R}_2) + (5 s_{\mathrm{b}, 1} - 2) + \, , \\ + %%%%%%%%%%%%%%%%%%%%%%%% + \mathfrak{J}^{\kappa \phi}_{31} & = -2 y \Delta\chi_1^2 + \, , \\ + %%%%%%%%%%%%%%%%%%%%%%%% + \mathfrak{J}^{\kappa \phi}_{22} & = \chi_1 s_2 (1 - y^2) + \,, +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathcal{R}_1 = \mathcal{R}(s_1)$, ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathcal{R}(s) = 5 s_{\mathrm{b}}(s) + \frac{2 - 5 s_{\mathrm{b}}(s)}{\mathcal{H}(s) \, s} + +\frac{\dot{\mathcal{H}}(s)}{\mathcal{H}(s)^2} - \mathit{f}_{\mathrm{evo}} \quad ;\]

    • $\mathfrak{R}_1 = \mathfrak{R}(s_1)$, ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}(s) s} ;\]

    • $b_1$, $s_{\mathrm{b}, 1}$, $\mathit{f}_{\mathrm{evo}, 1}$ (and $b_2$, $s_{\mathrm{b}, 2}$, $\mathit{f}_{\mathrm{evo}, 2}$) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    This function is used inside ξ_GNCxLD_Lensing_LocalGP with the trapz() from the Trapz Julia package.

    Inputs

    • IP::Point, P1::Point, P2::Point or χ1,s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • b1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:

      • if not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;
      • if you set one or more values, they will override the cosmo ones in this computation;
      • the two sets of values should be different only if you are interested in studing two galaxy species;
      • only the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities.
    • s_lim=nothing : parameter used in order to avoid the divergence of the $\mathcal{R}$ and $\mathfrak{R}$ denominators: when $0 \leq s \leq s_\mathrm{lim}$ the returned values are

      \[\forall \, s \in [ 0, s_\mathrm{lim} ] \; : \quad + \mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}_0 \, s_\mathrm{lim}} \; , \quad + \mathcal{R}(s) = 5 s_{\mathrm{b}} + + \frac{2 - 5 s_{\mathrm{b}}}{\mathcal{H}_0 \, s_\mathrm{lim}} + + \frac{\dot{\mathcal{H}}}{\mathcal{H}_0^2} - \mathit{f}_{\mathrm{evo}} \; .\]

      If nothing, the fault value stored in cosmo will be considered.

    See also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole

    source

    Two-Point Cross-Correlation Function multipoles

    GaPSE.integrand_ξ_GNCxLD_multipoleFunction
    integrand_ξ_GNCxLD_multipole(s1, s, μ, effect::Function, cosmo::Cosmology;
    +    L::Int = 0, use_windows::Bool = true, kwargs...)
    +
    +integrand_ξ_GNCxLD_multipole(s1, s, μ, effect::String, cosmo::Cosmology; kwargs...)

    Return the integrand on $\mu = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}$ of the chosen two-point cross correlation between a Galaxy Number Counts (GNC) effect and a perturbation of the Luminosity Distance (LD) term, i.e. the following function $f(s_1, s, \mu)$:

    \[ f_L(s_1, s, \mu) = \xi \left(s_1, s_2, y\right) + \, \mathcal{L}_L(\mu) \, \times + \begin{cases} + \frac{1}{\mathcal{N}}\mathcal{F}(s, \mu) \quad \mathrm{use\_windows == true} \\ + 1 \quad\quad \mathrm{use\_windows == false} + \end{cases}\]

    where:

    • $s_2 = s_2(s_1, s, \mu) = \sqrt{s_1^2 + s^2 + 2 \, s_1 \, s \, \mu}$
    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2 = \frac{\mu \, s + s_1}{s_2(s_1, s, \mu)}$
    • $\xi$ is the corresponding GNCxLD TPCF effect
    • $\mathcal{L}_L(\mu)$ is the Legendre polynomial of order $L$
    • $\mathcal{F}(s, \mu)$ is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)
    • $\mathcal{N}$ is the integrated window function norm (check the documentation of WindowFIntegrated)

    In the former method you have to pass as an input the GNCxLD effect function you want to integrate, while in the (recommended) latter one it's necessary to specify the name of the GNCxLD TPCF term among the following:

    newton_doppler , newton_lensing , newton_localgp , newton_integratedgp , doppler_doppler , doppler_lensing , doppler_localgp , doppler_integratedgp , lensing_doppler , lensing_lensing , lensing_localgp , lensing_integratedgp , localgp_doppler , localgp_lensing , localgp_localgp , localgp_integratedgp , integratedgp_doppler , integratedgp_lensing , integratedgp_localgp , integratedgp_integratedgp ,

    to which correspond the following functions, respectively:

    ξ_GNCxLD_Newtonian_Doppler , ξ_GNCxLD_Newtonian_Lensing , ξ_GNCxLD_Newtonian_LocalGP , ξ_GNCxLD_Newtonian_IntegratedGP , ξ_GNCxLD_Doppler_Doppler , ξ_GNCxLD_Doppler_Lensing , ξ_GNCxLD_Doppler_LocalGP , ξ_GNCxLD_Doppler_IntegratedGP , ξ_GNCxLD_Lensing_Doppler , ξ_GNCxLD_Lensing_Lensing , ξ_GNCxLD_Lensing_LocalGP , ξ_GNCxLD_Lensing_IntegratedGP , ξ_GNCxLD_LocalGP_Doppler , ξ_GNCxLD_LocalGP_Lensing , ξ_GNCxLD_LocalGP_LocalGP , ξ_GNCxLD_LocalGP_IntegratedGP , ξ_GNCxLD_IntegratedGP_Doppler , ξ_GNCxLD_IntegratedGP_Lensing , ξ_GNCxLD_IntegratedGP_LocalGP , ξ_GNCxLD_IntegratedGP_IntegratedGP ,

    Internally, the second method recall the first, so all the keyword arguments are in common.

    Note that these is an internal conversion of coordiate sistems from (s1, s, μ) to (s1, s2, y) thorugh the functions y and s2. The inverse relations are:

    • $s = s(s_1, s_2, y) = \sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$
    • $\mu = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}} = \frac{y \, s_2 - s_1}{s(s_1, s_2, y)}$.

    Inputs

    • s1: the comoving distance where must be evaluated the integral

    • s: the comoving distance from s1 where must be evaluated the integral

    • μ: the cosine between s1 and s where must be evaluated the integral

    • effect::Function or effect::String : name/function you want to consider, among the ones inside GaPSE.GR_EFFECTS_GNCxLD/GaPSE.VEC_ξs_GNCxLD respectively.

    • cosmo::Cosmology: cosmology to be used in this computation

    Optional arguments

    • L::Int = 0: order of the Legendre polynomial to be used

    • use_windows::Bool = false: tells if the integrand must consider the two window function $\phi$ and $\mathcal{F}$

    • kwargs... : other keyword arguments that will be passed to the selected GR TPCF effect (ξ_GNCxLD_Doppler, ξ_GNCxLD_Lensing, ...)

    See also: ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole, WindowFIntegrated, ϕ, Cosmology, y, s2, GR_EFFECTS_GNCxLD, GaPSE.VEC_ξs_GNCxLD

    source
    GaPSE.ξ_GNCxLD_multipoleFunction
    ξ_GNCxLD_multipole(
    +    s1, s, effect::Function, cosmo::Cosmology;
    +    L::Int = 0, alg::Symbol = :lobatto, 
    +    use_windows::Bool = true, 
    +    N_lob::Int = 100, N_trap::Int = 200, 
    +    atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,
    +    enhancer::Float64 = 1e6, 
    +    kwargs...) ::Float64
    +
    +ξ_GNCxLD_multipole(s1, s, effect::String, cosmo::Cosmology; 
    +    kwargs...) ::Float64

    Evaluate the multipole of order L of the chosen two-point cross correlation between a Galaxy Number Counts (GNC) effect and a perturbation of the Luminosity Distance (LD) term i.e. the following function $\xi_L(s_1, s)$:

    \[ \xi_L(s_1, s) = \frac{2 L + 1}{2} \int_{-1}^{+1} \mathrm{d}\mu \; + \xi (s_1, s_2, \cos{\theta}) \, \mathcal{L}_L(\mu) \, \times + \begin{cases} + \frac{1}{\mathcal{N}}\mathcal{F}(s, \mu) \quad \mathrm{use\_windows == true} \\ + 1 \quad\quad \mathrm{use\_windows == false} + \end{cases}\]

    where:

    • $s_2 = s_2(s_1, s, \mu) = \sqrt{s_1^2 + s^2 + 2 \, s_1 \, s \, \mu}$
    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2 = \frac{\mu \, s + s_1}{s_2(s_1, s, \mu)}$
    • $\xi$ is the corresponding GNCxLD TPCF effect
    • $\mathcal{L}_L(\mu)$ is the Legendre polynomial of order $L$
    • $\mathcal{F}(s, \mu)$ is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)
    • $\mathcal{N}$ is the integrated window function norm (check the documentation of WindowFIntegrated)

    In the former method you have to pass as an input the GNCxLD effect function you want to integrate, while in the (recommended) latter one it's necessary to specify the name of the GNCxLD TPCF term among the following:

    newton_doppler , newton_lensing , newton_localgp , newton_integratedgp , doppler_doppler , doppler_lensing , doppler_localgp , doppler_integratedgp , lensing_doppler , lensing_lensing , lensing_localgp , lensing_integratedgp , localgp_doppler , localgp_lensing , localgp_localgp , localgp_integratedgp , integratedgp_doppler , integratedgp_lensing , integratedgp_localgp , integratedgp_integratedgp ,

    to which correspond the following functions:

    ξ_GNCxLD_Newtonian_Doppler , ξ_GNCxLD_Newtonian_Lensing , ξ_GNCxLD_Newtonian_LocalGP , ξ_GNCxLD_Newtonian_IntegratedGP , ξ_GNCxLD_Doppler_Doppler , ξ_GNCxLD_Doppler_Lensing , ξ_GNCxLD_Doppler_LocalGP , ξ_GNCxLD_Doppler_IntegratedGP , ξ_GNCxLD_Lensing_Doppler , ξ_GNCxLD_Lensing_Lensing , ξ_GNCxLD_Lensing_LocalGP , ξ_GNCxLD_Lensing_IntegratedGP , ξ_GNCxLD_LocalGP_Doppler , ξ_GNCxLD_LocalGP_Lensing , ξ_GNCxLD_LocalGP_LocalGP , ξ_GNCxLD_LocalGP_IntegratedGP , ξ_GNCxLD_IntegratedGP_Doppler , ξ_GNCxLD_IntegratedGP_Lensing , ξ_GNCxLD_IntegratedGP_LocalGP , ξ_GNCxLD_IntegratedGP_IntegratedGP ,

    Internally, the second method recall the first, so all the keyword arguments are in common.

    Note that these is an internal conversion of coordiate sistems from (s1, s, μ) to (s1, s2, y) thorugh the functions y and s2. The inverse relations are:

    • $s = s(s_1, s_2, y) = \sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$
    • $\mu = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}} = \frac{y \, s_2 - s_1}{s(s_1, s_2, y)}$.

    Inputs

    • s1: the comoving distance where must be evaluated the integral

    • s: the comoving distance from s1 where must be evaluated the integral

    • effect::Function or effect::String : name/function you want to consider, among the ones inside GaPSE.GR_EFFECTS_GNCxLD/GaPSE.VEC_ξs_GNCxLD respectively.

    • cosmo::Cosmology: cosmology to be used in this computation

    Optional arguments

    • L::Int = 0: order of the Legendre polynomial to be used

    • alg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):

      • :quad -> the integration over $\mu$ will be preformed through the Julia function quadgk

      from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.

      • :trap -> the integration over $\mu$ will be preformed through the Julia function trapz

      from the Trapz.jl Julia package, that uses the simple trapezoidal rulae.

      • :lobatto -> the integration over $\mu$ will be preformed through the Julia function gausslobatto

      from the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!

    • use_windows::Bool = false: tells if the integrand must consider the two window function $\phi$ and $\mathcal{F}$

    • N_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • N_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    • kwargs... : other keyword arguments that will be passed to the selected GNCxLD TPCF effect (ξ_GNCxLD_Doppler, ξ_GNCxLD_Lensing, ...)

    See also: integrand_ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole WindowFIntegrated, Cosmology, y, s2, GR_EFFECTS_GNCxLD, VEC_ξs_GNCxLD

    source
    GaPSE.map_ξ_GNCxLD_multipoleFunction
    map_ξ_GNCxLD_multipole(cosmo::Cosmology,
    +    effect::Union{String,Function}, ss = nothing;
    +    s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,
    +    N_lob::Int = 100, N_trap::Int = 50,
    +    atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,
    +    enhancer::Float64=1e6, N_log::Int = 1000, 
    +    pr::Bool = true,
    +    kwargs...) ::Tuple{Vector{Float64}, Vector{Float64}}

    Evaluate the multipole of order L of the chosen two-point cross correlation between a Galaxy Number Counts (GNC) effect and a perturbation of the Luminosity Distance (LD) term for all the comoving distance values stored inside ss. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). If s1 = nothing, it is set s1 = cosmo.s_eff.

    The function evaluated is then the following $\xi_L(s_1, s)$:

    \[ \xi_L(s_1, s) = \frac{2 L + 1}{2} \int_{-1}^{+1} \mathrm{d}\mu \; + \xi (s_1, s_2, \cos{\theta}) \, \mathcal{L}_L(\mu) \, \times + \begin{cases} + \frac{1}{\mathcal{N}}\mathcal{F}(s, \mu) \quad \mathrm{use\_windows == true} \\ + 1 \quad\quad \mathrm{use\_windows == false} + \end{cases}\]

    where:

    • $s_2 = s_2(s_1, s, \mu) = \sqrt{s_1^2 + s^2 + 2 \, s_1 \, s \, \mu}$
    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2 = \frac{\mu \, s + s_1}{s_2(s_1, s, \mu)}$
    • $\xi$ is the corresponding GNCxLD TPCF effect
    • $\mathcal{L}_L(\mu)$ is the Legendre polynomial of order $L$
    • $\mathcal{F}(s, \mu)$ is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)
    • $\mathcal{N}$ is the integrated window function norm (check the documentation of WindowFIntegrated)

    Note that these is an internal conversion of coordiate sistems from (s1, s, μ) to (s1, s2, y) thorugh the functions y and s2. The inverse relations are:

    • $s = s(s_1, s_2, y) = \sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$
    • $\mu = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}} = \frac{y \, s_2 - s_1}{s(s_1, s_2, y)}$.

    Inputs

    • cosmo::Cosmology : cosmology to be used in this computation

    • effect::Union{String,Function} : the GR effect TPCF you want to consider; you may specify the name of the effect as one of the following strings (recommended):

      newton_doppler , newton_lensing , newton_localgp , newton_integratedgp , doppler_doppler , doppler_lensing , doppler_localgp , doppler_integratedgp , lensing_doppler , lensing_lensing , lensing_localgp , lensing_integratedgp , localgp_doppler , localgp_lensing , localgp_localgp , localgp_integratedgp , integratedgp_doppler , integratedgp_lensing , integratedgp_localgp , integratedgp_integratedgp ,

      or directly the name of the function among the following:

      ξ_GNCxLD_Newtonian_Doppler , ξ_GNCxLD_Newtonian_Lensing , ξ_GNCxLD_Newtonian_LocalGP , ξ_GNCxLD_Newtonian_IntegratedGP , ξ_GNCxLD_Doppler_Doppler , ξ_GNCxLD_Doppler_Lensing , ξ_GNCxLD_Doppler_LocalGP , ξ_GNCxLD_Doppler_IntegratedGP , ξ_GNCxLD_Lensing_Doppler , ξ_GNCxLD_Lensing_Lensing , ξ_GNCxLD_Lensing_LocalGP , ξ_GNCxLD_Lensing_IntegratedGP , ξ_GNCxLD_LocalGP_Doppler , ξ_GNCxLD_LocalGP_Lensing , ξ_GNCxLD_LocalGP_LocalGP , ξ_GNCxLD_LocalGP_IntegratedGP , ξ_GNCxLD_IntegratedGP_Doppler , ξ_GNCxLD_IntegratedGP_Lensing , ξ_GNCxLD_IntegratedGP_LocalGP , ξ_GNCxLD_IntegratedGP_IntegratedGP ,

    • ss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). This is why it is returned also the vector of the "input" values.

    Optional arguments

    • s1 = nothing : comoving distance from the observer where the TPCF should be evaluated; if s1 = nothing, it is automatically set s1 = cosmo.s_eff from the given input cosmo::Cosmology.

    • L::Int = 0: order of the Legendre polynomial to be used

    • alg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):

      • :quad -> the integration over $\mu$ will be preformed through the Julia function quadgk from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.
      • :trap -> the integration over $\mu$ will be preformed through the Julia function trapz from the Trapz.jl Julia package, that uses the simple trapezoidal rulae.
      • :lobatto -> the integration over $\mu$ will be preformed through the Julia function gausslobatto from the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!
    • use_windows::Bool = false: tells if the integrand must consider the two window function $\phi$ and $\mathcal{F}$

    • N_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • N_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    • N_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing

    • pr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)

    • kwargs... : other keyword arguments that will be passed to the selected GNCxLD TPCF effect (ξ_GNCxLD_Doppler, ξ_GNCxLD_Lensing, ...)

    Returns

    A Tuple{Vector{Float64}, Vector{Float64}}, which has as first element the ss vector and as second one the corresponding ξ value evaluated.

    See also: integrand_ξ_GNCxLD_multipole, ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole, WindowFIntegrated, Cosmology, y, s2, GR_EFFECTS_GNCxLD, GaPSE.VEC_ξs_GNCxLD

    source
    GaPSE.print_map_ξ_GNCxLD_multipoleFunction
    print_map_ξ_GNCxLD_multipole(
    +    cosmo::Cosmology, out::String,
    +    effect::Union{String,Function},
    +    ss = nothing;
    +    s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,
    +    N_lob::Int = 100, N_trap::Int = 50,
    +    atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,
    +    enhancer::Float64=1e6, N_log::Int = 1000, 
    +    pr::Bool = true,
    +    kwargs...)

    Evaluate the multipole of order L of the of the chosen two-point cross correlation between a Galaxy Number Counts (GNC) effect and a perturbation of the Luminosity Distance (LD) term for all the comoving distance values stored inside ss, and print the results (with all the options used) in a file named out. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). If s1 = nothing, it is set s1 = cosmo.s_eff.

    The function evaluated is then the following $\xi_L(s_1, s)$:

    \[ \xi_L(s_1, s) = \frac{2 L + 1}{2} \int_{-1}^{+1} \mathrm{d}\mu \; + \xi (s_1, s_2, \cos{\theta}) \, \mathcal{L}_L(\mu) \, \times + \begin{cases} + \frac{1}{\mathcal{N}}\mathcal{F}(s, \mu) \quad \mathrm{use\_windows == true} \\ + 1 \quad\quad \mathrm{use\_windows == false} + \end{cases}\]

    where:

    • $s_2 = s_2(s_1, s, \mu) = \sqrt{s_1^2 + s^2 + 2 \, s_1 \, s \, \mu}$
    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2 = \frac{\mu \, s + s_1}{s_2(s_1, s, \mu)}$
    • $\xi$ is the corresponding GNCxLD TPCF effect
    • $\mathcal{L}_L(\mu)$ is the Legendre polynomial of order $L$
    • $\mathcal{F}(s, \mu)$ is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)
    • $\mathcal{N}$ is the integrated window function norm (check the documentation of WindowFIntegrated)

    Note that these is an internal conversion of coordiate sistems from (s1, s, μ) to (s1, s2, y) thorugh the functions y and s2. The inverse relations are:

    • $s = s(s_1, s_2, y) = \sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$
    • $\mu = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}} = \frac{y \, s_2 - s_1}{s(s_1, s_2, y)}$.

    Inputs

    • cosmo::Cosmology : cosmology to be used in this computation

    • effect::Union{String,Function} : the GR effect TPCF you want to consider; you may specify the name of the effect as one of the following strings (recommended):

      newton_doppler , newton_lensing , newton_localgp , newton_integratedgp , doppler_doppler , doppler_lensing , doppler_localgp , doppler_integratedgp , lensing_doppler , lensing_lensing , lensing_localgp , lensing_integratedgp , localgp_doppler , localgp_lensing , localgp_localgp , localgp_integratedgp , integratedgp_doppler , integratedgp_lensing , integratedgp_localgp , integratedgp_integratedgp ,

      or directly the name of the function among the following:

      ξ_GNCxLD_Newtonian_Doppler , ξ_GNCxLD_Newtonian_Lensing , ξ_GNCxLD_Newtonian_LocalGP , ξ_GNCxLD_Newtonian_IntegratedGP , ξ_GNCxLD_Doppler_Doppler , ξ_GNCxLD_Doppler_Lensing , ξ_GNCxLD_Doppler_LocalGP , ξ_GNCxLD_Doppler_IntegratedGP , ξ_GNCxLD_Lensing_Doppler , ξ_GNCxLD_Lensing_Lensing , ξ_GNCxLD_Lensing_LocalGP , ξ_GNCxLD_Lensing_IntegratedGP , ξ_GNCxLD_LocalGP_Doppler , ξ_GNCxLD_LocalGP_Lensing , ξ_GNCxLD_LocalGP_LocalGP , ξ_GNCxLD_LocalGP_IntegratedGP , ξ_GNCxLD_IntegratedGP_Doppler , ξ_GNCxLD_IntegratedGP_Lensing , ξ_GNCxLD_IntegratedGP_LocalGP , ξ_GNCxLD_IntegratedGP_IntegratedGP ,

    • out::String : name of the file where the results must be stored.

    • ss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log).

    Optional arguments

    This function recall internally map_ξ_GNCxLD_multipole, so the kwargs are the same; we report them for comfortness:

    • s1 = nothing : comoving distance from the observer where the TPCF should be evaluated; if s1 = nothing, it is automatically set s1 = cosmo.s_eff from the given input cosmo::Cosmology.

    • L::Int = 0: order of the Legendre polynomial to be used

    • alg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):

      • :quad -> the integration over $\mu$ will be preformed through the Julia function quadgk from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.
      • :trap -> the integration over $\mu$ will be preformed through the Julia function trapz from the Trapz.jl Julia package, that uses the simple trapezoidal rulae.
      • :lobatto -> the integration over $\mu$ will be preformed through the Julia function gausslobatto from the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!
    • use_windows::Bool = false: tells if the integrand must consider the two window function $\phi$ and $\mathcal{F}$

    • N_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • N_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    • N_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing

    • pr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)

    • kwargs... : other keyword arguments that will be passed to the selected GNCxLD TPCF effect (ξ_GNCxLD_Doppler, ξ_GNCxLD_Lensing, ...)

    See also: integrand_ξ_GNCxLD_multipole, ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole, WindowFIntegrated, Cosmology, y, s2, GR_EFFECTS_GNCxLD, GaPSE.VEC_ξs_GNCxLD

    source

    Two-Point Cross-Correlation Function Sum multipoles

    GaPSE.sum_ξ_GNCxLD_multipoleFunction
    sum_ξ_GNCxLD_multipole(s1, s, cosmo::Cosmology;
    +    s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,
    +    N_lob::Int = 100, N_trap::Int = 50,
    +    atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,
    +    enhancer::Float64=1e6, N_log::Int = 1000, 
    +    pr::Bool = true,
    +    kwargs...) ::Tuple{Float64, Vector{Float64}}

    Evaluate the multipole of order L of all the two-point cross correlation multipole between the Galaxy Number Counts (GNC) and the perturbations of the Luminosity Distance (LD) and their sum in the comoving distance s1 and a comoving distance s from it for the input cosmo::Cosmology. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    This function makes a for-loop on the GaPSE.GR_EFFECTS_GNCxLD strings, calling ξ_GNCxLD_multipole for each of them. To each string corresponds pretty intuitively one of the 20 GNCxLD effects. They are currently, in order:

    newton_doppler , newton_lensing , newton_localgp , newton_integratedgp , doppler_doppler , doppler_lensing , doppler_localgp , doppler_integratedgp , lensing_doppler , lensing_lensing , lensing_localgp , lensing_integratedgp , localgp_doppler , localgp_lensing , localgp_localgp , localgp_integratedgp , integratedgp_doppler , integratedgp_lensing , integratedgp_localgp , integratedgp_integratedgp ,

    Inputs

    • s1: the comoving distance where must be evaluated the integral

    • s: the comoving distance from s1 where must be evaluated the integral

    • cosmo::Cosmology: cosmology to be used in this computation

    Optional arguments

    This function recall internally ξ_GNCxLD_multipole, so the kwargs are the same; we report them for comfortness:

    • L::Int = 0: order of the Legendre polynomial to be used

    • alg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):

      • :quad -> the integration over $\mu$ will be preformed through the Julia function quadgk from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.
      • :trap -> the integration over $\mu$ will be preformed through the Julia function trapz from the Trapz.jl Julia package, that uses the simple trapezoidal rulae.
      • :lobatto -> the integration over $\mu$ will be preformed through the Julia function gausslobatto from the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!
    • use_windows::Bool = false: tells if the integrand must consider the two window function $\phi$ and $\mathcal{F}$

    • N_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • N_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    • kwargs... : other keyword arguments that will be passed to ALL the GNCxLD TPCF effect (ξ_GNCxLD_Doppler, ξ_GNCxLD_Lensing, ...); if one of them has that keyword argument, it will use the given value, otherwise it will be unaffected.

    Returns

    A tuple containing:

    • the sum of all the ξ multipoles as first element
    • a Vector{Float64} with all the values of each ξ; they are ordered following GR_EFFECTS_GNCxLD

    See also: integrand_ξ_GNCxLD_multipole, ξ_GNCxLD_multipole, map_sum_ξ_GNCxLD_multipole, print_map_sum_ξ_GNCxLD_multipole, Cosmology, GR_EFFECTS_GNCxLD

    source
    GaPSE.map_sum_ξ_GNCxLD_multipoleFunction
    map_sum_ξ_GNCxLD_multipole(
    +    effect::Union{String,Function}, ss = nothing;
    +    s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,
    +    N_lob::Int = 100, N_trap::Int = 50,
    +    atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,
    +    enhancer::Float64=1e6, N_log::Int = 1000, 
    +    pr::Bool = true,
    +    kwargs...) ::Tuple{Vector{Float64}, Vector{Float64}, Vector{Vector{Float64}}}

    Evaluate the multipole of order L of all the two-point cross correlation multipole between the Galaxy Number Counts (GNC) and the perturbations of the Luminosity Distance (LD) and their sum in the comoving distance s1, for all the comoving distances stored inside ss (representing the comoving distance from s1) for the input cosmo::Cosmology. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). If s1 = nothing, it is set s1 = cosmo.s_eff. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    This function makes a for-loop on the GaPSE.GR_EFFECTS_GNCxLD strings, calling map_ξ_GNCxLD_multipole for each of them. To each string corresponds pretty intuitively one of the 20 GNCxLD effects. They are currently, in order:

    newton_doppler , newton_lensing , newton_localgp , newton_integratedgp , doppler_doppler , doppler_lensing , doppler_localgp , doppler_integratedgp , lensing_doppler , lensing_lensing , lensing_localgp , lensing_integratedgp , localgp_doppler , localgp_lensing , localgp_localgp , localgp_integratedgp , integratedgp_doppler , integratedgp_lensing , integratedgp_localgp , integratedgp_integratedgp ,

    Inputs

    • cosmo::Cosmology : cosmology to be used in this computation

    • ss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). This is why it is returned also the vector of the "input" values.

    Optional arguments

    This function recall internally map_ξ_GNCxLD_multipole, so the kwargs are the same; we report them for comfortness:

    • s1 = nothing : comoving distance from the observer where the TPCF should be evaluated; if s1 = nothing, it is automatically set s1 = cosmo.s_eff from the given input cosmo::Cosmology.

    • L::Int = 0: order of the Legendre polynomial to be used

    • alg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):

      • :quad -> the integration over $\mu$ will be preformed through the Julia function quadgk from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.
      • :trap -> the integration over $\mu$ will be preformed through the Julia function trapz from the Trapz.jl Julia package, that uses the simple trapezoidal rulae.
      • :lobatto -> the integration over $\mu$ will be preformed through the Julia function gausslobatto from the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!
    • use_windows::Bool = false: tells if the integrand must consider the two window function $\phi$ and $\mathcal{F}$

    • N_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • N_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    • N_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing

    • pr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)

    • kwargs... : other keyword arguments that will be passed to ALL the GNCxLD TPCF effect (ξ_GNCxLD_Doppler, ξ_GNCxLD_Lensing, ...); if one of them has that keyword argument, it will use the given value, otherwise it will be unaffected.

    Returns

    A tuple containing:

    • as first element, the vector ss itself;
    • as second one, the Vector{Float64} of the sum of all the ξ multipoles;
    • as third one, a Vector{Vector{Float64}} with all the values of each ξ; they are ordered following GR_EFFECTS_GNCxLD

    See also: map_ξ_GNCxLD_multipole, sum_ξ_GNCxLD_multipole, print_map_sum_ξ_GNCxLD_multipole, Cosmology, GR_EFFECTS_GNCxLD

    source
    GaPSE.print_map_sum_ξ_GNCxLD_multipoleFunction
    print_map_sum_ξ_GNCxLD_multipole(
    +    cosmo::Cosmology, out::String, ss = nothing;
    +    s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,
    +    N_lob::Int = 100, N_trap::Int = 50,
    +    atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,
    +    enhancer::Float64=1e6, N_log::Int = 1000, 
    +    pr::Bool = true,
    +    single::Bool = true,
    +    kwargs...)

    Evaluate the multipole of order L of all the two-point cross correlation multipole between the Galaxy Number Counts (GNC) and the perturbations of the Luminosity Distance (LD) and their sum in the comoving distance s1, for all the comoving distances stored inside ss (representing the comoving distance from s1) for the input cosmo::Cosmology; finally, it saves the results inside the file out. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). If s1 = nothing, it is set s1 = cosmo.s_eff. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    This function makes a for-loop on the GaPSE.GR_EFFECTS_GNCxLD strings, calling map_ξ_GNCxLD_multipole for each of them. To each string corresponds pretty intuitively one of the 20 GNCxLD effects. They are currently, in order:

    newton_doppler , newton_lensing , newton_localgp , newton_integratedgp , doppler_doppler , doppler_lensing , doppler_localgp , doppler_integratedgp , lensing_doppler , lensing_lensing , lensing_localgp , lensing_integratedgp , localgp_doppler , localgp_lensing , localgp_localgp , localgp_integratedgp , integratedgp_doppler , integratedgp_lensing , integratedgp_localgp , integratedgp_integratedgp ,

    Inputs

    • cosmo::Cosmology : cosmology to be used in this computation

    • out::String : name of the file where the results must be stored.

    • ss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log).

    Optional arguments

    This function recall internally map_ξ_GNCxLD_multipole, so the kwargs are the same; we report them for comfortness:

    • s1 = nothing : comoving distance from the observer where the TPCF should be evaluated; if s1 = nothing, it is automatically set s1 = cosmo.s_eff from the given input cosmo::Cosmology.

    • L::Int = 0: order of the Legendre polynomial to be used

    • alg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):

      • :quad -> the integration over $\mu$ will be preformed through the Julia function quadgk from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.
      • :trap -> the integration over $\mu$ will be preformed through the Julia function trapz from the Trapz.jl Julia package, that uses the simple trapezoidal rulae.
      • :lobatto -> the integration over $\mu$ will be preformed through the Julia function gausslobatto from the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!
    • use_windows::Bool = false: tells if the integrand must consider the two window function $\phi$ and $\mathcal{F}$

    • N_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • N_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    • N_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing

    • pr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)

    • single::Bool = true : if true, all the CFs are printed inside the file of the sum, in a table with 18 columns (first one for ss, second for their sum an the next 20 for each effect). Otherwise, a new directory "allstandalonesCFs" is created (in the same path given in out) and they are separately saved in files there placed.

    • kwargs... : other keyword arguments that will be passed to ALL the GNCxLD TPCF effect (ξ_GNCxLD_Doppler, ξ_GNCxLD_Lensing, ...); if one of them has that keyword argument, it will use the given value, otherwise it will be unaffected.

    See also: map_ξ_GNCxLD_multipole, sum_ξ_GNCxLD_multipole, map_sum_ξ_GNCxLD_multipole, Cosmology, GR_EFFECTS_GNCxLD

    source
    diff --git a/dev/IPSTools/index.html b/dev/IPSTools/index.html index 3b9fa212..dd6f8cd9 100644 --- a/dev/IPSTools/index.html +++ b/dev/IPSTools/index.html @@ -1,52 +1,56 @@ -Input Power Spectrum Tools · GaPSE.jl

    Tool functions

    GaPSE.InputPSType
     InputPS(
    -      l_si::Float64
    -      l_b::Float64
    -      l_a::Float64
    -      left::Float64
    +Input Power Spectrum Tools · GaPSE.jl

    Tool functions

    GaPSE.InputPSType
    InputPS(
    +    l_si::Float64
    +    l_b::Float64
    +    l_a::Float64
    +    left::Float64
     
    -      spline::Dierckx.Spline1D
    -      
    -      r_si::Float64
    -      r_b::Float64
    -      r_a::Float64
    -      right::Float64)

    Store the Input Power Spectrum.

    Arguments

    • l_si, l_b, l_a :: Float64 : coefficient for the spurious power-law $y = f(x) = a + b \, x^s$ for the LEFT edge; when an input value x < left is given, the returned one is obtained from power_law with this coefficients ( where, of course, l_si is the exponent, l_b the coefficient and l_a the spurious adding constant).

    • left::Float64 : the break between the left power-law (for x <left) and the spline (for x ≥ left); its value is the fit_min of the used constructor.

    • spline::Dierckx.Spline1D : spline that interpolates between the real values of the power spectrum inside the range left ≤ x ≤ right

    • right::Float64 : the break between the right power-law (for x > left) and the spline (for x ≤ right); its value is the fit_max of the used constructor.

    • r_si, r_b, r_a :: Float64 : coefficient for the spurious power-law $y = f(x) = a + b \, x^s$ for the RIGHT edge; when an input value x > right is given, the returned one is obtained from power_law with this coefficients ( where, of course, r_si is the exponent, r_b the coefficient and r_a the spurious adding constant). NOTE: for numerical issues, only the "pure" power-law $y = f(x) = b + x^s$ can be used. In other words, it always set r_a = 0.0.

    Constructors

    • InputPS(file::String; fit_left_min = 1e-6, fit_left_max = 3e-6, fit_right_min = 1e1, fit_right_max = 2e1) : read the IPS from the given input file; it can contain comments (defined with a starting # on each line), but the file structure must be space-separated in two colums (former for k values, latter for P ones).

      • fit_left_min = 1e-6, fit_left_max = 3e-6 : the limits (min and max) where the PS must be fitted with a power law, for small wavenumbers.

      • fit_right_min = 1e1, fit_right_max = 2e1 : the limits (min and max) where the PS must be fitted with a power law, for high wavenumbers.

    • InputPS(ks::AbstractVector{T1}, pks::AbstractVector{T2}; fit_left_min = 1e-6, fit_left_max = 3e-6, fit_right_min = 1e1, fit_right_max = 2e1)

      • ks::AbstractVector{T1}, pks::AbstractVector{T2} : self-explanatory ks and pks array-like values.

      • fit_left_min = 1e-6, fit_left_max = 3e-6 : the limits (min and max) where the PS must be fitted with a power law, for small wavenumbers.

      • fit_right_min = 1e1, fit_right_max = 2e1 : the limits (min and max) where the PS must be fitted with a power law, for high wavenumbers.

    All the power-law fitting (both "pure" and spurious) are made through the local function power_law_from_data.

    See also: power_law_from_data

    source
    GaPSE.IntegralIPSType
     IntegralIPS(
    -      l_si::Float64
    -      l_b::Float64
    -      l_a::Float64
    -      left::Float64
    +    spline::Dierckx.Spline1D
    +    
    +    r_si::Float64
    +    r_b::Float64
    +    r_a::Float64
    +    right::Float64)

    Store the Input Power Spectrum.

    Arguments

    • l_si, l_b, l_a :: Float64 : coefficient for the spurious power-law $y = f(x) = a + b \, x^s$ for the LEFT edge; when an input value x < left is given, the returned one is obtained from power_law with this coefficients ( where, of course, l_si is the exponent, l_b the coefficient and l_a the spurious adding constant).

    • left::Float64 : the break between the left power-law (for x <left) and the spline (for x ≥ left); its value is the fit_min of the used constructor.

    • spline::Dierckx.Spline1D : spline that interpolates between the real values of the power spectrum inside the range left ≤ x ≤ right

    • right::Float64 : the break between the right power-law (for x > left) and the spline (for x ≤ right); its value is the fit_max of the used constructor.

    • r_si, r_b, r_a :: Float64 : coefficient for the spurious power-law $y = f(x) = a + b \, x^s$ for the RIGHT edge; when an input value x > right is given, the returned one is obtained from power_law with this coefficients ( where, of course, r_si is the exponent, r_b the coefficient and r_a the spurious adding constant). NOTE: for numerical issues, only the "pure" power-law $y = f(x) = b + x^s$ can be used. In other words, it always set r_a = 0.0.

    Constructors

    • InputPS(file::String; fit_left_min = 1e-6, fit_left_max = 3e-6, fit_right_min = 1e1, fit_right_max = 2e1) : read the IPS from the given input file; it can contain comments (defined with a starting # on each line), but the file structure must be space-separated in two colums (former for k values, latter for P ones).

      • fit_left_min = 1e-6, fit_left_max = 3e-6 : the limits (min and max) where the PS must be fitted with a power law, for small wavenumbers.

      • fit_right_min = 1e1, fit_right_max = 2e1 : the limits (min and max) where the PS must be fitted with a power law, for high wavenumbers.

    • InputPS(ks::AbstractVector{T1}, pks::AbstractVector{T2}; fit_left_min = 1e-6, fit_left_max = 3e-6, fit_right_min = 1e1, fit_right_max = 2e1)

      • ks::AbstractVector{T1}, pks::AbstractVector{T2} : self-explanatory ks and pks array-like values.

      • fit_left_min = 1e-6, fit_left_max = 3e-6 : the limits (min and max) where the PS must be fitted with a power law, for small wavenumbers.

      • fit_right_min = 1e1, fit_right_max = 2e1 : the limits (min and max) where the PS must be fitted with a power law, for high wavenumbers.

    All the power-law fitting (both "pure" and spurious) are made through the local function power_law_from_data.

    See also: power_law_from_data

    source
    GaPSE.IntegralIPSType
    IntegralIPS(
    +    l_si::Float64
    +    l_b::Float64
    +    l_a::Float64
    +    left::Float64
     
    -      spline::Dierckx.Spline1D
    +    spline::Dierckx.Spline1D
     
    -      r_si::Float64
    -      r_b::Float64
    -      r_a::Float64
    -      right::Float64
    - )

    Contains all the information useful in order to return the value of an integral obtained from the Input Power Spectrum.

    Arguments

    • l_si, l_b, l_a ::Float64 : coefficient for the spurious power-law $y = f(x) = a + b \, x^s$ for the LEFT edge; when an input value x < left is given, the returned one is obtained from power_law with this coefficients ( where, of course, l_si is the exponent, l_b the coefficient and l_a the spurious adding constant).

    • left::Float64 : the break between the left power-law (for x < left) and the spline (for x ≥ left); its value is the fit_min of the used constructor.

    • spline::Dierckx.Spline1D : spline that interpolates between the real values of the integral calculated inside the range left ≤ x ≤ right

    • right::Float64 : the break between the right power-law (for x > right) and the spline (for x ≤ right); its value is the fit_max of the used constructor.

    • r_si, r_b, r_a ::Float64 : coefficient for the spurious power-law $y = f(x) = a + b \, x^s$ for the RIGHT edge; when an input value x > right is given, the returned one is obtained from power_law with this coefficients ( where, of course, r_si is the exponent, r_b the coefficient and r_a the spurious adding constant). NOTE: for numerical issues, only the "pure" power-law $y = f(x) = b + x^s$ can be used. In other words, it always set r_a = 0.0.

    Constructors

    There are two type of integrals we are interested in, and so two constructors are here provided:

    • IntegralIPS(ips, l, n; N::Int = 1024, kmin = 1e-4, kmax = 1e3, s0 = 1e-3, fit_left_min = 2.0, fit_left_max = 10.0, p0_left = nothing, con = false, fit_right_min = nothing, fit_right_max = nothing, p0_right = nothing) This is the one used for the "classical" $I_\ell_n$ integrals:

      \[I_\ell^n(s) = \int_0^\infty \frac{\mathrm{d} q}{2 \pi^2} q^2 \, P(q) - \, \frac{j_\ell(qs)}{(qs)^n}\]

      where, for a generic Iab name, $\ell$ is the FIRST number (a) and $n$ the second (b). The integral obtained with this constructor is calculated through xicalc, and expanded with power-laws at the edges.

      • ips: the function/spline that gives the Input Power Spectrum

      • l and n: self-explanatory degree of the integral, with the convenction above mentioned

      • kmin = 1e-4, kmax = 1e3, s0 = 1e-3 : values to be passed to xicalc for the integration

      • fit_left_min = 2.0, fit_left_max = 10.0 : the limits (min and max) where the integral $I_\ell^n$ must be fitted with a power law, for small distances. This operation is necessary, because xicalc, in this context, gives wrong results for too small input distance s; nevertheless, all these $I_\ell^n$ integrals have fixed power-law trends for $s \rightarrow 0$, so this approach gives good results.

      • p0_left = nothing : vector with the initial values for the left power-law fitting; its length must be 2 (if you want to fit with a pure power-law $y = f(x) = b * x^s$, so only l_si and l_b are matter of concern) or 3 (if you want to fit with a spurious power-law $y = f(x) = a + b * x^s$, so you are also interested in l_a), depending on the value of con; if nothing, it will be automatically set p0 = [-1.0, 1.0, 0.0] for con==true and p0 = [-1.0, 1.0] for con==false.

      • con::Bool = false : do you want that the fit of all the $I_\ell^n$ for the LEFT edge is not a simple power-law $y = f(x) = b \, x^s$, but also consider a constant $a$, such that $y = f(x) = a + b \, x^s$? For the LEFT side, there is not a lot of difference empirically. For the RIGHT side, there is not such an option due to numerical problems (it's like is always set con==false).

      • fit_right_min = nothing, fit_right_max = nothing : the limits (min and max) where the integral $I_\ell^n$ must be fitted with a power law, for high distances. These $I_\ell^n$ integrals have fixed power-law trends for $s \rightarrow \infty$, so this approach gives good results. If nothing, the last 15 points returned from xicalc are used for this fitting. NOTE: for numerical issues, only the "pure" power-law $y = f(x) = b + x^s$ can be used.

      • p0_right = nothing : vector with the initial values for the left power-law fitting; its length must be 2 (to fit with a pure power-law $y = f(x) = b * x^s$, so only r_si and r_b are matter of concern); if nothing, it will be automatically set p0 = [-4.0, 1.0, 0.0].

    • IntegralIPS(ips, func::Function; N::Int = 1024, kmin = 1e-4, kmax = 1e3, fit_left_min = 0.1, fit_left_max = 1.0, p0_left = nothing, con = false, fit_right_min = nothing, fit_right_max = nothing, p0_right = nothing, kwargs...) This is the one used for the "strange" $\tilde{I}$ integrals, such as:

      \[\tilde{I}^4_0 (s) = \int \frac{\mathrm{d}q}{2\pi^2} \, q^2 \, - P(q) \, \frac{j_0(qs) - 1}{(qs)^4} \;.\]

      The integral obtained with this constructor is calculated through the input function func, and expanded with power-laws at the edges. For \tilde{I}^4_0, the function is func_I04_tilde.

      • ips: the function/spline that gives the Input Power Spectrum

      • func: function that return the value of this specific integral in a given value

      • kmin = 1e-4, kmax = 1e3, s0 = 1e-3 : values to be passed to func as extremes of integration

      • fit_left_min = 0.1, fit_left_max = 1.0, : the limits (min and max) where the integral $\tilde{I}$ must be fitted with a power law, for small distances. This operation is necessary, because xicalc, in this context, gives wrong results for too small input distance s; nevertheless, all this $\tilde{I}$ integral have fixed power-law trends for $s \rightarrow 0$, so this approach gives good results.

      • p0_left = nothing : vector with the initial values for the left power-law fitting; its length must be 2 (if you want to fit with a pure power-law $y = f(x) = b * x^s$, so only l_si and l_b are matter of concern) or 3 (if you want to fit with a spurious power-law $y = f(x) = a + b * x^s$, so you are also interested in l_a), depending on the value of con; if nothing, it will be automatically set p0 = [-2.0, -1.0, 0.0] for con==true and p0 = [-2.0, -1.0] for con==false.

      • con::Bool = false : do you want that the fit of all the $I_\ell^n$ for the LEFT edge is not a simple power-law $y = f(x) = b \, x^s$, but also consider a constant $a$, such that $y = f(x) = a + b \, x^s$? For the LEFT side, there is not a lot of difference empirically. For the RIGHT side, there is not such an option due to numerical problems (it's like is always set con==false).

      • fit_right_min = nothing, fit_right_max = nothing : the limits (min and max) where the integral $I_\ell^n$ must be fitted with a power law, for high distances. These $I_\ell^n$ integrals have fixed power-law trends for $s \rightarrow \infty$, so this approach gives good results. If nothing, the last 15 points returned from xicalc are used for this fitting. NOTE: for numerical issues, only the "pure" power-law $y = f(x) = b + x^s$ can be used.

      • p0_right = nothing : vector with the initial values for the left power-law fitting; its length must be 2 (to fit with a pure power-law $y = f(x) = b * x^s$, so only r_si and r_b are matter of concern); if nothing, it will be automatically set p0 = [-4.0, -1.0].

    All the power-law fitting (both "pure" and spurious) are made through the local function power_law_from_data.

    See also: power_law_from_data, power_law, func_I04_tilde

    source
    GaPSE.IPSToolsType
     IPSTools(
    -      I00::IntegralIPS
    -      I20::IntegralIPS
    -      I40::IntegralIPS
    -      I02::IntegralIPS
    -      I22::IntegralIPS
    -      I31::IntegralIPS
    -      I13::IntegralIPS
    -      I11::IntegralIPS
    +    r_si::Float64
    +    r_b::Float64
    +    r_a::Float64
    +    right::Float64
    +)

    Contains all the information useful in order to return the value of an integral obtained from the Input Power Spectrum.

    Arguments

    • l_si, l_b, l_a ::Float64 : coefficient for the spurious power-law $y = f(x) = a + b \, x^s$ for the LEFT edge; when an input value x < left is given, the returned one is obtained from power_law with this coefficients ( where, of course, l_si is the exponent, l_b the coefficient and l_a the spurious adding constant).

    • left::Float64 : the break between the left power-law (for x < left) and the spline (for x ≥ left); its value is the fit_min of the used constructor.

    • spline::Dierckx.Spline1D : spline that interpolates between the real values of the integral calculated inside the range left ≤ x ≤ right

    • right::Float64 : the break between the right power-law (for x > right) and the spline (for x ≤ right); its value is the fit_max of the used constructor.

    • r_si, r_b, r_a ::Float64 : coefficient for the spurious power-law $y = f(x) = a + b \, x^s$ for the RIGHT edge; when an input value x > right is given, the returned one is obtained from power_law with this coefficients ( where, of course, r_si is the exponent, r_b the coefficient and r_a the spurious adding constant). NOTE: for numerical issues, only the "pure" power-law $y = f(x) = b + x^s$ can be used. In other words, it always set r_a = 0.0.

    Constructors

    There are two type of integrals we are interested in, and so two constructors are here provided:

    • IntegralIPS(ips, l, n; N::Int = 1024, kmin = 1e-4, kmax = 1e3, s0 = 1e-3, fit_left_min = 2.0, fit_left_max = 10.0, p0_left = nothing, con = false, fit_right_min = nothing, fit_right_max = nothing, p0_right = nothing) This is the one used for the "classical" $I_\ell_n$ integrals:

      \[I_\ell^n(s) = \int_0^\infty \frac{\mathrm{d} q}{2 \pi^2} q^2 \, P(q) + \, \frac{j_\ell(qs)}{(qs)^n}\]

      where, for a generic Iab name, $\ell$ is the FIRST number (a) and $n$ the second (b). The integral obtained with this constructor is calculated through xicalc, and expanded with power-laws at the edges.
      • ips: the function/spline that gives the Input Power Spectrum
      • l and n: self-explanatory degree of the integral, with the convenction above mentioned
      • kmin = 1e-4, kmax = 1e3, s0 = 1e-3 : values to be passed to xicalc for the integration
      • fit_left_min = 2.0, fit_left_max = 10.0 : the limits (min and max) where the integral $I_\ell^n$ must be fitted with a power law, for small distances. This operation is necessary, because xicalc, in this context, gives wrong results for too small input distance s; nevertheless, all these $I_\ell^n$ integrals have fixed power-law trends for $s \rightarrow 0$, so this approach gives good results.
      • p0_left = nothing : vector with the initial values for the left power-law fitting; its length must be 2 (if you want to fit with a pure power-law $y = f(x) = b * x^s$, so only l_si and l_b are matter of concern) or 3 (if you want to fit with a spurious power-law $y = f(x) = a + b * x^s$, so you are also interested in l_a), depending on the value of con; if nothing, it will be automatically set p0 = [-1.0, 1.0, 0.0] for con==true and p0 = [-1.0, 1.0] for con==false.
      • con::Bool = false : do you want that the fit of all the $I_\ell^n$ for the LEFT edge is not a simple power-law $y = f(x) = b \, x^s$, but also consider a constant $a$, such that $y = f(x) = a + b \, x^s$? For the LEFT side, there is not a lot of difference empirically. For the RIGHT side, there is not such an option due to numerical problems (it's like is always set con==false).
      • fit_right_min = nothing, fit_right_max = nothing : the limits (min and max) where the integral $I_\ell^n$ must be fitted with a power law, for high distances. These $I_\ell^n$ integrals have fixed power-law trends for $s \rightarrow \infty$, so this approach gives good results. If nothing, the last 15 points returned from xicalc are used for this fitting. NOTE: for numerical issues, only the "pure" power-law $y = f(x) = b + x^s$ can be used.
      • p0_right = nothing : vector with the initial values for the left power-law fitting; its length must be 2 (to fit with a pure power-law $y = f(x) = b * x^s$, so only r_si and r_b are matter of concern); if nothing, it will be automatically set p0 = [-4.0, 1.0, 0.0].
    • IntegralIPS(ips, func::Function; N::Int = 1024, kmin = 1e-4, kmax = 1e3, fit_left_min = 0.1, fit_left_max = 1.0, p0_left = nothing, con = false, fit_right_min = nothing, fit_right_max = nothing, p0_right = nothing, kwargs...) This is the one used for the "strange" $\tilde{I}$ integrals, such as:

      \[\tilde{I}^4_0 (s) = \int \frac{\mathrm{d}q}{2\pi^2} \, q^2 \, + P(q) \, \frac{j_0(qs) - 1}{(qs)^4} \;.\]

      The integral obtained with this constructor is calculated through the input function func, and expanded with power-laws at the edges. For \tilde{I}^4_0, the function is func_I04_tilde.

      • ips: the function/spline that gives the Input Power Spectrum

      • func: function that return the value of this specific integral in a given value

      • kmin = 1e-4, kmax = 1e3, s0 = 1e-3 : values to be passed to func as extremes of integration

      • fit_left_min = 0.1, fit_left_max = 1.0, : the limits (min and max) where the integral $\tilde{I}$ must be fitted with a power law, for small distances. This operation is necessary, because xicalc, in this context, gives wrong results for too small input distance s; nevertheless, all this $\tilde{I}$ integral have fixed power-law trends for $s \rightarrow 0$, so this approach gives good results.

      • p0_left = nothing : vector with the initial values for the left power-law fitting; its length must be 2 (if you want to fit with a pure power-law $y = f(x) = b * x^s$, so only l_si and l_b are matter of concern) or 3 (if you want to fit with a spurious power-law $y = f(x) = a + b * x^s$, so you are also interested in l_a), depending on the value of con; if nothing, it will be automatically set p0 = [-2.0, -1.0, 0.0] for con==true and p0 = [-2.0, -1.0] for con==false.

      • con::Bool = false : do you want that the fit of all the $I_\ell^n$ for the LEFT edge is not a simple power-law $y = f(x) = b \, x^s$, but also consider a constant $a$, such that $y = f(x) = a + b \, x^s$? For the LEFT side, there is not a lot of difference empirically. For the RIGHT side, there is not such an option due to numerical problems (it's like is always set con==false).

      • fit_right_min = nothing, fit_right_max = nothing : the limits (min and max) where the integral $I_\ell^n$ must be fitted with a power law, for high distances. These $I_\ell^n$ integrals have fixed power-law trends for $s \rightarrow \infty$, so this approach gives good results. If nothing, the last 15 points returned from xicalc are used for this fitting. NOTE: for numerical issues, only the "pure" power-law $y = f(x) = b + x^s$ can be used.

      • p0_right = nothing : vector with the initial values for the left power-law fitting; its length must be 2 (to fit with a pure power-law $y = f(x) = b * x^s$, so only r_si and r_b are matter of concern); if nothing, it will be automatically set p0 = [-4.0, -1.0].

    All the power-law fitting (both "pure" and spurious) are made through the local function power_law_from_data.

    See also: power_law_from_data, power_law, func_I04_tilde

    source
    GaPSE.IPSToolsType
    IPSTools(
    +    I00::IntegralIPS
    +    I20::IntegralIPS
    +    I40::IntegralIPS
    +    I02::IntegralIPS
    +    I22::IntegralIPS
    +    I31::IntegralIPS
    +    I13::IntegralIPS
    +    I11::IntegralIPS
     
    -      I04_tilde::IntegralIPS
    +    I04_tilde::IntegralIPS
     
    -      σ_0::Float64
    -      σ_1::Float64
    -      σ_2::Float64
    -      σ_3::Float64
    -      σ_4::Float64
    +    σ_0::Float64
    +    σ_1::Float64
    +    σ_2::Float64
    +    σ_3::Float64
    +    σ_4::Float64
     
    -      fit_min::Union{Float64,Nothing}
    -      fit_max::Union{Float64,Nothing}
    -      k_min::Float64
    -      k_max::Float64
    -      s_0::Float64
    -      )

    Struct that contains all the useful functions and values obtained from the Input Power Spectrum.

    Arguments

    • I00, I20, I40, I02, I22, I31, I13, I11 ::IntegralIPS: they return the value of the corresponding integral:

      \[I_\ell^n(s) = \int_0^\infty \frac{\mathrm{d} q}{2 \pi^2} q^2 \, P(q) + fit_min::Union{Float64,Nothing} + fit_max::Union{Float64,Nothing} + k_min::Float64 + k_max::Float64 + s_0::Float64 + )

    Struct that contains all the useful functions and values obtained from the Input Power Spectrum.

    Arguments

    • I00, I20, I40, I02, I22, I31, I13, I11 ::IntegralIPS: they return the value of the corresponding integral:

      \[I_\ell^n(s) = \int_0^\infty \frac{\mathrm{d} q}{2 \pi^2} q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n}\]

      where, for a generic Iab name, $\ell$ is the FIRST number (a) and $n$ the second (b). These integrals are performed through xicalc, with kmin, kmax, s0 = 1e-5, 1e3, 1e-3; at the edges they are fitted with power laws (for s < fit_min and s > max_s_returned_from_xi_calc).

    • I04_tilde::IntegralIPS: it returns the value of the integral:

      \[\tilde{I}^4_0 (s) = \int \frac{\mathrm{d}q}{2\pi^2} \, q^2 \, - P(q) \, \frac{j_0(qs) - 1}{(qs)^4} \;.\]

      This integral is calculated brute-force with quadgk, and fitted with power-laws at the edges (for s < 0.1 and s > 1e4).

    • σ_0, σ_1, σ_2, σ_3, σ_4 :: Float64: these are the results of the following integral:

      \[\sigma_i = \int_{k_\mathrm{min}}^{k_\mathrm{max}} \frac{\mathrm{d} q}{2 \pi^2} \, q^{2-i} \, P(q)\]

    • fit_min, fit_max :: Float64: the limits (min and max) where the integral $I_\ell^n$ must be fitted with a power law, for small distances. This operation is necessary, because xicalc, in this context, gives wrong results for too small input distance s; nevertheless, all these $I_\ell^n$ integrals have fixed power-law trends for $s \rightarrow 0$, so this approach gives good results.

    • k_min k_max::Float64 : because some of the $\sigma_i$ integrals from $q = 0$ to $q = +\infty$ diverge, it is common practice to cut the integrals at the edges, so they are calculated from $q = k_\mathrm{min}$ to $q = k_\mathrm{max}$

    Constructors

    IPSTools(ips::InputPS; N::Int = 1024, fit_min::Float64 = 0.05, fit_max::Float64 = 0.5, k_min::Float64 = 1e-6, k_max::Float64 = 10.0 con::Bool = false )

    • ips::InputPS : the Input Power Spectrum to be used in all the calculations.

    • N::Int = 1024 : number of points to be used in the xicalc function

    • k_min::Float64 = 1e-6, k_max::Float64 = 10.0 : integrations extremes of the $\sigma_i$s

    • con::Bool = false : do you want that the fit of all the $I_\ell^n$ for the LEFT edge is not a simple power-law $y = f(x) = b \, x^s$, but also consider a constant $a$, such that $y = f(x) = a + b \, x^s$? For the LEFT side, there is not a lot of difference empirically. For the RIGHT side, there is not such an option due to numerical problems (it's like is always set con==false).

    See also: IntegralIPS, InputPS

    source
    + P(q) \, \frac{j_0(qs) - 1}{(qs)^4} \;.\]

    This integral is calculated brute-force with quadgk, and fitted with power-laws at the edges (for s < 0.1 and s > 1e4).

  • σ_0, σ_1, σ_2, σ_3, σ_4 :: Float64: these are the results of the following integral:

    \[\sigma_i = \int_{k_\mathrm{min}}^{k_\mathrm{max}} \frac{\mathrm{d} q}{2 \pi^2} \, q^{2-i} \, P(q)\]

  • fit_min, fit_max :: Float64: the limits (min and max) where the integral $I_\ell^n$ must be fitted with a power law, for small distances. This operation is necessary, because xicalc, in this context, gives wrong results for too small input distance s; nevertheless, all these $I_\ell^n$ integrals have fixed power-law trends for $s \rightarrow 0$, so this approach gives good results.

  • k_min k_max::Float64 : because some of the $\sigma_i$ integrals from $q = 0$ to $q = +\infty$ diverge, it is common practice to cut the integrals at the edges, so they are calculated from $q = k_\mathrm{min}$ to $q = k_\mathrm{max}$

  • Constructors

    IPSTools(ips::InputPS; N::Int = 1024,
    +    fit_min::Float64 = 0.05, fit_max::Float64 = 0.5,
    +    k_min::Float64 = 1e-6, k_max::Float64 = 10.0
    +    con::Bool = false
    +)
    • ips::InputPS : the Input Power Spectrum to be used in all the calculations.

    • N::Int = 1024 : number of points to be used in the xicalc function

    • k_min::Float64 = 1e-6, k_max::Float64 = 10.0 : integrations extremes of the $\sigma_i$s

    • con::Bool = false : do you want that the fit of all the $I_\ell^n$ for the LEFT edge is not a simple power-law $y = f(x) = b \, x^s$, but also consider a constant $a$, such that $y = f(x) = a + b \, x^s$? For the LEFT side, there is not a lot of difference empirically. For the RIGHT side, there is not such an option due to numerical problems (it's like is always set con==false).

    See also: IntegralIPS, InputPS

    source diff --git a/dev/LD_Correlations/index.html b/dev/LD_Correlations/index.html deleted file mode 100644 index 3e3b567c..00000000 --- a/dev/LD_Correlations/index.html +++ /dev/null @@ -1,186 +0,0 @@ - -LD · GaPSE.jl

    LD TPCFs

    Two-Point Auto-Correlation Functions

    GaPSE.ξ_LD_DopplerFunction
     ξ_LD_Doppler(P1::Point, P2::Point, y, cosmo::Cosmology) :: Float64
    -
    - ξ_LD_Doppler(s1, s2, y, cosmo::Cosmology) = 
    -      ξ_LD_Doppler(Point(s1, cosmo), Point(s2, cosmo), y, cosmo)

    Return the Doppler auto-correlation function concerning the perturbed luminosity distance, defined as follows:

    \[\xi^{v_{\parallel}v_{\parallel}} (s_1, s_2, \cos{\theta}) -= D_1 D_2 f_1 f_2 \mathcal{H}_1 \mathcal{H}_2 \mathcal{R}_1 \mathcal{R}_2 -(J_{00}\, I^0_0(s) + J_{02}\,I^0_2(s) + J_{04}\,I^0_4(s) + J_{20}\,I^2_0(s))\]

    where $D_1 = D(s_1)$, $D_2 = D(s_2)$ and so on, $\mathcal{H} = a H$, $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$ and the J coefficients are given by:

    \[\begin{align*} - J_{00} (s_1, s_2, y) & = \frac{1}{45} (y^2 s_1 s_2 - 2y(s_1^2 + s_2^2) + 3s_1 s_2) \\ - J_{02} (s_1, s_2, y) & = \frac{2}{63} (y^2 s_1 s_2 - 2y(s_1^2 + s_2^2) + 3s_1 s_2) \\ - J_{04} (s_1, s_2, y) & = \frac{1}{105} (y^2 s_1 s_2 - 2y(s_1^2 + s_2^2) + 3s_1 s_2) \\ - J_{20} (s_1, s_2, y) & = \frac{1}{3} y s^2 -\end{align*}\]

    Inputs

    • P1::Point and P2::Point: Point where the CF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on)

    • y: the cosine of the angle between the two points P1 and P2

    • cosmo::Cosmology: cosmology to be used in this computation

    See also: Point, Cosmology

    source
    GaPSE.ξ_LD_LensingFunction
     ξ_LD_Lensing(P1::Point, P2::Point, y, cosmo::Cosmology;
    -      en::Float64 = 1e6,
    -      Δχ_min::Float64 = 1e-3,
    -      N_χs_2::Int = 100) :: Float64
    -
    - ξ_LD_Lensing(s1, s2, y, cosmo::Cosmology; kwargs...) = 
    -      ξ_LD_Lensing(Point(s1, cosmo), Point(s2, cosmo), y, cosmo; kwargs...)

    Return the Lensing auto-correlation function $\xi^{\kappa\kappa} (s_1, s_2, \cos{\theta})$ concerning the perturbed luminosity distance, defined as follows:

    \[\xi^{\kappa\kappa} (s_1, s_2, \cos{\theta}) = -\int_0^{s_1} \mathrm{d} \chi_1 \int_0^{s_2} \mathrm{d} \chi_2 -\frac{1}{2} -\frac{ - \mathcal{H}_0^4 \Omega_{ \mathrm{M0}}^2 D_1 D_2 (\chi_1 - s_1)(\chi_2 - s_2) -}{ - s_1 s_2 a(\chi_1) a(\chi_2) } -(J_{00} \, I^0_0(\chi) + J_{02} \, I^0_2(\chi) + - J_{31} \, I^3_1(\chi) + J_{22} \, I^2_2(\chi))\]

    where $D_1 = D(\chi_1)$, $D_2 = D(\chi_2)$ and so on, $\mathcal{H} = a H$, $\chi = \sqrt{\chi_1^2 + \chi_2^2 - 2\chi_1\chi_2\cos{\theta}}$, $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$) and the $J$ coefficients are given by

    \[\begin{align*} - J_{00} & = - \frac{3 \chi_1^2 \chi_2^2}{4 \chi^4} (y^2 - 1) - (8 y (\chi_1^2 + \chi_2^2) - 9 \chi_1 \chi_2 y^2 - 7 \chi_1 \chi_2) \\ - J_{02} & = - \frac{3 \chi_1^2 \chi_2^2}{2 \chi^4} (y^2 - 1) - (4 y (\chi_1^2 + \chi_2^2) - 3 \chi_1 \chi_2 y^2 - 5 \chi_1 \chi_2) \\ - J_{31} & = 9 y \chi^2 \\ - J_{22} & = \frac{9 \chi_1 \chi_2}{4 \chi^4} - [ 2 (\chi_1^4 + \chi_2^4) (7 y^2 - 3) - - 16 y \chi_1 \chi_2 (\chi_1^2 + \chi_2^2) (y^2+1) - + \chi_1^2 \chi_2^2 (11 y^4 + 14 y^2 + 23)] -\end{align*}\]

    The computation is made applying trapz (see the Trapz Julia package) to the integrand function integrand_ξ_LD_Lensing.

    Inputs

    • s1 and s2: comovign distances where the function must be evaluated

    • y: the cosine of the angle between the two points P1 and P2

    • cosmo::Cosmology: cosmology to be used in this computation

    Optional arguments

    • en::Float64 = 1e6: just a float number used in order to deal better with small numbers;

    • Δχ_min::Float64 = 1e-6 : when $\Delta\chi = \sqrt{\chi_1^2 + \chi_2^2 - 2 \, \chi_1 \chi_2 y} \to 0^{+}$, some $I_\ell^n$ term diverges, but the overall parenthesis has a known limit:

      \[ \lim_{\chi\to0^{+}} (J_{00} \, I^0_0(\chi) + J_{02} \, I^0_2(\chi) + - J_{31} \, I^3_1(\chi) + J_{22} \, I^2_2(\chi)) = - \frac{4}{15} \, (5 \, \sigma_2 + \frac{2}{3} \, σ_0 \,s_1^2 \, \chi_2^2)\]

      So, when it happens that $\chi < \Delta\chi_\mathrm{min}$, the function considers this limit as the result of the parenthesis instead of calculating it in the normal way; it prevents computational divergences.

    • N_χs_2::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ1) and (0, s1) (for χ2); it has been checked that with N_χs_2 ≥ 50 the result is stable.

    See also: integrand_ξ_LD_Lensing, integrand_on_mu_Lensing integral_on_mu, ξ_LD_multipole

    source
    GaPSE.ξ_LD_LocalGPFunction
     ξ_LD_LocalGP(P1::Point, P2::Point, y, cosmo::Cosmology) :: Float64
    -
    - ξ_LD_LocalGP(s1, s2, y, cosmo::Cosmology) = 
    -      ξ_LD_LocalGP(Point(s1, cosmo), Point(s2, cosmo), y, cosmo::Cosmology)

    Return the local gravitational potential auto-correlation function concerning the perturbed luminosity distance, defined as follows:

    \[\xi^{\phi\phi} (s_1, s_2, \cos{\theta}) = - \frac{9 \mathcal{H}_0^4 \Omega_{M0}^2 D(s_1) D(s_2)s^4}{4 a(s_1) a(s_2)} - (1 + \mathcal{R}_1 + \mathcal{R}_2 + \mathcal{R}_1\mathcal{R}_2) - \tilde{I}^4_0(s)\]

    where $D_1 = D(s_1)$, $D_2 = D(s_2)$ and so on, $\mathcal{H} = a H$, $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$ and:

    \[\tilde{I}^4_0 (s) &= \int_0^\infty \frac{\mathrm{d}q}{2\pi^2} - q^2 \, P(q) \, \frac{j_0(q s) - 1}{(q s)^4}\]

    Inputs

    • P1::Point and P2::Point: Point where the CF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on)

    • y: the cosine of the angle between the two points P1 and P2

    • cosmo::Cosmology: cosmology to be used in this computation

    See also: Point, Cosmology

    source
    GaPSE.ξ_LD_IntegratedGPFunction
     ξ_LD_IntegratedGP(P1::Point, P2::Point, y, cosmo::Cosmology; 
    -      en::Float64 = 1e10,
    -      N_χs_2::Int = 100) :: Float64
    -
    - ξ_LD_IntegratedGP(s1, s2, y, cosmo::Cosmology; kwargs...) = 
    -      ξ_LD_IntegratedGP(Point(s1, cosmo), Point(s2, cosmo), y, cosmo; kwargs...)

    Return the integrated gravitational potential auto-correlation function $\xi^{\int\phi\int\phi}(s_1, s_2, \cos{\theta})$ concerning the perturbed luminosity distance, defined as follows:

    \[\xi^{\int\phi\int\phi} (s_1, s_2, \cos{\theta}) = - \int_0^{s_1} \mathrm{d} \chi_1 \int_0^{s_2}\mathrm{d} \chi_2 \; - J_{40}(s_1, s_2, y, \chi_1, \chi_2) \, \tilde{I}^4_0(\chi)\]

    where $\chi = \sqrt{\chi_1^2 + \chi_2^2 - 2 \, \chi_1 \, \chi_2 \, y}$, $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$ and:

    \[\begin{split} - &J_{40}(s_1, s_2, y, \chi_1, \chi_2) = - \frac{ - 9 \mathcal{H}_0^4 \Omega_{M0}^2 D(\chi_1) D(\chi_2) \chi^4 - }{ a(\chi_1) a(\chi_2) s_1 s_2} - (s_2 \mathcal{H}(\chi_2) \mathcal{R}(s_2) (f(\chi_2)-1) - 1) - (s_1 \mathcal{H}(\chi_1) \mathcal{R}(s_1) (f(\chi_1)-1) - 1)\\[5pt] - &\tilde{I}^4_0 (s) = \int_0^\infty \frac{\mathrm{d}q}{2\pi^2} - q^2 \, P(q) \, \frac{j_0(q s) - 1}{(q s)^4} -\end{split}\]

    and $P(q)$ is the input power spectrum.

    The computation is made applying trapz (see the Trapz Julia package) to the integrand function integrand_ξ_LD_Lensing.

    Inputs

    • s1 and s2: comovign distances where the function must be evaluated

    • y: the cosine of the angle between the two points P1 and P2

    • cosmo::Cosmology: cosmology to be used in this computation

    Optional arguments

    • en::Float64 = 1e10: just a float number used in order to deal better with small numbers.

    • N_χs_2::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ1) and (0, s1) (for χ2); it has been checked that with N_χs_2 ≥ 50 the result is stable.

    See also: integrand_ξ_LD_IntegratedGP, integrand_on_mu_IntegratedGP integral_on_mu, ξ_LD_multipole

    source

    Two-Point Cross-Correlation Functions

    Missing docstring.

    Missing docstring for GaPSE.ξ_LD_Doppler_Lensing. Check Documenter's build log for details.

    GaPSE.ξ_LD_Lensing_DopplerFunction
     ξ_LD_Lensing_Doppler(s1, s2, y, cosmo::Cosmology;
    -      en::Float64 = 1e6, N_χs::Int = 100):: Float64

    Return the Lensing-Doppler cross-correlation function $\xi^{\kappa v_{\parallel}} (s_1, s_2, \cos{\theta})$ concerning the perturbed luminosity distance, defined as follows:

    \[\xi^{\kappa v_{\parallel}} (s_1, s_2, \cos{\theta}) = - \mathcal{H}_0^2 \Omega_{M0} D(s_2) f(s_2) \mathcal{H}(s_2) \mathcal{R}(s_2) - \int_0^{s_1} \mathrm{d} \chi_1 - \frac{ D(\chi_1) (\chi_1 - s_1) }{a(\chi_1) s_1} - \left( - J_{00} I^0_0(\Delta\chi_1) + J_{02} I^0_2(\Delta\chi_1) - + J_{04} I^0_4(\Delta\chi_1) + J_{20} I^2_0(\Delta\chi_1) - \right)\]

    where $\mathcal{H} = a H$, $\Delta\chi_1= \sqrt{\chi_1^2 + s_2^2 - 2 \chi_1 s_2 \cos{\theta}}$, $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$) and the $J$ coefficients are given by:

    \[\begin{align*} - J_{00} & = \frac{1}{15}(\chi_1^2 y + \chi_1(4 y^2 - 3) s_2 - 2 y s_2^2) \\ - J_{02} & = \frac{1}{42 \Delta\chi_1^2} - (4 \chi_1^4 y + 4 \chi_1^3 (2 y^2 - 3) s_2 + \chi_1^2 y (11 - 23 y^2) s_2^2 + - \chi_1 (23 y^2 - 3) s_2^3 - 8 y s_2^4) \\ - J_{04} & = \frac{1}{70 \Delta\chi_1^2} - (2 \chi_1^4 y + 2 \chi_1^3 (2y^2 - 3) s_2 - \chi_1^2 y (y^2 + 5) s_2^2 + - \chi_1 (y^2 + 9) s_2^3 - 4 y s_2^4) \\ - J_{20} & = y \Delta\chi_1^2 -\end{align*}\]

    The computation is made applying trapz (see the Trapz Julia package) to the integrand function integrand_ξ_LD_LD_Lensing_Doppler.

    Inputs

    • s1 and s2: comovign distances where the function must be evaluated

    • y: the cosine of the angle between the two points P1 and P2

    • cosmo::Cosmology: cosmology to be used in this computation

    Optional arguments

    • en::Float64 = 1e6: just a float number used in order to deal better with small numbers;

    • Δχ_min::Float64 = 1e-6 : when $\Delta\chi = \sqrt{\chi_1^2 + \chi_2^2 - 2 \, \chi_1 \chi_2 y} \to 0^{+}$, some $I_\ell^n$ term diverges, but the overall parenthesis has a known limit:

      \[ \lim_{\chi\to0^{+}} (J_{00} \, I^0_0(\chi) + J_{02} \, I^0_2(\chi) + - J_{31} \, I^3_1(\chi) + J_{22} \, I^2_2(\chi)) = - \frac{4}{15} \, (5 \, \sigma_2 + \frac{2}{3} \, σ_0 \,s_1^2 \, \chi_2^2)\]

      So, when it happens that $\chi < \Delta\chi_\mathrm{min}$, the function considers this limit as the result of the parenthesis instead of calculating it in the normal way; it prevents computational divergences.

    • N_χs::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ1) and (0, s1) (for χ2); it has been checked that with N_χs ≥ 50 the result is stable.

    See also: integrand_ξ_LD_Lensing_Doppler, int_on_mu_Lensing_Doppler integral_on_mu, ξ_LD_multipole

    source
    GaPSE.ξ_LD_Doppler_LocalGPFunction
     ξ_LD_Doppler_LocalGP(P1::Point, P2::Point, y, cosmo::Cosmology) :: Float64

    Return the Doppler-LocalGP cross-correlation function concerning the perturbed luminosity distance, defined as follows:

    \[\\xi^{v_{\\parallel}\\phi} (s_1, s_2, \\cos{\\theta}) = - \\frac{3}{2 a(s_2)} \\mathcal{H}(s_1) f(s_1) D(s_1) - \\mathcal{R}(s_1) \\mathcal{H}_0^2 \\Omega_{M0} D(s_2) - (1 + \\mathcal{R}(s_2)) (s_2\\cos{\\theta} - s_1) s^2 I^3_1(s)\]

    where $\\mathcal{H} = a H$, $y = \\cos{\\theta} = \\hat{\\mathbf{s}}_1 \\cdot \\hat{\\mathbf{s}}_2$ and :

    \[I^n_l(s) = \\int_0^\\infty \\frac{\\mathrm{d}q}{2\\pi^2} q^2 \\, P(q) \\, \\frac{j_l(qs)}{(q s)^n}\]

    Inputs

    • P1::Point and P2::Point: Point where the CF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on)

    • y: the cosine of the angle between the two points P1 and P2

    • cosmo::Cosmology: cosmology to be used in this computation

    See also: Point, Cosmology

    source
    Missing docstring.

    Missing docstring for GaPSE.ξ_LD_LocalGP_Doppler. Check Documenter's build log for details.

    GaPSE.ξ_LD_Doppler_IntegratedGPFunction
     ξ_LD_Doppler_IntegratedGP(s1, s2, y, cosmo::Cosmology;
    -      en::Float64 = 1e6, N_χs::Int = 100):: Float64

    Return the Doppler-LocalGP cross-correlation function $\\xi^{v_{\\parallel}\\int\\phi} (s_1, s_2, \\cos{\\theta})$ concerning the perturbed luminosity distance, defined as follows:

    \[\\xi^{v_{\\parallel}\\int\\phi} (s_1, s_2, \\cos{\\theta}) = - 3 \\mathcal{H}(s_1) f(s_1) D(s_1) \\mathcal{H_0}^2 \\Omega_{M0} \\mathcal{R}(s_1) - \\int_0^{s_2} \\mathrm{d}\\chi_2 \\, J_{31} \\, I^3_1(\\chi)\]

    where $\\mathcal{H} = a H$, $\\chi = \\sqrt{s_1^2 + \\chi_2^2 - 2 s_1 \\chi_2 \\cos{\\theta}}$, $y = \\cos{\\theta} = \\hat{\\mathbf{s}}_1 \\cdot \\hat{\\mathbf{s}}_2$) and:

    \[J_{31} = - \\frac{D(\\chi_2) (s_1 - \\chi_2 \\cos{\\theta})}{a(\\chi_2)} \\chi^2 - \\left( - - \\frac{1}{s_2} + \\mathcal{R}(s_2) \\mathcal{H}(\\chi_2) (f(\\chi_2) - 1) - \\right)\]

    The computation is made applying trapz (see the Trapz Julia package) to the integrand function integrand_ξ_LD_Doppler_IntegratedGP.

    Inputs

    • s1 and s2: comovign distances where the function must be evaluated

    • y: the cosine of the angle between the two points P1 and P2

    • cosmo::Cosmology: cosmology to be used in this computation

    Optional arguments

    • en::Float64 = 1e6: just a float number used in order to deal better with small numbers;

    • N_χs::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ1) and (0, s1) (for χ2); it has been checked that with N_χs ≥ 50 the result is stable.

    See also: integrand_ξ_LD_Doppler_IntegratedGP, int_on_mu_Doppler_IntegratedGP integral_on_mu, ξ_LD_multipole

    source
    Missing docstring.

    Missing docstring for GaPSE.ξ_LD_IntegratedGP_Doppler. Check Documenter's build log for details.

    GaPSE.ξ_LD_Lensing_LocalGPFunction
     ξ_LD_Lensing_LocalGP(s1, s2, y, cosmo::Cosmology;
    -      en::Float64 = 1e6, N_χs::Int = 100):: Float64

    Return the Lensing-LocalGP cross-correlation function $\xi^{\kappa \phi} (s_1, s_2, \cos{\theta})$ concerning the perturbed luminosity distance, defined as follows:

    \[\xi^{\kappa \phi} (s_1, s_2, \cos{\theta}) = - \frac{ - 9 \mathcal{H}_0^4 \Omega_{M0}^2 D(s_2) (1 + \mathcal{R}(s_2)) s_2 - }{4 a(s_2) s_1} - \int_0^{s_1} \mathrm{d}\chi_1 \frac{D(\chi_1)(s_1 - \chi_1) }{a(\chi_1)} - \left( J_{31} I^3_1(\Delta\chi_1) + J_{22} I^2_2(\Delta\chi_1) \right)\]

    where $\mathcal{H} = a H$, $\Delta\chi_1 = \sqrt{\chi_1^2 + s_2^2 - 2 \chi_1 s_2\cos{\theta}}$, $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$) and the $J$ coefficients are given by

    \[\begin{align*} - J_{31} & = -2 y \Delta\chi_1^2 \\ - J_{22} & = \chi_1 s_2 (1 - y^2) -\end{align*}\]

    The computation is made applying trapz (see the Trapz Julia package) to the integrand function integrand_ξ_LD_Lensing_LocalGP.

    Inputs

    • s1 and s2: comovign distances where the function must be evaluated

    • y: the cosine of the angle between the two points P1 and P2

    • cosmo::Cosmology: cosmology to be used in this computation

    Optional arguments

    • en::Float64 = 1e6: just a float number used in order to deal better with small numbers;

    • N_χs::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ1) and (0, s1) (for χ2); it has been checked that with N_χs ≥ 50 the result is stable.

    See also: integrand_ξ_LD_Lensing_LocalGP, int_on_mu_Lensing_LocalGP integral_on_mu, ξ_LD_multipole

    source
    Missing docstring.

    Missing docstring for GaPSE.ξ_LD_LocalGP_Lensing. Check Documenter's build log for details.

    GaPSE.ξ_LD_Lensing_IntegratedGPFunction
     ξ_LD_Lensing_IntegratedGP(s1, s2, y, cosmo::Cosmology;
    -      en::Float64 = 1e6,
    -      N_χs_2::Int = 100) :: Float64

    Return theLensing-IntegratedGP cross-correlation function $\xi^{\kappa\int\phi} (s_1, s_2, \cos{\theta})$ concerning the perturbed luminosity distance, defined as follows:

    \[\xi^{\kappa\int\phi} (s_1, s_2, \cos{\theta}) = - \frac{9}{2}\mathcal{H}_0^4\Omega_{M0}^2 - &\mathrm{d}\chi_1 \int_0^{s_2} \mathrm{d}\chi_2 - \frac{D(\chi_1)D(\chi_2)\chi_2(s_1 - \chi_1)}{s_1a(\chi_1)a(\chi_2)} \\ - &\left(\mathcal{H}(\chi_2)(f(\chi_2) - 1)\mathcal{R}(s_2) -\frac{1}{s_2} \right) - \left( J_{31} I^3_1(\chi) + J_{22} I^2_2(\chi) \right) -\end{split}\]

    where $D_1 = D(\chi_1)$, $D_2 = D(\chi_2)$ and so on, $\mathcal{H} = a H$, $\chi = \sqrt{\chi_1^2 + \chi_2^2 - 2\chi_1\chi_2\cos{\theta}}$, $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$) and the $J$ coefficients are given by

    \[\begin{align*} - J_{31} & = -2y\chi^2 \\ - J_{22} & = \chi_1\chi_2(1-y^2) -\end{align*}\]

    The computation is made applying trapz (see the Trapz Julia package) to the integrand function integrand_ξ_LD_Lensing_IntegratedGP.

    Inputs

    • s1 and s2: comovign distances where the function must be evaluated

    • y: the cosine of the angle between the two points P1 and P2

    • cosmo::Cosmology: cosmology to be used in this computation

    Optional arguments

    • en::Float64 = 1e6: just a float number used in order to deal better with small numbers;

    • N_χs_2::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ1) and (0, s1) (for χ2); it has been checked that with N_χs_2 ≥ 50 the result is stable.

    See also: integrand_ξ_LD_Lensing_IntegratedGP, integrand_on_mu_Lensing_IntegratedGP integral_on_mu, ξ_LD_multipole

    source
    Missing docstring.

    Missing docstring for GaPSE.ξ_LD_IntegratedGP_Lensing. Check Documenter's build log for details.

    GaPSE.ξ_LD_LocalGP_IntegratedGPFunction
     ξ_LD_LocalGP_IntegratedGP(s1, s2, y, cosmo::Cosmology;
    -      en::Float64 = 1e6, N_χs::Int = 100):: Float64

    Return the LocalGP-IntegratedGP cross-correlation function $\xi^{v_{\parallel}\int \phi} (s_1, s_2, \cos{\theta})$ concerning the perturbed luminosity distance, defined as follows:

    \[\xi^{v_{\parallel}\int \phi} (s_1, s_2, \cos{\theta}) = - \frac{9 \mathcal{H}_0^4 \Omega_{M0}^2 D(s_1) (\mathcal{R}(s_1) +1)}{2 a(s_1)} - \int_0^{s_2} \mathrm{d}\chi_2 \frac{D(\chi_2) \Delta\chi_2^4}{ a(\chi_2)} - \left( - \mathcal{H}(\chi_2)( f(\chi_2) - 1) \mathcal{R}(s_2) - \frac{1}{s_2} - \right) \tilde{I}^4_0(\Delta\chi_2)\]

    where $\mathcal{H} = a H$, $\Delta\chi_2 = \sqrt{s_1^2 + \chi_2^2 - 2 s_1 \chi_2 \cos{\theta}}$, $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$).

    The computation is made applying trapz (see the Trapz Julia package) to the integrand function integrand_ξ_LD_LocalGP_IntegratedGP.

    Inputs

    • s1 and s2: comovign distances where the function must be evaluated

    • y: the cosine of the angle between the two points P1 and P2

    • cosmo::Cosmology: cosmology to be used in this computation

    Optional arguments

    • en::Float64 = 1e6: just a float number used in order to deal better with small numbers;

    • N_χs::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ1) and (0, s1) (for χ2); it has been checked that with N_χs ≥ 50 the result is stable.

    See also: integrand_ξ_LD_LocalGP_IntegratedGP, int_on_mu_LocalGP_IntegratedGP integral_on_mu, ξ_LD_multipole

    source
    Missing docstring.

    Missing docstring for GaPSE.ξ_LD_IntegratedGP_LocalGP. Check Documenter's build log for details.

    Two-Point Cross-Correlation Function multipoles

    GaPSE.integrand_ξ_LD_multipoleFunction
     integrand_ξ_LD_multipole(s1, s, μ, effect::Function, cosmo::Cosmology;
    -      L::Int = 0, use_windows::Bool = true, kwargs...)
    -
    - integrand_ξ_LD_multipole(s1, s, μ, effect::String, cosmo::Cosmology; kwargs...)

    Return the integrand on $\mu = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}$ of the chosen perturbation of the Luminosity Distance (LD) Two-Point Correlation Function (TPCF) term, i.e. the following function $f(s_1, s, \mu)$:

    \[ f_L(s_1, s, \mu) = \xi \left(s_1, s_2, y\right) - \, \mathcal{L}_L(\mu) \, \times - \begin{cases} - \frac{1}{\mathcal{N}}\mathcal{F}(s, \mu) \quad \mathrm{use\_windows == true} \\ - 1 \quad\quad \mathrm{use\_windows == false} - \end{cases}\]

    where:

    • $s_2 = s_2(s_1, s, \mu) = \sqrt{s_1^2 + s^2 + 2 \, s_1 \, s \, \mu}$
    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2 = \frac{\mu \, s + s_1}{s_2(s_1, s, \mu)}$
    • $\xi$ is the corresponding LD TPCF effect
    • $\mathcal{L}_L(\mu)$ is the Legendre polynomial of order $L$
    • $\mathcal{F}(s, \mu)$ is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)
    • $\mathcal{N}$ is the integrated window function norm (check the documentation of WindowFIntegrated)

    In the former method you have to pass as an input the LD effect function you want to integrate, while in the (recommended) latter one it's necessary to specify the name of the LD TPCF term among the following:

    auto_doppler , auto_lensing , auto_localgp , auto_integratedgp , lensing_doppler , doppler_lensing , doppler_localgp , localgp_doppler , doppler_integratedgp , integratedgp_doppler , lensing_localgp , localgp_lensing , lensing_integratedgp , integratedgp_lensing , localgp_integratedgp , integratedgp_localgp ,

    to which correspond the following functions, respectively:

    ξ_LD_Doppler , ξ_LD_Lensing , ξ_LD_LocalGP , ξ_LD_IntegratedGP , ξ_LD_Lensing_Doppler , ξ_LD_Doppler_Lensing , ξ_LD_Doppler_LocalGP , ξ_LD_LocalGP_Doppler , ξ_LD_Doppler_IntegratedGP , ξ_LD_IntegratedGP_Doppler , ξ_LD_Lensing_LocalGP , ξ_LD_LocalGP_Lensing , ξ_LD_Lensing_IntegratedGP , ξ_LD_IntegratedGP_Lensing , ξ_LD_LocalGP_IntegratedGP , ξ_LD_IntegratedGP_LocalGP ,

    Internally, the second method recall the first, so all the keyword arguments are in common.

    Note that these is an internal conversion of coordiate sistems from (s1, s, μ) to (s1, s2, y) thorugh the functions y and s2. The inverse relations are:

    • $s = s(s_1, s_2, y) = \sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$
    • $\mu = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}} = \frac{y \, s_2 - s_1}{s(s_1, s_2, y)}$.

    Inputs

    • s1: the comoving distance where must be evaluated the integral

    • s: the comoving distance from s1 where must be evaluated the integral

    • μ: the cosine between s1 and s where must be evaluated the integral

    • effect::Function or effect::String : name/function you want to consider, among the ones inside GaPSE.GR_EFFECTS_LD/GaPSE.VEC_ξs_LD respectively.

    • cosmo::Cosmology: cosmology to be used in this computation

    Optional arguments

    • L::Int = 0: order of the Legendre polynomial to be used

    • use_windows::Bool = false: tells if the integrand must consider the two window function $\phi$ and $\mathcal{F}$

    • kwargs... : other keyword arguments that will be passed to the selected GR TPCF effect (ξ_LD_Doppler, ξ_LD_Lensing, ...)

    See also: ξ_LD_multipole, map_ξ_LD_multipole, print_map_ξ_LD_multipole, WindowFIntegrated, ϕ, Cosmology, y, s2, GR_EFFECTS_LD, GaPSE.VEC_ξs_LD

    source
    GaPSE.ξ_LD_multipoleFunction
     ξ_LD_multipole(
    -      s1, s, effect::Function, cosmo::Cosmology;
    -      L::Int = 0, alg::Symbol = :lobatto, 
    -      use_windows::Bool = true, 
    -      N_lob::Int = 100, N_trap::Int = 200, 
    -      atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,
    -      enhancer::Float64 = 1e6, 
    -      kwargs...) ::Float64
    -
    - ξ_LD_multipole(s1, s, effect::String, cosmo::Cosmology; 
    -      kwargs...) ::Float64

    Evaluate the multipole of order L of the chosen perturbation of the Luminosity Distance (LD) Two-Point Correlation Function (TPCF) term i.e. the following function $\xi_L(s_1, s)$:

    \[ \xi_L(s_1, s) = \frac{2 L + 1}{2} \int_{-1}^{+1} \mathrm{d}\mu \; - \xi (s_1, s_2, \cos{\theta}) \, \mathcal{L}_L(\mu) \, \times - \begin{cases} - \frac{1}{\mathcal{N}}\mathcal{F}(s, \mu) \quad \mathrm{use\_windows == true} \\ - 1 \quad\quad \mathrm{use\_windows == false} - \end{cases}\]

    where:

    • $s_2 = s_2(s_1, s, \mu) = \sqrt{s_1^2 + s^2 + 2 \, s_1 \, s \, \mu}$
    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2 = \frac{\mu \, s + s_1}{s_2(s_1, s, \mu)}$
    • $\xi$ is the corresponding LD TPCF effect
    • $\mathcal{L}_L(\mu)$ is the Legendre polynomial of order $L$
    • $\mathcal{F}(s, \mu)$ is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)
    • $\mathcal{N}$ is the integrated window function norm (check the documentation of WindowFIntegrated)

    In the former method you have to pass as an input the LD effect function you want to integrate, while in the (recommended) latter one it's necessary to specify the name of the LD TPCF term among the following:

    auto_doppler , auto_lensing , auto_localgp , auto_integratedgp , lensing_doppler , doppler_lensing , doppler_localgp , localgp_doppler , doppler_integratedgp , integratedgp_doppler , lensing_localgp , localgp_lensing , lensing_integratedgp , integratedgp_lensing , localgp_integratedgp , integratedgp_localgp ,

    to which correspond the following functions:

    ξ_LD_Doppler , ξ_LD_Lensing , ξ_LD_LocalGP , ξ_LD_IntegratedGP , ξ_LD_Lensing_Doppler , ξ_LD_Doppler_Lensing , ξ_LD_Doppler_LocalGP , ξ_LD_LocalGP_Doppler , ξ_LD_Doppler_IntegratedGP , ξ_LD_IntegratedGP_Doppler , ξ_LD_Lensing_LocalGP , ξ_LD_LocalGP_Lensing , ξ_LD_Lensing_IntegratedGP , ξ_LD_IntegratedGP_Lensing , ξ_LD_LocalGP_IntegratedGP , ξ_LD_IntegratedGP_LocalGP ,

    Internally, the second method recall the first, so all the keyword arguments are in common.

    Note that these is an internal conversion of coordiate sistems from (s1, s, μ) to (s1, s2, y) thorugh the functions y and s2. The inverse relations are:

    • $s = s(s_1, s_2, y) = \sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$
    • $\mu = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}} = \frac{y \, s_2 - s_1}{s(s_1, s_2, y)}$.

    Inputs

    • s1: the comoving distance where must be evaluated the integral

    • s: the comoving distance from s1 where must be evaluated the integral

    • effect::Function or effect::String : name/function you want to consider, among the ones inside GaPSE.GR_EFFECTS_LD/GaPSE.VEC_ξs_LD respectively.

    • cosmo::Cosmology: cosmology to be used in this computation

    Optional arguments

    • L::Int = 0: order of the Legendre polynomial to be used

    • alg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):

      • :quad -> the integration over $\mu$ will be preformed through the Julia function quadgk

      from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.

      • :trap -> the integration over $\mu$ will be preformed through the Julia function trapz

      from the Trapz.jl Julia package, that uses the simple trapezoidal rulae.

      • :lobatto -> the integration over $\mu$ will be preformed through the Julia function gausslobatto

      from the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!

    • use_windows::Bool = false: tells if the integrand must consider the two window function $\phi$ and $\mathcal{F}$

    • N_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • N_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    • kwargs... : other keyword arguments that will be passed to the selected LD TPCF effect (ξ_LD_Doppler, ξ_LD_Lensing, ...)

    See also: integrand_ξ_LD_multipole, map_ξ_LD_multipole, print_map_ξ_LD_multipole WindowFIntegrated, Cosmology, y, s2, GR_EFFECTS_LD, VEC_ξs_LD

    source
    GaPSE.map_ξ_LD_multipoleFunction
     map_ξ_LD_multipole(cosmo::Cosmology,
    -      effect::Union{String,Function}, ss = nothing;
    -      s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,
    -      N_lob::Int = 100, N_trap::Int = 50,
    -      atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,
    -      enhancer::Float64=1e6, N_log::Int = 1000, 
    -      pr::Bool = true,
    -      kwargs...) ::Tuple{Vector{Float64}, Vector{Float64}}

    Evaluate the multipole of order L of the chosen perturbation of the Luminosity Distance (LD) Two-Point Correlation Function (TPCF) term for all the comoving distance values stored inside ss. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). If s1 = nothing, it is set s1 = cosmo.s_eff.

    The function evaluated is then the following $\xi_L(s_1, s)$:

    \[ \xi_L(s_1, s) = \frac{2 L + 1}{2} \int_{-1}^{+1} \mathrm{d}\mu \; - \xi (s_1, s_2, \cos{\theta}) \, \mathcal{L}_L(\mu) \, \times - \begin{cases} - \frac{1}{\mathcal{N}}\mathcal{F}(s, \mu) \quad \mathrm{use\_windows == true} \\ - 1 \quad\quad \mathrm{use\_windows == false} - \end{cases}\]

    where:

    • $s_2 = s_2(s_1, s, \mu) = \sqrt{s_1^2 + s^2 + 2 \, s_1 \, s \, \mu}$
    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2 = \frac{\mu \, s + s_1}{s_2(s_1, s, \mu)}$
    • $\xi$ is the corresponding LD TPCF effect
    • $\mathcal{L}_L(\mu)$ is the Legendre polynomial of order $L$
    • $\mathcal{F}(s, \mu)$ is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)
    • $\mathcal{N}$ is the integrated window function norm (check the documentation of WindowFIntegrated)

    Note that these is an internal conversion of coordiate sistems from (s1, s, μ) to (s1, s2, y) thorugh the functions y and s2. The inverse relations are:

    • $s = s(s_1, s_2, y) = \sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$
    • $\mu = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}} = \frac{y \, s_2 - s_1}{s(s_1, s_2, y)}$.

    Inputs

    • cosmo::Cosmology : cosmology to be used in this computation

    • effect::Union{String,Function} : the GR effect TPCF you want to consider; you may specify the name of the effect as one of the following strings (recommended):

      auto_doppler , auto_lensing , auto_localgp , auto_integratedgp , lensing_doppler , doppler_lensing , doppler_localgp , localgp_doppler , doppler_integratedgp , integratedgp_doppler , lensing_localgp , localgp_lensing , lensing_integratedgp , integratedgp_lensing , localgp_integratedgp , integratedgp_localgp ,

      or directly the name of the function among the following:

      ξ_LD_Doppler , ξ_LD_Lensing , ξ_LD_LocalGP , ξ_LD_IntegratedGP , ξ_LD_Lensing_Doppler , ξ_LD_Doppler_Lensing , ξ_LD_Doppler_LocalGP , ξ_LD_LocalGP_Doppler , ξ_LD_Doppler_IntegratedGP , ξ_LD_IntegratedGP_Doppler , ξ_LD_Lensing_LocalGP , ξ_LD_LocalGP_Lensing , ξ_LD_Lensing_IntegratedGP , ξ_LD_IntegratedGP_Lensing , ξ_LD_LocalGP_IntegratedGP , ξ_LD_IntegratedGP_LocalGP ,

    • ss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). This is why it is returned also the vector of the "input" values.

    Optional arguments

    • s1 = nothing : comoving distance from the observer where the TPCF should be evaluated; if s1 = nothing, it is automatically set s1 = cosmo.s_eff from the given input cosmo::Cosmology.

    • L::Int = 0: order of the Legendre polynomial to be used

    • alg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):

      • :quad -> the integration over $\mu$ will be preformed through the Julia function quadgk

      from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.

      • :trap -> the integration over $\mu$ will be preformed through the Julia function trapz

      from the Trapz.jl Julia package, that uses the simple trapezoidal rulae.

      • :lobatto -> the integration over $\mu$ will be preformed through the Julia function gausslobatto

      from the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!

    • use_windows::Bool = false: tells if the integrand must consider the two window function $\phi$ and $\mathcal{F}$

    • N_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • N_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    • N_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing

    • pr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)

    • kwargs... : other keyword arguments that will be passed to the selected LD TPCF effect (ξ_LD_Doppler, ξ_LD_Lensing, ...)

    Returns

    A Tuple{Vector{Float64}, Vector{Float64}}, which has as first element the ss vector and as second one the corresponding ξ value evaluated.

    See also: integrand_ξ_LD_multipole, ξ_LD_multipole, print_map_ξ_LD_multipole, WindowFIntegrated, Cosmology, y, s2, GR_EFFECTS_LD, GaPSE.VEC_ξs_LD

    source
    GaPSE.print_map_ξ_LD_multipoleFunction
     print_map_ξ_LD_multipole(
    -      cosmo::Cosmology, out::String,
    -      effect::Union{String,Function},
    -      ss = nothing;
    -      s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,
    -      N_lob::Int = 100, N_trap::Int = 50,
    -      atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,
    -      enhancer::Float64=1e6, N_log::Int = 1000, 
    -      pr::Bool = true,
    -      kwargs...)

    Evaluate the multipole of order L of the of the chosen perturbation of the Luminosity Distance (LD) Two-Point Correlation Function (TPCF) term for all the comoving distance values stored inside ss, and print the results (with all the options used) in a file named out. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). If s1 = nothing, it is set s1 = cosmo.s_eff.

    The function evaluated is then the following $\xi_L(s_1, s)$:

    \[ \xi_L(s_1, s) = \frac{2 L + 1}{2} \int_{-1}^{+1} \mathrm{d}\mu \; - \xi (s_1, s_2, \cos{\theta}) \, \mathcal{L}_L(\mu) \, \times - \begin{cases} - \frac{1}{\mathcal{N}}\mathcal{F}(s, \mu) \quad \mathrm{use\_windows == true} \\ - 1 \quad\quad \mathrm{use\_windows == false} - \end{cases}\]

    where:

    • $s_2 = s_2(s_1, s, \mu) = \sqrt{s_1^2 + s^2 + 2 \, s_1 \, s \, \mu}$
    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2 = \frac{\mu \, s + s_1}{s_2(s_1, s, \mu)}$
    • $\xi$ is the corresponding LD TPCF effect
    • $\mathcal{L}_L(\mu)$ is the Legendre polynomial of order $L$
    • $\mathcal{F}(s, \mu)$ is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)
    • $\mathcal{N}$ is the integrated window function norm (check the documentation of WindowFIntegrated)

    Note that these is an internal conversion of coordiate sistems from (s1, s, μ) to (s1, s2, y) thorugh the functions y and s2. The inverse relations are:

    • $s = s(s_1, s_2, y) = \sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$
    • $\mu = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}} = \frac{y \, s_2 - s_1}{s(s_1, s_2, y)}$.

    Inputs

    • cosmo::Cosmology : cosmology to be used in this computation

    • effect::Union{String,Function} : the GR effect TPCF you want to consider; you may specify the name of the effect as one of the following strings (recommended):

      auto_doppler , auto_lensing , auto_localgp , auto_integratedgp , lensing_doppler , doppler_lensing , doppler_localgp , localgp_doppler , doppler_integratedgp , integratedgp_doppler , lensing_localgp , localgp_lensing , lensing_integratedgp , integratedgp_lensing , localgp_integratedgp , integratedgp_localgp ,

      or directly the name of the function among the following:

      ξ_LD_Doppler , ξ_LD_Lensing , ξ_LD_LocalGP , ξ_LD_IntegratedGP , ξ_LD_Lensing_Doppler , ξ_LD_Doppler_Lensing , ξ_LD_Doppler_LocalGP , ξ_LD_LocalGP_Doppler , ξ_LD_Doppler_IntegratedGP , ξ_LD_IntegratedGP_Doppler , ξ_LD_Lensing_LocalGP , ξ_LD_LocalGP_Lensing , ξ_LD_Lensing_IntegratedGP , ξ_LD_IntegratedGP_Lensing , ξ_LD_LocalGP_IntegratedGP , ξ_LD_IntegratedGP_LocalGP ,

    • out::String : name of the file where the results must be stored.

    • ss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log).

    Optional arguments

    This function recall internally map_ξ_LD_multipole, so the kwargs are the same; we report them for comfortness:

    • s1 = nothing : comoving distance from the observer where the TPCF should be evaluated; if s1 = nothing, it is automatically set s1 = cosmo.s_eff from the given input cosmo::Cosmology.

    • L::Int = 0: order of the Legendre polynomial to be used

    • alg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):

      • :quad -> the integration over $\mu$ will be preformed through the Julia function quadgk

      from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.

      • :trap -> the integration over $\mu$ will be preformed through the Julia function trapz

      from the Trapz.jl Julia package, that uses the simple trapezoidal rulae.

      • :lobatto -> the integration over $\mu$ will be preformed through the Julia function gausslobatto

      from the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!

    • use_windows::Bool = false: tells if the integrand must consider the two window function $\phi$ and $\mathcal{F}$

    • N_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • N_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    • N_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing

    • pr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)

    • kwargs... : other keyword arguments that will be passed to the selected LD TPCF effect (ξ_LD_Doppler, ξ_LD_Lensing, ...)

    See also: integrand_ξ_LD_multipole, ξ_LD_multipole, print_map_ξ_LD_multipole, WindowFIntegrated, Cosmology, y, s2, GR_EFFECTS_LD, GaPSE.VEC_ξs_LD

    source

    Two-Point Cross-Correlation Function Sum multipoles

    GaPSE.sum_ξ_LD_multipoleFunction
     sum_ξ_LD_multipole(s1, s, cosmo::Cosmology;
    -      s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,
    -      N_lob::Int = 100, N_trap::Int = 50,
    -      atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,
    -      enhancer::Float64=1e6, N_log::Int = 1000, 
    -      pr::Bool = true,
    -      kwargs...) ::Tuple{Float64, Vector{Float64}}

    Evaluate the multipole of order L of all the two-point cross correlation multipole between the perturbations of the Luminosity Distance (LD) and the Galaxy Number Counts (GNC) and their sum in the comoving distance s1 and a comoving distance s from it for the input cosmo::Cosmology. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    This function makes a for-loop on the GaPSE.GR_EFFECTS_LD strings, calling ξ_LD_multipole for each of them. To each string corresponds pretty intuitively one of the 16 LD effects. They are currently, in order:

    auto_doppler , auto_lensing , auto_localgp , auto_integratedgp , lensing_doppler , doppler_lensing , doppler_localgp , localgp_doppler , doppler_integratedgp , integratedgp_doppler , lensing_localgp , localgp_lensing , lensing_integratedgp , integratedgp_lensing , localgp_integratedgp , integratedgp_localgp ,

    Inputs

    • s1: the comoving distance where must be evaluated the integral

    • s: the comoving distance from s1 where must be evaluated the integral

    • cosmo::Cosmology: cosmology to be used in this computation

    Optional arguments

    This function recall internally ξ_LD_multipole, so the kwargs are the same; we report them for comfortness:

    • L::Int = 0: order of the Legendre polynomial to be used

    • alg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):

      • :quad -> the integration over $\mu$ will be preformed through the Julia function quadgk

      from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.

      • :trap -> the integration over $\mu$ will be preformed through the Julia function trapz

      from the Trapz.jl Julia package, that uses the simple trapezoidal rulae.

      • :lobatto -> the integration over $\mu$ will be preformed through the Julia function gausslobatto

      from the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!

    • use_windows::Bool = false: tells if the integrand must consider the two window function $\phi$ and $\mathcal{F}$

    • N_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • N_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    • kwargs... : other keyword arguments that will be passed to ALL the LD TPCF effect (ξ_LD_Doppler, ξ_LD_Lensing, ...); if one of them has that keyword argument, it will use the given value, otherwise it will be unaffected.

    Returns

    A tuple containing:

    • the sum of all the ξ multipoles as first element
    • a Vector{Float64} with all the values of each ξ; they are ordered following GR_EFFECTS_LD

    See also: integrand_ξ_LD_multipole, ξ_LD_multipole, map_sum_ξ_LD_multipole, print_map_sum_ξ_LD_multipole, Cosmology, GR_EFFECTS_LD

    source
    GaPSE.map_sum_ξ_LD_multipoleFunction
     map_sum_ξ_LD_multipole(
    -      effect::Union{String,Function}, ss = nothing;
    -      s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,
    -      N_lob::Int = 100, N_trap::Int = 50,
    -      atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,
    -      enhancer::Float64=1e6, N_log::Int = 1000, 
    -      pr::Bool = true,
    -      kwargs...) ::Tuple{Vector{Float64}, Vector{Float64}, Vector{Vector{Float64}}}

    Evaluate the multipole of order L of all the two-point cross correlation multipole between the perturbations of the Luminosity Distance (LD) and the Galaxy Number Counts (GNC) and their sum in the comoving distance s1, for all the comoving distances stored inside ss (representing the comoving distance from s1) for the input cosmo::Cosmology. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). If s1 = nothing, it is set s1 = cosmo.s_eff. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    This function makes a for-loop on the GaPSE.GR_EFFECTS_LD strings, calling map_ξ_LD_multipole for each of them. To each string corresponds pretty intuitively one of the 16 LD effects. They are currently, in order:

    auto_doppler , auto_lensing , auto_localgp , auto_integratedgp , lensing_doppler , doppler_lensing , doppler_localgp , localgp_doppler , doppler_integratedgp , integratedgp_doppler , lensing_localgp , localgp_lensing , lensing_integratedgp , integratedgp_lensing , localgp_integratedgp , integratedgp_localgp ,

    Inputs

    • cosmo::Cosmology : cosmology to be used in this computation

    • ss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). This is why it is returned also the vector of the "input" values.

    Optional arguments

    This function recall internally map_ξ_LD_multipole, so the kwargs are the same; we report them for comfortness:

    • s1 = nothing : comoving distance from the observer where the TPCF should be evaluated; if s1 = nothing, it is automatically set s1 = cosmo.s_eff from the given input cosmo::Cosmology.

    • L::Int = 0: order of the Legendre polynomial to be used

    • alg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):

      • :quad -> the integration over $\mu$ will be preformed through the Julia function quadgk

      from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.

      • :trap -> the integration over $\mu$ will be preformed through the Julia function trapz

      from the Trapz.jl Julia package, that uses the simple trapezoidal rulae.

      • :lobatto -> the integration over $\mu$ will be preformed through the Julia function gausslobatto

      from the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!

    • use_windows::Bool = false: tells if the integrand must consider the two window function $\phi$ and $\mathcal{F}$

    • N_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • N_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    • N_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing

    • pr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)

    • kwargs... : other keyword arguments that will be passed to ALL the LD TPCF effect (ξ_LD_Doppler, ξ_LD_Lensing, ...); if one of them has that keyword argument, it will use the given value, otherwise it will be unaffected.

    Returns

    A tuple containing:

    • as first element, the vector ss itself;
    • as second one, the Vector{Float64} of the sum of all the ξ multipoles;
    • as third one, a Vector{Vector{Float64}} with all the values of each ξ; they are ordered following GR_EFFECTS_LD

    See also: map_ξ_LD_multipole, sum_ξ_LD_multipole, print_map_sum_ξ_LD_multipole, Cosmology, GR_EFFECTS_LD

    source
    GaPSE.print_map_sum_ξ_LD_multipoleFunction
     print_map_sum_ξ_LD_multipole(
    -      cosmo::Cosmology, out::String, ss = nothing;
    -      s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,
    -      N_lob::Int = 100, N_trap::Int = 50,
    -      atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,
    -      enhancer::Float64=1e6, N_log::Int = 1000, 
    -      pr::Bool = true,
    -      single::Bool = true,
    -      kwargs...)

    Evaluate the multipole of order L of all the two-point cross correlation multipole between the perturbations of the Luminosity Distance (LD) and the Galaxy Number Counts (GNC) and their sum in the comoving distance s1, for all the comoving distances stored inside ss (representing the comoving distance from s1) for the input cosmo::Cosmology; finally, it saves the results inside the file out. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). If s1 = nothing, it is set s1 = cosmo.s_eff. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    This function makes a for-loop on the GaPSE.GR_EFFECTS_LD strings, calling map_ξ_LD_multipole for each of them. To each string corresponds pretty intuitively one of the 16 LD effects. They are currently, in order:

    auto_doppler , auto_lensing , auto_localgp , auto_integratedgp , lensing_doppler , doppler_lensing , doppler_localgp , localgp_doppler , doppler_integratedgp , integratedgp_doppler , lensing_localgp , localgp_lensing , lensing_integratedgp , integratedgp_lensing , localgp_integratedgp , integratedgp_localgp ,

    Inputs

    • cosmo::Cosmology : cosmology to be used in this computation

    • out::String : name of the file where the results must be stored.

    • ss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log).

    Optional arguments

    This function recall internally map_ξ_LD_multipole, so the kwargs are the same; we report them for comfortness:

    • s1 = nothing : comoving distance from the observer where the TPCF should be evaluated; if s1 = nothing, it is automatically set s1 = cosmo.s_eff from the given input cosmo::Cosmology.

    • L::Int = 0: order of the Legendre polynomial to be used

    • alg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):

      • :quad -> the integration over $\mu$ will be preformed through the Julia function quadgk

      from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.

      • :trap -> the integration over $\mu$ will be preformed through the Julia function trapz

      from the Trapz.jl Julia package, that uses the simple trapezoidal rulae.

      • :lobatto -> the integration over $\mu$ will be preformed through the Julia function gausslobatto

      from the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!

    • use_windows::Bool = false: tells if the integrand must consider the two window function $\phi$ and $\mathcal{F}$

    • N_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • N_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    • N_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing

    • pr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)

    • single::Bool = true : if true, all the CFs are printed inside the file of the sum, in a table with 18 columns (first one for ss, second for their sum an the next 16 for each effect). Otherwise, a new directory "allstandalonesCFs" is created (in the same path given in out) and they are separately saved in files there placed.

    • kwargs... : other keyword arguments that will be passed to ALL the LD TPCF effect (ξ_LD_Doppler, ξ_LD_Lensing, ...); if one of them has that keyword argument, it will use the given value, otherwise it will be unaffected.

    See also: map_ξ_LD_multipole, sum_ξ_LD_multipole, map_sum_ξ_LD_multipole, Cosmology, GR_EFFECTS_LD

    source
    diff --git a/dev/LD_Correlations_1/index.html b/dev/LD_Correlations_1/index.html new file mode 100644 index 00000000..68d9d211 --- /dev/null +++ b/dev/LD_Correlations_1/index.html @@ -0,0 +1,310 @@ + +LD TPCFs · GaPSE.jl

    LD TPCFs

    Two-Point Auto-Correlation Functions

    GaPSE.ξ_LD_DopplerFunction
    ξ_LD_Doppler(P1::Point, P2::Point, y, cosmo::Cosmology) ::Float64
    +
    +ξ_LD_Doppler(s1, s2, y, cosmo::Cosmology) ::Float64

    Return the Two-Point Correlation Function (TPCF) of the Doppler auto-correlation effect arising from the Luminosity Distance (LD) perturbations.

    In the first method, you should pass the two Point (P1 and P2) where to evaluate the function, while in the second method (that internally recalls the first) you must provide the two corresponding comoving distances s1 and s2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this term is the following:

    \[\begin{split} + \xi^{v_{\parallel}v_{\parallel}} (s_1, s_2, y) = + \mathcal{J}^{v_{\parallel}v_{\parallel}}_{\alpha} + \left[ + \mathcal{J}^{v_{\parallel}v_{\parallel}}_{00} I_0^0(s) + + \mathcal{J}^{v_{\parallel}v_{\parallel}}_{02} I_2^0(s) + + \mathcal{J}^{v_{\parallel}v_{\parallel}}_{04} I_4^0(s) + + \mathcal{J}^{v_{\parallel}v_{\parallel}}_{20} I_0^2(s) + \right] \, , +\end{split}\]

    with

    \[\begin{split} + \mathcal{J}^{v_{\parallel}v_{\parallel}}_{\alpha} & = + D_1 D_2 f_1 f_2 \mathcal{H}_1 \mathcal{H}_2 \mathfrak{R}_1 \mathfrak{R}_2 + \, , \\ + %%%%%%%%%%%%%%%%%%%%%%%% + \mathcal{J}^{v_{\parallel}v_{\parallel}}_{00} & = + \frac{1}{45} \left[ + y^2 s_1 s_2 - 2y(s_1^2 + s_2^2) + 3s_1 s_2 + \right] + \, , \\ + %%%%%%%%%%%%%%%%%%%%%%%% + \mathcal{J}^{v_{\parallel}v_{\parallel}}_{02} & = + \frac{2}{63} \left[ + y^2 s_1 s_2 - 2y(s_1^2 + s_2^2) + 3s_1 s_2 + \right] + \, , \\ + %%%%%%%%%%%%%%%%%%%%%%%% + \mathcal{J}^{v_{\parallel}v_{\parallel}}_{04} & = + \frac{1}{105} \left[ + y^2 s_1 s_2 - 2y(s_1^2 + s_2^2) + 3s_1 s_2 + \right] + \, , \\ + %%%%%%%%%%%%%%%%%%%%%%%% + \mathcal{J}^{v_{\parallel}v_{\parallel}}_{20} & = \frac{1}{3} y s^2 + \, , +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathfrak{R}_1 = \mathfrak{R}(s_1)$, ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}(s) s} ;\]

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    Inputs

    • P1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $\Omega_{\mathrm{M}0}$, ...

    See also: Point, Cosmology, ξ_LD_multipole, map_ξ_LD_multipole, print_map_ξ_LD_multipole

    source
    GaPSE.ξ_LD_LensingFunction
    ξ_LD_Lensing(P1::Point, P2::Point, y, cosmo::Cosmology;
    +    en::Float64 = 1e6, Δχ_min::Float64 = 1e-3,
    +    N_χs_2::Int = 100) ::Float64
    +
    +ξ_LD_Lensing(s1, s2, y, cosmo::Cosmology; kwargs...) ::Float64

    Return the Two-Point Correlation Function (TPCF) of the Lensing auto-correlation effect arising from the Luminosity Distance (LD) perturbations.

    In the first method, you should pass the two Point (P1 and P2) where to evaluate the function, while in the second method (that internally recalls the first) you must provide the two corresponding comoving distances s1 and s2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this term is the following:

    \[\begin{split} + \xi^{\kappa\kappa} (s_1, s_2, y) = + \int_0^{s_1} \mathrm{d}\chi_1 \int_0^{s_2} \mathrm{d}\chi_2 \; + \mathcal{J}^{\kappa\kappa}_{\alpha} \left[ + \mathcal{J}^{\kappa\kappa}_{00}I^0_0(\Delta\chi) + + \mathcal{J}^{\kappa\kappa}_{02} I^0_2(\Delta\chi) + + \mathcal{J}^{\kappa\kappa}_{31}I^3_1(\Delta\chi) + + \mathcal{J}^{\kappa\kappa}_{22}I^2_2(\Delta\chi) + \right] \nonumber \, , +\end{split}\]

    with

    \[\begin{split} + \mathcal{J}^{\kappa\kappa}_{\alpha} & = + \frac{ + \mathcal{H}_0^4 \Omega_{\mathrm{M}0}^2 D(\chi_1) D(\chi_2) + }{ + s_1 s_2 a(\chi_1) a(\chi_2) + }(\chi_1 - s_1)(\chi_2 - s_2) + \, , \\ + %%%%%%%%%%%%%%%%%%%%%%%% + \mathcal{J}^{\kappa\kappa}_{00} & = + -\frac{ 3 \chi_1^2 \chi_2^2}{4 \Delta\chi^4} (y^2 - 1) + \left[ + 8 y (\chi_1^2 + \chi_2^2) - 9\chi_1\chi_2y^2 - + 7\chi_1\chi_2 + \right] + \, , \\ + %%%%%%%%%%%%%%%%%%%%%%%% + \mathcal{J}^{\kappa\kappa}_{02} & = + -\frac{ 3 \chi_1^2 \chi_2^2}{2 \Delta\chi^4}(y^2 - 1) + \left[ + 4 y (\chi_1^2 + \chi_2^2) - 3 \chi_1 \chi_2 y^2 - + 5 \chi_1 \chi_2 + \right] + \, , \\ + %%%%%%%%%%%%%%%%%%%%%%%% + \mathcal{J}^{\kappa\kappa}_{31} & = 9 y \Delta\chi^2 + \, , \\ + %%%%%%%%%%%%%%%%%%%%%%%% + \mathcal{J}^{\kappa\kappa}_{22} & = + \frac{9 \chi_1 \chi_2}{4 \Delta\chi^4} + \left[ + 2(\chi_1^4 + \chi_2^4)(7 y^2 - 3) - + 16 y \chi_1 \chi_2 (\chi_1^2 + \chi_2^2)(y^2 + 1) + + \right.\\ + &\left.\qquad\qquad\qquad + \chi_1^2 \chi_2^2 (11y^4 + 14y^2 + 23) + \right] \nonumber + \, , +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathfrak{R}_1 = \mathfrak{R}(s_1)$, ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}(s) s} ;\]

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    This function is computed integrating integrand_ξ_LD_Lensing with trapz() from the Trapz Julia package.

    Inputs

    • P1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $\Omega_{\mathrm{M}0}$, ...

    Keyword arguments

    • en::Float64 = 1e6: just a float number used in order to deal better with small numbers;

    • N_χs_2::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ1) and (0, s2) (for χ2); it has been checked that with N_χs_2 ≥ 50 the result is stable.

    • Δχ_min::Float64 = 1e-4 : when $\Delta\chi = \sqrt{\chi_1^2 + \chi_2^2 - 2 \, \chi_1 \chi_2 y} \to 0^{+}$, some $I_\ell^n$ term diverges, but the overall parenthesis has a known limit:

      \[\lim_{\Delta\chi\to 0^{+}} \left(J^{\kappa\kappa}_{00} \, I^0_0(\Delta\chi) + + J^{\kappa\kappa}_{02} \, I^0_2(\Delta\chi) + + J^{\kappa\kappa}_{31} \, I^3_1(\Delta\chi) + J^{\kappa\kappa}_{22} \, I^2_2(\Delta\chi) + \right) = + \frac{4}{15} \, \left(5 \, \sigma_2 + \frac{2}{3} \, σ_0 \,s_1^2 \, \chi_2^2\right)\]

    See also: Point, Cosmology, ξ_LD_multipole, map_ξ_LD_multipole, print_map_ξ_LD_multipole

    source
    GaPSE.ξ_LD_LocalGPFunction
    ξ_LD_LocalGP(P1::Point, P2::Point, y, cosmo::Cosmology) ::Float64
    +
    +ξ_LD_LocalGP(s1, s2, y, cosmo::Cosmology; kwargs...) ::Float64

    Return the Two-Point Correlation Function (TPCF) of the Local Gravitational Potential (GP) auto-correlation effect arising from the Luminosity Distance (LD) perturbations.

    In the first method, you should pass the two Point (P1 and P2) where to evaluate the function, while in the second method (that internally recalls the first) you must provide the two corresponding comoving distances s1 and s2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this term is the following:

    \[\begin{split} + \xi^{\phi\phi} (s_1, s_2, y) = + \frac{9 \mathcal{H}_0^4 \Omega_{\mathrm{M}0}^2 D_1 D_2 s^4 }{4 a_1 a_2} + \left(1 + \mathfrak{R}_1 + \mathfrak{R}_2 + \mathfrak{R}_1 \mathfrak{R}_2 \right) + \tilde{I}^4_0(s) \, , +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathfrak{R}_1 = \mathfrak{R}(s_1)$, ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}(s) s} ;\]

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    Inputs

    • P1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $\Omega_{\mathrm{M}0}$, ...

    See also: Point, Cosmology, ξ_LD_multipole, map_ξ_LD_multipole, print_map_ξ_LD_multipole

    source
    GaPSE.ξ_LD_IntegratedGPFunction
    ξ_LD_IntegratedGP(P1::Point, P2::Point, y, cosmo::Cosmology; 
    +    en::Float64 = 1e10, N_χs_2::Int = 100) :: Float64
    +
    +ξ_LD_IntegratedGP(s1, s2, y, cosmo::Cosmology; kwargs... )::Float64

    Return the Two-Point Correlation Function (TPCF) of the Integrated Gravitational Potential (GP) auto-correlation effect arising from the Luminosity Distance (LD) perturbations.

    In the first method, you should pass the two Point (P1 and P2) where to evaluate the function, while in the second method (that internally recalls the first) you must provide the two corresponding comoving distances s1 and s2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this term is the following:

    \[\begin{split} + \xi^{\int\!\phi\int\!\phi} (s_1, s_2, y) = \int_0^{s_1}\mathrm{d}\chi_1\int_0^{s_2}\mathrm{d}\chi_2 \; + \mathcal{J}^{\int\!\phi\int\!\phi}_{40} + \tilde{I}^4_0(\chi) \, , +\end{split}\]

    with

    \[\begin{split} + \mathcal{J}^{\int\!\phi\int\!\phi}_{40} = + \frac{ + 9 \mathcal{H}_0^4 \Omega_{\mathrm{M}0}^2 D(\chi_1) D(\chi_2) \Delta\chi^4 + }{ a(\chi_1)\, a(\chi_2)\, s_1\, s_2 } + &\left[ + s_2 \mathcal{H}(\chi_2) \mathfrak{R}_2(f(\chi_2) - 1) - 1 + \right] \times \\ + &\left[ + s_1 \mathcal{H}(\chi_1) \mathfrak{R}_1(f(\chi_1) - 1) - 1 + \right] \, , +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathfrak{R}_1 = \mathfrak{R}(s_1)$, ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}(s) s} ;\]

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    This function is computed integrating integrand_ξ_LD_IntegratedGP with trapz() from the Trapz Julia package.

    Inputs

    • P1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $\Omega_{\mathrm{M}0}$, ...

    Keyword Arguments

    • en::Float64 = 1e6: just a float number used in order to deal better with small numbers;

    • N_χs_2::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ1) and (0, s2) (for χ2); it has been checked that with N_χs_2 ≥ 50 the result is stable.

    See also: Point, Cosmology, ξ_LD_multipole, map_ξ_LD_multipole, print_map_ξ_LD_multipole

    source

    Two-Point Cross-Correlation Functions

    GaPSE.ξ_LD_Doppler_LensingFunction
    ξ_LD_Doppler_Lensing(
    +    s1, s2, y, cosmo::Cosmology; 
    +    kwargs... ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Doppler and the Lensing effects arising from the Luminosity Distance (LD) perturbations.

    It's computed through the symmetric function ξ_LD_Lensing_Doppler; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    Inputs

    • s1 and s2: comoving distances where the TPCF has to be calculated;

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • kwargs... : Keyword arguments to be passed to the symmetric TPCF

    See also: Point, Cosmology, ξ_LD_multipole, map_ξ_LD_multipole, print_map_ξ_LD_multipole, ξ_LD_Lensing_Doppler

    source
    GaPSE.ξ_LD_Lensing_DopplerFunction
    ξ_LD_Lensing_Doppler(
    +    s1, s2, y, cosmo::Cosmology;
    +    en::Float64 = 1e6, N_χs::Int = 100 ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Lensing and the Doppler effects arising from the Luminosity Distance (LD) perturbations.

    You must provide the two comoving distances s1 and s2 where to evaluate the function. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this integrand is the following:

    \[\begin{split} + \xi^{\kappa v_{\parallel}} (s_1, s_2, y) = + \int_0^{s_1} &\mathrm{d}\chi_1 \; + \mathcal{J}^{\kappa v_{\parallel}}_{\alpha} \times \\ + &\left[ + \mathcal{J}^{\kappa v_{\parallel}}_{00} I_0^0(\Delta\chi_1) + + \mathcal{J}^{\kappa v_{\parallel}}_{02} I_2^0(\Delta\chi_1) + + \mathcal{J}^{\kappa v_{\parallel}}_{04} I_4^0(\Delta\chi_1) + + \mathcal{J}^{\kappa v_{\parallel}}_{20} I_0^2(\Delta\chi_1) + \right] \, , +\end{split}\]

    with

    \[\begin{split} + \mathcal{J}^{\kappa v_{\parallel}}_{\alpha} &= + \mathcal{H}_0^2 \Omega_{\mathrm{M}0} D_2 f_2 \mathcal{H}_2 \mathfrak{R}_2 + \frac{D(\chi_1) (\chi_1 - s_1)}{a(\chi_1) s_1} + \, , \\ + %%%%%%%%%%%%%%%%%%%%%%%% + \mathcal{J}^{\kappa v_{\parallel}}_{00} & = + \frac{1}{15} + \left[ + \chi_1^2 y + \chi_1(4 y^2 - 3) s_2 - 2 y s_2^2 + \right] + \, , \\ + %%%%%%%%%%%%%%%%%%%%%%%% + \mathcal{J}^{\kappa v_{\parallel}}_{02} & = + \frac{1}{42 \Delta\chi_1^2} + \left[ + 4 \chi_1^4 y + 4 \chi_1^3 (2 y^2 - 3) s_2 + + \chi_1^2 y (11 - 23 y^2) s_2^2 + + \right.\\ + &\left.\qquad\qquad\qquad + \chi_1 (23 y^2 - 3) s_2^3 - 8 y s_2^4 + \right] \nonumber + \, , \\ + %%%%%%%%%%%%%%%%%%%%%%%% + \mathcal{J}^{\kappa v_{\parallel}}_{04} & = + \frac{1}{70 \Delta\chi_1^2} + \left[ + 2\chi_1^4 y + 2 \chi_1^3 (2 y^2 - 3) s_2 - + \chi_1^2 y (y^2 + 5) s_2^2 + + \right.\\ + &\left.\qquad\qquad\qquad + \chi_1(y^2 + 9) s_2^3 - 4 y s_2^4 + \right] \nonumber + \, , \\ + %%%%%%%%%%%%%%%%%%%%%%%% + \mathcal{J}^{\kappa v_{\parallel}}_{20} & = y \Delta\chi_1^2 \, , +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathfrak{R}_1 = \mathfrak{R}(s_1)$, ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}(s) s} ;\]

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    This function is computed integrating integrand_ξ_LD_Lensing_Doppler with trapz() from the Trapz Julia package.

    Inputs

    • P1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $\Omega_{\mathrm{M}0}$, ...

    Keyword Arguments

    • en::Float64 = 1e6: just a float number used in order to deal better with small numbers;

    • N_χs::Int = 100: number of points to be used for sampling the integral along the range (0, s1) (for χ1); it has been checked that with N_χs ≥ 50 the result is stable.

    See also: Point, Cosmology, ξ_LD_multipole, map_ξ_LD_multipole, print_map_ξ_LD_multipole

    source
    GaPSE.ξ_LD_Doppler_LocalGPFunction
    ξ_LD_Doppler_LocalGP(P1::Point, P2::Point, y, cosmo::Cosmology ) ::Float64
    +ξ_LD_Doppler_LocalGP(s1, s2, y, cosmo::Cosmology ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Doppler and the Local Gravitational Potential (GP) effects arising from the Luminosity Distance (LD) perturbations.

    In the first method, you should pass the two Point (P1 and P2) where to evaluate the function, while in the second method (that internally recalls the first) you must provide the two corresponding comoving distances s1 and s2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this TPCF is the following:

    \[\begin{split} + \xi^{v_{\parallel}\phi} (s_1, s_2, y) = + \mathcal{J}^{v_{\parallel}\phi}_{31} I^3_1(s) \, , +\end{split}\]

    with

    \[\begin{split} + \mathcal{J}^{v_{\parallel}\phi}_{31} = + \frac{3}{2 a_2} \mathcal{H}_1 f_1 D_1 \mathfrak{R}_1 \mathcal{H}_0^2 + \Omega_{\mathrm{M}0} D_2 (1 + \mathfrak{R}_2)(s_1 - s_2 y) + \, s^2 \, , +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathfrak{R}_1 = \mathfrak{R}(s_1)$, ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}(s) s} ;\]

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    Inputs

    • P1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $\Omega_{\mathrm{M}0}$, ...

    See also: Point, Cosmology, ξ_LD_multipole, map_ξ_LD_multipole, print_map_ξ_LD_multipole

    source
    GaPSE.ξ_LD_LocalGP_DopplerFunction
    ξ_LD_LocalGP_Doppler(
    +    s1, s2, y, cosmo::Cosmology; 
    +    kwargs... ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Local Gravitational Potential (GP) and the Doppler effects arising from the Luminosity Distance (LD) perturbations.

    It's computed through the symmetric function ξ_LD_Doppler_LocalGP; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    Inputs

    • s1 and s2: comoving distances where the TPCF has to be calculated;

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • kwargs... : Keyword arguments to be passed to the symmetric TPCF

    See also: Point, Cosmology, ξ_LD_multipole, map_ξ_LD_multipole, print_map_ξ_LD_multipole, ξ_LD_Doppler_LocalGP

    source
    GaPSE.ξ_LD_Doppler_IntegratedGPFunction
    ξ_LD_Doppler_IntegratedGP(
    +    s1, s2, y, cosmo::Cosmology;
    +    en::Float64 = 1e6, N_χs::Int = 100 ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Doppler and the Integrated Gravitational Potential (GP) effects arising from the Luminosity Distance (LD) perturbations.

    You must provide the two comoving distances s1 and s2 where to evaluate the function. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this TPCF is the following:

    \[\begin{split} + \xi^{v_{\parallel} \int\!\phi} \left(\chi_2, s_1 , s_2, y \right) &= + \int_0^{s_2} \mathrm{d}\chi_2 \; + \mathcal{J}^{v_{\parallel} \int\!\phi}_{31} \,I_1^3(\Delta\chi_2) \, , +\end{split}\]

    with

    \[\begin{split} + \mathcal{J}^{v_{\parallel} \int\!\phi}_{31} = + 3 \mathcal{H}_1 f_1 D_1 \mathcal{H}_0^2 \Omega_{\mathrm{M}0} \mathfrak{R}_1 + \frac{ + D(\chi_2)(s_1 - \chi_2 y) + }{ + a(\chi_2) s_2 + } \Delta\chi_2^2 \left[ + s_2 \mathfrak{R}_2 \mathcal{H}(\chi_2)(f_2 -1) - 1 + \right] \, , +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathfrak{R}_1 = \mathfrak{R}(s_1)$, ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}(s) s} ;\]

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    This function is computed integrating integrand_ξ_LD_Doppler_IntegratedGP with trapz() from the Trapz Julia package.

    Inputs

    • P1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $\Omega_{\mathrm{M}0}$, ...

    Keyword Arguments

    • en::Float64 = 1e6: just a float number used in order to deal better with small numbers;

    • N_χs::Int = 100: number of points to be used for sampling the integral along the range (0, s2) (for χ2); it has been checked that with N_χs ≥ 100 the result is stable.

    See also: Point, Cosmology, ξ_LD_multipole, map_ξ_LD_multipole, print_map_ξ_LD_multipole

    source
    GaPSE.ξ_LD_IntegratedGP_DopplerFunction
    ξ_LD_IntegratedGP_Doppler(
    +    s1, s2, y, cosmo::Cosmology; 
    +    kwargs... ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Integrated Gravitational Potential (GP) and the Doppler effects arising from the Luminosity Distance (LD) perturbations.

    It's computed through the symmetric function ξ_LD_Doppler_IntegratedGP; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    Inputs

    • s1 and s2: comoving distances where the TPCF has to be calculated;

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • kwargs... : Keyword arguments to be passed to the symmetric TPCF

    See also: Point, Cosmology, ξ_LD_multipole, map_ξ_LD_multipole, print_map_ξ_LD_multipole, ξ_LD_Doppler_IntegratedGP

    source
    GaPSE.ξ_LD_Lensing_LocalGPFunction
    ξ_LD_Lensing_LocalGP(
    +    s1, s2, y, cosmo::Cosmology;
    +    en::Float64 = 1e6, N_χs::Int = 100 ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Lensing and the Local Gravitational Potential (GP) effects arising from the Luminosity Distance (LD) perturbations.

    You must provide the two comoving distances s1 and s2 where to evaluate the function. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this TPCF is the following:

    \[\begin{split} + \xi^{\kappa \phi} (s_1, s_2, y) = + \int_0^{s_1} \mathrm{d}\chi_1 \, + \mathcal{J}^{\kappa \phi}_{\alpha} \left[ + \mathcal{J}^{\kappa \phi}_{31} I_1^3(\Delta\chi_1) + + \mathcal{J}^{\kappa \phi}_{22} I_2^2(\Delta\chi_1) + \right] \nonumber \, , +\end{split}\]

    with

    \[\begin{split} + \mathcal{J}^{\kappa \phi}_{\alpha} &= + \frac{ + 9 \mathcal{H}_0^4 \Omega_{\mathrm{M}0}^2 D_2 s_2 + }{4 a_2 s_1} (1 + \mathfrak{R}_2) + \frac{D(\chi_1)(s_1 - \chi_1)}{a(\chi_1)} + \, , \\ + %%%%%%%%%%%%%%%%%%%%%%%% + \mathcal{J}^{\kappa \phi}_{31} & = -2 y \Delta\chi_1^2 + \, , \\ + %%%%%%%%%%%%%%%%%%%%%%%% + \mathcal{J}^{\kappa \phi}_{22} & = \chi_1 s_2 (1 - y^2) + \, , +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathfrak{R}_1 = \mathfrak{R}(s_1)$, ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}(s) s} ;\]

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    This function is computed integrating integrand_ξ_LD_Lensing_LocalGP with trapz() from the Trapz Julia package.

    Inputs

    • P1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $\Omega_{\mathrm{M}0}$, ...

    Keyword Arguments

    • en::Float64 = 1e6: just a float number used in order to deal better with small numbers;

    • N_χs::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ1); it has been checked that with N_χs ≥ 50 the result is stable.

    See also: Point, Cosmology, ξ_LD_multipole, map_ξ_LD_multipole, print_map_ξ_LD_multipole

    source
    GaPSE.ξ_LD_LocalGP_LensingFunction
    ξ_LD_LocalGP_Lensing(
    +    s1, s2, y, cosmo::Cosmology; 
    +    kwargs... ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Local Gravitational Potential (GP) and the Lensing effects arising from the Luminosity Distance (LD) perturbations.

    It's computed through the symmetric function ξ_LD_Lensing_LocalGP; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    Inputs

    • s1 and s2: comoving distances where the TPCF has to be calculated;

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • kwargs... : Keyword arguments to be passed to the symmetric TPCF

    See also: Point, Cosmology, ξ_LD_multipole, map_ξ_LD_multipole, print_map_ξ_LD_multipole, ξ_LD_Lensing_LocalGP

    source
    GaPSE.ξ_LD_Lensing_IntegratedGPFunction
    ξ_LD_Lensing_IntegratedGP(
    +    P1::Point, P2::Point, y, cosmo::Cosmology;
    +    en::Float64 = 1e6, N_χs_2::Int = 100 ) ::Float64
    +
    +ξ_LD_Lensing_IntegratedGP(
    +    s1, s2, y, cosmo::Cosmology; kwargs... ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Lensing and the Integrated Gravitational Potential (GP) effects arising from the Luminosity Distance (LD) perturbations.

    In the first method, you should pass the two Point (P1 and P2) where to evaluate the function, while in the second method (that internally recalls the first) you must provide the two corresponding comoving distances s1 and s2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this TPCF is the following:

    \[\begin{split} + \xi^{\kappa\int\!\phi} (s_1, s_2, y) = + \int_0^{s_1} \mathrm{d}\chi_1 \int_0^{s_2} \mathrm{d}\chi_2 \; + \mathcal{J}^{\kappa\int\!\phi}_{\alpha}\left[ + \mathcal{J}^{\kappa\int\!\phi}_{31} I_1^3(\Delta\chi) + + \mathcal{J}^{\kappa\int\!\phi}_{22} I_2^2(\Delta\chi) + \right] \, , +\end{split}\]

    with

    \[\begin{split} + \mathcal{J}^{\kappa\int\!\phi}_{\alpha} & = + \frac{9}{2} \mathcal{H}_0^4 \Omega_{\mathrm{M}0}^2 + \frac{ + D(\chi_1) D(\chi_2) \chi_2 (s_1 - \chi_1) + }{ + s_1 a(\chi_1) a(\chi_2) + } + \left[ + \mathcal{H}(\chi_2)(f(\chi_2) - 1)\mathfrak{R}_2 -\frac{1}{s_2} + \right] + \, , \\ + %%%%%%%%%%%%%%%%%%%%%%%% + \mathcal{J}^{\kappa\int\!\phi}_{31} & = -2 y \Delta\chi^2 + \, , \\ + %%%%%%%%%%%%%%%%%%%%%%%% + \mathcal{J}^{\kappa\int\!\phi}_{22} & = \chi_1 \chi_2(1 - y^2) + \, , +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathfrak{R}_1 = \mathfrak{R}(s_1)$, ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}(s) s} ;\]

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    This function is computed integrating integrand_ξ_LD_Lensing_IntegratedGP with trapz() from the Trapz Julia package.

    Inputs

    • P1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $\Omega_{\mathrm{M}0}$, ...

    Keyword Arguments

    • en::Float64 = 1e6: just a float number used in order to deal better with small numbers;

    • N_χs_2::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ1) and (0, s2) (for χ2); it has been checked that with N_χs_2 ≥ 50 the result is stable.

    See also: Point, Cosmology, ξ_LD_multipole, map_ξ_LD_multipole, print_map_ξ_LD_multipole

    source
    GaPSE.ξ_LD_IntegratedGP_LensingFunction
    ξ_LD_IntegratedGP_Lensing(
    +    s1, s2, y, cosmo::Cosmology; 
    +    kwargs... ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Integrated Gravitational Potential (GP) and the Lensing effects arising from the Luminosity Distance (LD) perturbations.

    It's computed through the symmetric function ξ_LD_Lensing_IntegratedGP; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    Inputs

    • s1 and s2: comoving distances where the TPCF has to be calculated;

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • kwargs... : Keyword arguments to be passed to the symmetric TPCF

    See also: Point, Cosmology, ξ_LD_multipole, map_ξ_LD_multipole, print_map_ξ_LD_multipole, ξ_LD_Lensing_IntegratedGP

    source
    GaPSE.ξ_LD_LocalGP_IntegratedGPFunction
    ξ_LD_LocalGP_IntegratedGP(
    +    s1, s2, y, cosmo::Cosmology;
    +    en::Float64 = 1e6, N_χs::Int = 100 ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Local Gravitational Potential (GP) and the Integrated GP effects arising from the Luminosity Distance (LD) perturbations.

    You must provide the two comoving distances s1 and s2 where to evaluate the function. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this TPCF is the following:

    \[\begin{split} + \xi^{\phi\int\!\phi} (s_1, s_2, y) = + \int_0^{s_2} \mathrm{d}\chi_2 \, + \mathcal{J}^{\phi \int\!\phi}_{40} \tilde{I}^4_0(\Delta\chi_2) + \, , +\end{split}\]

    with

    \[\begin{split} + \mathcal{J}^{\phi \int\!\phi}_{40} = + \frac{9 \mathcal{H}_0^4 \Omega_{\mathrm{M}0}^2 D_1}{2 a_1} + (\mathfrak{R}_1 + 1) + \frac{D(\chi_2) \Delta\chi_2^4}{a(\chi_2)} + \left[ + \mathcal{H}(\chi_2)(f(\chi_2) - 1)\mathfrak{R}_2 - \frac{1}{s_2} + \right] \, , +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathfrak{R}_1 = \mathfrak{R}(s_1)$, ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}(s) s} ;\]

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    This function is computed integrating integrand_ξ_LD_LocalGP_IntegratedGP with trapz() from the Trapz Julia package.

    Inputs

    • P1::Point and P2::Point, or s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $\Omega_{\mathrm{M}0}$, ...

    Keyword arguments

    • en::Float64 = 1e6: just a float number used in order to deal better with small numbers;

    • N_χs::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ1); it has been checked that with N_χs ≥ 50 the result is stable.

    See also: Point, Cosmology, ξ_LD_multipole, map_ξ_LD_multipole, print_map_ξ_LD_multipole

    source
    GaPSE.ξ_LD_IntegratedGP_LocalGPFunction
    ξ_LD_IntegratedGP_LocalGP(
    +    s1, s2, y, cosmo::Cosmology; 
    +    kwargs... ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Integrated Gravitational Potential (GP) and the Local GP effects arising from the Luminosity Distance (LD) perturbations.

    It's computed through the symmetric function ξ_LD_IntegratedGP_LocalGP; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    Inputs

    • s1 and s2: comoving distances where the TPCF has to be calculated;

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • kwargs... : Keyword arguments to be passed to the symmetric TPCF

    See also: Point, Cosmology, ξ_LD_multipole, map_ξ_LD_multipole, print_map_ξ_LD_multipole, ξ_LD_IntegratedGP_LocalGP

    source
    diff --git a/dev/LD_Correlations_2/index.html b/dev/LD_Correlations_2/index.html new file mode 100644 index 00000000..449fa903 --- /dev/null +++ b/dev/LD_Correlations_2/index.html @@ -0,0 +1,329 @@ + +LD TPCFs · GaPSE.jl

    LD TPCFs

    Two-Point Auto-Correlation Functions integrands

    GaPSE.integrand_ξ_LD_LensingFunction
    integrand_ξ_LD_Lensing(
    +    IP1::Point, IP2::Point,
    +    P1::Point, P2::Point,
    +    y, cosmo::Cosmology;
    +    Δχ_min::Float64 = 1e-4) ::Float64
    +
    +integrand_ξ_LD_Lensing(
    +    χ1::Float64, χ2::Float64,
    +    s1::Float64, s2::Float64,
    +    y, cosmo::Cosmology; kwargs...) ::Float64

    Return the integrand of the Two-Point Correlation Function (TPCF) of the Lensing auto-correlation effect arising from the Luminosity Distance (LD) perturbations.

    In the first method, you should pass the two extreme Points (P1 and P2) and the two intermediate integrand Points (IP1 and IP2) where to evaluate the function. In the second method (that internally recalls the first), you must provide the four corresponding comoving distances s1, s2, χ1, χ2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this term is the following:

    \[\begin{split} + f^{\kappa\kappa} (\chi_1, \chi_2, s_1, s_2, y) = + \mathcal{J}^{\kappa\kappa}_{\alpha} \left[ + \mathcal{J}^{\kappa\kappa}_{00}I^0_0(\Delta\chi) + + \mathcal{J}^{\kappa\kappa}_{02} I^0_2(\Delta\chi) + + \mathcal{J}^{\kappa\kappa}_{31}I^3_1(\Delta\chi) + + \mathcal{J}^{\kappa\kappa}_{22}I^2_2(\Delta\chi) + \right] \nonumber \, , +\end{split}\]

    with

    \[\begin{split} + \mathcal{J}^{\kappa\kappa}_{\alpha} & = + \frac{ + \mathcal{H}_0^4 \Omega_{\mathrm{M}0}^2 D(\chi_1) D(\chi_2) + }{ + s_1 s_2 a(\chi_1) a(\chi_2) + }(\chi_1 - s_1)(\chi_2 - s_2) + \, , \\ + %%%%%%%%%%%%%%%%%%%%%%%% + \mathcal{J}^{\kappa\kappa}_{00} & = + -\frac{ 3 \chi_1^2 \chi_2^2}{4 \Delta\chi^4} (y^2 - 1) + \left[ + 8 y (\chi_1^2 + \chi_2^2) - 9\chi_1\chi_2y^2 - + 7\chi_1\chi_2 + \right] + \, , \\ + %%%%%%%%%%%%%%%%%%%%%%%% + \mathcal{J}^{\kappa\kappa}_{02} & = + -\frac{ 3 \chi_1^2 \chi_2^2}{2 \Delta\chi^4}(y^2 - 1) + \left[ + 4 y (\chi_1^2 + \chi_2^2) - 3 \chi_1 \chi_2 y^2 - + 5 \chi_1 \chi_2 + \right] + \, , \\ + %%%%%%%%%%%%%%%%%%%%%%%% + \mathcal{J}^{\kappa\kappa}_{31} & = 9 y \Delta\chi^2 + \, , \\ + %%%%%%%%%%%%%%%%%%%%%%%% + \mathcal{J}^{\kappa\kappa}_{22} & = + \frac{9 \chi_1 \chi_2}{4 \Delta\chi^4} + \left[ + 2(\chi_1^4 + \chi_2^4)(7 y^2 - 3) - + 16 y \chi_1 \chi_2 (\chi_1^2 + \chi_2^2)(y^2 + 1) + + \right.\\ + &\left.\qquad\qquad\qquad + \chi_1^2 \chi_2^2 (11y^4 + 14y^2 + 23) + \right] \nonumber + \, , +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathfrak{R}_1 = \mathfrak{R}(s_1)$, ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}(s) s} ;\]

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    This function is used inside ξ_LD_Lensing with trapz() from the Trapz Julia package.

    Inputs

    • IP1::Point, IP2::Point, P1::Point, P2::Point or χ1, χ2, s1, s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $\Omega_{\mathrm{M}0}$, ...

    Keyword arguments

    • Δχ_min::Float64 = 1e-4 : when $\Delta\chi = \sqrt{\chi_1^2 + \chi_2^2 - 2 \, \chi_1 \chi_2 y} \to 0^{+}$, some $I_\ell^n$ term diverges, but the overall parenthesis has a known limit:

      \[\lim_{\chi\to 0^{+}} \left(J^{\kappa\kappa}_{00} \, I^0_0(\Delta\chi) + + J^{\kappa\kappa}_{02} \, I^0_2(\Delta\chi) + + J^{\kappa\kappa}_{31} \, I^3_1(\Delta\chi) + J^{\kappa\kappa}_{22} \, I^2_2(\Delta\chi) + \right) = + \frac{4}{15} \, \left(5 \, \sigma_2 + \frac{2}{3} \, σ_0 \,s_1^2 \, \chi_2^2\right)\]

    See also: Point, Cosmology, ξ_LD_multipole, map_ξ_LD_multipole, print_map_ξ_LD_multipole

    source
    GaPSE.integrand_ξ_LD_IntegratedGPFunction
    integrand_ξ_LD_IntegratedGP(
    +    IP1::Point, IP2::Point,
    +    P1::Point, P2::Point,
    +    y, cosmo::Cosmology) ::Float64
    +
    +integrand_ξ_LD_IntegratedGP(
    +    χ1::Float64, χ2::Float64,
    +    s1::Float64, s2::Float64,
    +    y, cosmo::Cosmology; kwargs...) ::Float64

    Return the integrand of the Two-Point Correlation Function (TPCF) of the Integrated Gravitational Potential (GP) auto-correlation effect arising from the Luminosity Distance (LD) perturbations.

    In the first method, you should pass the two extreme Points (P1 and P2) and the two intermediate integrand Points (IP1 and IP2) where to evaluate the function. In the second method (that internally recalls the first), you must provide the four corresponding comoving distances s1, s2, χ1, χ2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this term is the following:

    \[\begin{split} + f^{\int\!\phi\int\!\phi} (\chi_1, \chi_2, s_1, s_2, y) = + \mathcal{J}^{\int\!\phi\int\!\phi}_{40} + \tilde{I}^4_0(\Delta\chi) \, , +\end{split}\]

    with

    \[\begin{split} + \mathcal{J}^{\int\!\phi\int\!\phi}_{40} = + \frac{ + 9 \mathcal{H}_0^4 \Omega_{\mathrm{M}0}^2 D(\chi_1) D(\chi_2) \Delta\chi^4 + }{ a(\chi_1)\, a(\chi_2)\, s_1\, s_2 } + &\left[ + s_2 \mathcal{H}(\chi_2) \mathfrak{R}_2(f(\chi_2) - 1) - 1 + \right] \times \\ + &\left[ + s_1 \mathcal{H}(\chi_1) \mathfrak{R}_1(f(\chi_1) - 1) - 1 + \right] \, , +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathfrak{R}_1 = \mathfrak{R}(s_1)$, ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}(s) s} ;\]

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    This function is used inside ξ_LD_IntegratedGP with trapz() from the Trapz Julia package.

    Inputs

    • P1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $\Omega_{\mathrm{M}0}$, ...

    See also: Point, Cosmology, ξ_LD_multipole, map_ξ_LD_multipole, print_map_ξ_LD_multipole

    source

    Two-Point Cross-Correlation Functions integrands

    GaPSE.integrand_ξ_LD_Lensing_LocalGPFunction
    integrand_ξ_LD_Lensing_LocalGP(
    +    IP::Point, P1::Point, P2::Point,
    +    y, cosmo::Cosmology ) ::Float64
    +
    +integrand_ξ_LD_Lensing_LocalGP(
    +    χ1::Float64, s1::Float64, s2::Float64,
    +    y, cosmo::Cosmology; kwargs... ) ::Float64

    Return the integrand of the Two-Point Correlation Function (TPCF) given by the cross correlation between the Lensing and the Local Gravitational Potential (GP) effects arising from the Luminosity Distance (LD) perturbations.

    In the first method, you should pass the two extreme Points (P1 and P2) and the intermediate integrand Point (IP) where to evaluate the function. In the second method (that internally recalls the first), you must provide the three corresponding comoving distances s1, s2, χ1. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this integrand is the following:

    \[\begin{split} + f^{\kappa \phi} (s_1, s_2, y) = + \mathcal{J}^{\kappa \phi}_{\alpha} \left[ + \mathcal{J}^{\kappa \phi}_{31} I_1^3(\Delta\chi_1) + + \mathcal{J}^{\kappa \phi}_{22} I_2^2(\Delta\chi_1) + \right] \nonumber \, , +\end{split}\]

    with

    \[\begin{split} + \mathcal{J}^{\kappa \phi}_{\alpha} &= + \frac{ + 9 \mathcal{H}_0^4 \Omega_{\mathrm{M}0}^2 D_2 s_2 + }{4 a_2 s_1} (1 + \mathfrak{R}_2) + \frac{D(\chi_1)(s_1 - \chi_1)}{a(\chi_1)} + \, , \\ + %%%%%%%%%%%%%%%%%%%%%%%% + \mathcal{J}^{\kappa \phi}_{31} & = -2 y \Delta\chi_1^2 + \, , \\ + %%%%%%%%%%%%%%%%%%%%%%%% + \mathcal{J}^{\kappa \phi}_{22} & = \chi_1 s_2 (1 - y^2) + \, , +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathfrak{R}_1 = \mathfrak{R}(s_1)$, ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}(s) s} ;\]

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    This function is used inside ξ_LD_Lensing_LocalGP with trapz() from the Trapz Julia package.

    Inputs

    • IP::Point, P1::Point and P2::Point, or χ1,s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $\Omega_{\mathrm{M}0}$, ...

    See also: Point, Cosmology, ξ_LD_multipole, map_ξ_LD_multipole, print_map_ξ_LD_multipole

    source
    GaPSE.integrand_ξ_LD_Doppler_IntegratedGPFunction
    integrand_ξ_LD_Doppler_IntegratedGP(
    +    IP::Point, P1::Point, P2::Point,
    +    y, cosmo::Cosmology ) ::Float64
    +
    +integrand_ξ_LD_Doppler_IntegratedGP(
    +    χ2::Float64, s1::Float64, s2::Float64,
    +    y, cosmo::Cosmology; kwargs... ) ::Float64

    Return the integrand of the Two-Point Correlation Function (TPCF) given by the cross correlation between the Doppler and the Integrated Gravitational Potential (GP) effects arising from the Luminosity Distance (LD) perturbations.

    In the first method, you should pass the two extreme Points (P1 and P2) and the intermediate integrand Point (IP) where to evaluate the function. In the second method (that internally recalls the first), you must provide the three corresponding comoving distances s1, s2, χ2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this integrand is the following:

    \[\begin{split} + f^{v_{\parallel} \int\!\phi} \left(\chi_2, s_1 , s_2, y \right) &= + \mathcal{J}^{v_{\parallel} \int\!\phi}_{31} \,I_1^3(\Delta\chi_2) \, , +\end{split}\]

    with

    \[\begin{split} + \mathcal{J}^{v_{\parallel} \int\!\phi}_{31} = + 3 \mathcal{H}_1 f_1 D_1 \mathcal{H}_0^2 \Omega_{\mathrm{M}0} \mathfrak{R}_1 + \frac{ + D(\chi_2)(s_1 - \chi_2 y) + }{ + a(\chi_2) s_2 + } \Delta\chi_2^2 \left[ + s_2 \mathfrak{R}_2 \mathcal{H}(\chi_2)(f_2 -1) - 1 + \right] \, , +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathfrak{R}_1 = \mathfrak{R}(s_1)$, ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}(s) s} ;\]

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    This function is used inside ξ_LD_Doppler_IntegratedGP with trapz() from the Trapz Julia package.

    Inputs

    • IP::Point, P1::Point and P2::Point, or χ2,s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $\Omega_{\mathrm{M}0}$, ...

    See also: Point, Cosmology, ξ_LD_multipole, map_ξ_LD_multipole, print_map_ξ_LD_multipole

    source
    GaPSE.integrand_ξ_LD_LocalGP_IntegratedGPFunction
    integrand_ξ_LD_LocalGP_IntegratedGP(
    +    IP::Point, P1::Point, P2::Point,
    +    y, cosmo::Cosmology ) ::Float64
    +
    +integrand_ξ_LD_LocalGP_IntegratedGP(
    +    χ2::Float64, s1::Float64, s2::Float64,
    +    y, cosmo::Cosmology;
    +    kwargs... ) ::Float64

    Return the integrand of the Two-Point Correlation Function (TPCF) given by the cross correlation between the Local Gravitational Potential (GP) and the Integrated GP effects arising from the Luminosity Distance (LD) perturbations.

    In the first method, you should pass the two extreme Points (P1 and P2) and the intermediate integrand Point (IP) where to evaluate the function. In the second method (that internally recalls the first), you must provide the three corresponding comoving distances s1, s2, χ1. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this integrand is the following:

    \[\begin{split} + f^{\phi\int\!\phi} (s_1, s_2, y) = + \mathcal{J}^{\phi \int\!\phi}_{40} \tilde{I}^4_0(\Delta\chi_2) + \, , +\end{split}\]

    with

    \[\begin{split} + \mathcal{J}^{\phi \int\!\phi}_{40} = + \frac{9 \mathcal{H}_0^4 \Omega_{\mathrm{M}0}^2 D_1}{2 a_1} + (\mathfrak{R}_1 + 1) + \frac{D(\chi_2) \Delta\chi_2^4}{a(\chi_2)} + \left[ + \mathcal{H}(\chi_2)(f(\chi_2) - 1)\mathfrak{R}_2 - \frac{1}{s_2} + \right] \, , +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathfrak{R}_1 = \mathfrak{R}(s_1)$, ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}(s) s} ;\]

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    This function is used inside ξ_LD_LocalGP_IntegratedGP with trapz() from the Trapz Julia package.

    Inputs

    • IP::Point, P1::Point and P2::Point, or χ2,s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $\Omega_{\mathrm{M}0}$, ...

    See also: Point, Cosmology, ξ_LD_multipole, map_ξ_LD_multipole, print_map_ξ_LD_multipole

    source
    GaPSE.integrand_ξ_LD_Lensing_IntegratedGPFunction
    integrand_ξ_LD_Lensing_IntegratedGP(
    +    IP1::Point, IP2::Point,
    +    P1::Point, P2::Point,
    +    y, cosmo::Cosmology ) ::Float64
    +
    +integrand_ξ_LD_Lensing_IntegratedGP(
    +    χ1::Float64, χ2::Float64,
    +    s1::Float64, s2::Float64,
    +    y, cosmo::Cosmology;
    +    kwargs... ) ::Float64

    Return the integrand of the Two-Point Correlation Function (TPCF) given by the cross correlation between the Lensing and the Integrated Gravitational Potential (GP) effects arising from the Luminosity Distance (LD) perturbations.

    In the first method, you should pass the two extreme Points (P1 and P2) and the two intermediate integrand Points (IP1 and IP2) where to evaluate the function. In the second method (that internally recalls the first), you must provide the four corresponding comoving distances s1, s2, χ1, χ2. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this integrand is the following:

    \[\begin{split} + f^{\kappa\int\!\phi} (\chi_1, \chi_2, s_1, s_2, y) = + \mathcal{J}^{\kappa\int\!\phi}_{\alpha}\left[ + \mathcal{J}^{\kappa\int\!\phi}_{31} I_1^3(\Delta\chi) + + \mathcal{J}^{\kappa\int\!\phi}_{22} I_2^2(\Delta\chi) + \right] \, , +\end{split}\]

    with

    \[\begin{split} + \mathcal{J}^{\kappa\int\!\phi}_{\alpha} & = + \frac{9}{2} \mathcal{H}_0^4 \Omega_{\mathrm{M}0}^2 + \frac{ + D(\chi_1) D(\chi_2) \chi_2 (s_1 - \chi_1) + }{ + s_1 a(\chi_1) a(\chi_2) + } + \left[ + \mathcal{H}(\chi_2)(f(\chi_2) - 1)\mathfrak{R}_2 -\frac{1}{s_2} + \right] + \, , \\ + %%%%%%%%%%%%%%%%%%%%%%%% + \mathcal{J}^{\kappa\int\!\phi}_{31} & = -2 y \Delta\chi^2 + \, , \\ + %%%%%%%%%%%%%%%%%%%%%%%% + \mathcal{J}^{\kappa\int\!\phi}_{22} & = \chi_1 \chi_2(1 - y^2) + \, , +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathfrak{R}_1 = \mathfrak{R}(s_1)$, ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}(s) s} ;\]

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    This function is used inside ξ_LD_Lensing_IntegratedGP with trapz() from the Trapz Julia package.

    Inputs

    • IP1::Point, IP2::Point, P1::Point, P2::Point or χ1, χ2, s1, s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $\Omega_{\mathrm{M}0}$, ...

    See also: Point, Cosmology, ξ_LD_multipole, map_ξ_LD_multipole, print_map_ξ_LD_multipole

    source
    GaPSE.integrand_ξ_LD_Lensing_DopplerFunction
    integrand_ξ_LD_Lensing_Doppler(
    +    IP::Point, P1::Point, P2::Point,
    +    y, cosmo::Cosmology ) ::Float64
    +
    +integrand_ξ_LD_Lensing_Doppler(
    +    χ1::Float64, s1::Float64, s2::Float64,
    +    y, cosmo::Cosmology ) ::Float64

    Return the integrand of the Two-Point Correlation Function (TPCF) given by the cross correlation between the Lensing and the Doppler effects arising from the Luminosity Distance (LD) perturbations.

    In the first method, you should pass the two extreme Points (P1 and P2) and the intermediate integrand Point (IP) where to evaluate the function. In the second method (that internally recalls the first), you must provide the three corresponding comoving distances s1, s2, χ1. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of this integrand is the following:

    \[\begin{split} + f^{\kappa v_{\parallel}} (\chi_1, s_1, s_2, y) = + \mathcal{J}^{\kappa v_{\parallel}}_{\alpha} \times \\ + &\left[ + \mathcal{J}^{\kappa v_{\parallel}}_{00} I_0^0(\Delta\chi_1) + + \mathcal{J}^{\kappa v_{\parallel}}_{02} I_2^0(\Delta\chi_1) + + \mathcal{J}^{\kappa v_{\parallel}}_{04} I_4^0(\Delta\chi_1) + + \mathcal{J}^{\kappa v_{\parallel}}_{20} I_0^2(\Delta\chi_1) + \right] \, , +\end{split}\]

    with

    \[\begin{split} + \mathcal{J}^{\kappa v_{\parallel}}_{\alpha} &= + \mathcal{H}_0^2 \Omega_{\mathrm{M}0} D_2 f_2 \mathcal{H}_2 \mathfrak{R}_2 + \frac{D(\chi_1) (\chi_1 - s_1)}{a(\chi_1) s_1} + \, , \\ + %%%%%%%%%%%%%%%%%%%%%%%% + \mathcal{J}^{\kappa v_{\parallel}}_{00} & = + \frac{1}{15} + \left[ + \chi_1^2 y + \chi_1(4 y^2 - 3) s_2 - 2 y s_2^2 + \right] + \, , \\ + %%%%%%%%%%%%%%%%%%%%%%%% + \mathcal{J}^{\kappa v_{\parallel}}_{02} & = + \frac{1}{42 \Delta\chi_1^2} + \left[ + 4 \chi_1^4 y + 4 \chi_1^3 (2 y^2 - 3) s_2 + + \chi_1^2 y (11 - 23 y^2) s_2^2 + + \right.\\ + &\left.\qquad\qquad\qquad + \chi_1 (23 y^2 - 3) s_2^3 - 8 y s_2^4 + \right] \nonumber + \, , \\ + %%%%%%%%%%%%%%%%%%%%%%%% + \mathcal{J}^{\kappa v_{\parallel}}_{04} & = + \frac{1}{70 \Delta\chi_1^2} + \left[ + 2\chi_1^4 y + 2 \chi_1^3 (2 y^2 - 3) s_2 - + \chi_1^2 y (y^2 + 5) s_2^2 + + \right.\\ + &\left.\qquad\qquad\qquad + \chi_1(y^2 + 9) s_2^3 - 4 y s_2^4 + \right] \nonumber + \, , \\ + %%%%%%%%%%%%%%%%%%%%%%%% + \mathcal{J}^{\kappa v_{\parallel}}_{20} & = y \Delta\chi_1^2 \, , +\end{split}\]

    where:

    • $s_1$ and $s_2$ are comoving distances;

    • $D_1 = D(s_1)$, ... is the linear growth factor (evaluated in $s_1$);

    • $a_1 = a(s_1)$, ... is the scale factor (evaluated in $s_1$);

    • $f_1 = f(s_1)$, ... is the linear growth rate (evaluated in $s_1$);

    • $\mathcal{H}_1 = \mathcal{H}(s_1)$, ... is the comoving Hubble distances (evaluated in $s_1$);

    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2$;

    • $\mathfrak{R}_1 = \mathfrak{R}(s_1)$, ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in $s_1$ ); the definition of $\mathcal{R}(s)$ is the following:

      \[\mathfrak{R}(s) = 1 - \frac{1}{\mathcal{H}(s) s} ;\]

    • $\Omega_{\mathrm{M}0} = \Omega_{\mathrm{cdm}} + \Omega_{\mathrm{b}}$ is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);

    • $I_\ell^n$ and $\sigma_i$ are defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n} \quad , +\quad \sigma_i = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^{2-i} \, P(q)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\tilde{I}_0^4$ is defined as

      \[\tilde{I}_0^4 = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} +\, q^2 \, P(q) \, \frac{j_0(qs) - 1}{(qs)^4}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo) and $j_\ell$ as spherical Bessel function of order $\ell$;

    • $\mathcal{H}_0$, $f_0$ and so on are evaluated at the observer position (i.e. at present day);

    • $\Delta\chi_1 := \sqrt{\chi_1^2 + s_2^2-2\,\chi_1\,s_2\,y}$ and $\Delta\chi_2 := \sqrt{s_1^2 + \chi_2^2-2\,s_1\,\chi_2\,y}$;

    • $s=\sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$ and $\Delta\chi := \sqrt{\chi_1^2 + \chi_2^2-2\,\chi_1\,\chi_2\,y}$.

    This function is used inside ξ_LD_Lensing_Doppler with trapz() from the Trapz Julia package.

    Inputs

    • IP::Point, P1::Point and P2::Point, or χ2,s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $\Omega_{\mathrm{M}0}$, ...

    See also: Point, Cosmology, ξ_LD_multipole, map_ξ_LD_multipole, print_map_ξ_LD_multipole

    source

    Two-Point Cross-Correlation Function multipoles

    GaPSE.integrand_ξ_LD_multipoleFunction
    integrand_ξ_LD_multipole(s1, s, μ, effect::Function, cosmo::Cosmology;
    +    L::Int = 0, use_windows::Bool = true, kwargs...)
    +
    +integrand_ξ_LD_multipole(s1, s, μ, effect::String, cosmo::Cosmology; kwargs...)

    Return the integrand on $\mu = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}$ of the chosen perturbation of the Luminosity Distance (LD) Two-Point Correlation Function (TPCF) term, i.e. the following function $f(s_1, s, \mu)$:

    \[ f_L(s_1, s, \mu) = \xi \left(s_1, s_2, y\right) + \, \mathcal{L}_L(\mu) \, \times + \begin{cases} + \frac{1}{\mathcal{N}}\mathcal{F}(s, \mu) \quad \mathrm{use\_windows == true} \\ + 1 \quad\quad \mathrm{use\_windows == false} + \end{cases}\]

    where:

    • $s_2 = s_2(s_1, s, \mu) = \sqrt{s_1^2 + s^2 + 2 \, s_1 \, s \, \mu}$
    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2 = \frac{\mu \, s + s_1}{s_2(s_1, s, \mu)}$
    • $\xi$ is the corresponding LD TPCF effect
    • $\mathcal{L}_L(\mu)$ is the Legendre polynomial of order $L$
    • $\mathcal{F}(s, \mu)$ is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)
    • $\mathcal{N}$ is the integrated window function norm (check the documentation of WindowFIntegrated)

    In the former method you have to pass as an input the LD effect function you want to integrate, while in the (recommended) latter one it's necessary to specify the name of the LD TPCF term among the following:

    auto_doppler , auto_lensing , auto_localgp , auto_integratedgp , lensing_doppler , doppler_lensing , doppler_localgp , localgp_doppler , doppler_integratedgp , integratedgp_doppler , lensing_localgp , localgp_lensing , lensing_integratedgp , integratedgp_lensing , localgp_integratedgp , integratedgp_localgp ,

    to which correspond the following functions, respectively:

    ξ_LD_Doppler , ξ_LD_Lensing , ξ_LD_LocalGP , ξ_LD_IntegratedGP , ξ_LD_Lensing_Doppler , ξ_LD_Doppler_Lensing , ξ_LD_Doppler_LocalGP , ξ_LD_LocalGP_Doppler , ξ_LD_Doppler_IntegratedGP , ξ_LD_IntegratedGP_Doppler , ξ_LD_Lensing_LocalGP , ξ_LD_LocalGP_Lensing , ξ_LD_Lensing_IntegratedGP , ξ_LD_IntegratedGP_Lensing , ξ_LD_LocalGP_IntegratedGP , ξ_LD_IntegratedGP_LocalGP ,

    Internally, the second method recall the first, so all the keyword arguments are in common.

    Note that these is an internal conversion of coordiate sistems from (s1, s, μ) to (s1, s2, y) thorugh the functions y and s2. The inverse relations are:

    • $s = s(s_1, s_2, y) = \sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$
    • $\mu = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}} = \frac{y \, s_2 - s_1}{s(s_1, s_2, y)}$.

    Inputs

    • s1: the comoving distance where must be evaluated the integral

    • s: the comoving distance from s1 where must be evaluated the integral

    • μ: the cosine between s1 and s where must be evaluated the integral

    • effect::Function or effect::String : name/function you want to consider, among the ones inside GaPSE.GR_EFFECTS_LD/GaPSE.VEC_ξs_LD respectively.

    • cosmo::Cosmology: cosmology to be used in this computation

    Optional arguments

    • L::Int = 0: order of the Legendre polynomial to be used

    • use_windows::Bool = false: tells if the integrand must consider the two window function $\phi$ and $\mathcal{F}$

    • kwargs... : other keyword arguments that will be passed to the selected GR TPCF effect (ξ_LD_Doppler, ξ_LD_Lensing, ...)

    See also: ξ_LD_multipole, map_ξ_LD_multipole, print_map_ξ_LD_multipole, WindowFIntegrated, ϕ, Cosmology, y, s2, GR_EFFECTS_LD, GaPSE.VEC_ξs_LD

    source
    GaPSE.ξ_LD_multipoleFunction
    ξ_LD_multipole(
    +    s1, s, effect::Function, cosmo::Cosmology;
    +    L::Int = 0, alg::Symbol = :lobatto, 
    +    use_windows::Bool = true, 
    +    N_lob::Int = 100, N_trap::Int = 200, 
    +    atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,
    +    enhancer::Float64 = 1e6, 
    +    kwargs...) ::Float64
    +
    +ξ_LD_multipole(s1, s, effect::String, cosmo::Cosmology; 
    +    kwargs...) ::Float64

    Evaluate the multipole of order L of the chosen perturbation of the Luminosity Distance (LD) Two-Point Correlation Function (TPCF) term i.e. the following function $\xi_L(s_1, s)$:

    \[ \xi_L(s_1, s) = \frac{2 L + 1}{2} \int_{-1}^{+1} \mathrm{d}\mu \; + \xi (s_1, s_2, \cos{\theta}) \, \mathcal{L}_L(\mu) \, \times + \begin{cases} + \frac{1}{\mathcal{N}}\mathcal{F}(s, \mu) \quad \mathrm{use\_windows == true} \\ + 1 \quad\quad \mathrm{use\_windows == false} + \end{cases}\]

    where:

    • $s_2 = s_2(s_1, s, \mu) = \sqrt{s_1^2 + s^2 + 2 \, s_1 \, s \, \mu}$
    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2 = \frac{\mu \, s + s_1}{s_2(s_1, s, \mu)}$
    • $\xi$ is the corresponding LD TPCF effect
    • $\mathcal{L}_L(\mu)$ is the Legendre polynomial of order $L$
    • $\mathcal{F}(s, \mu)$ is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)
    • $\mathcal{N}$ is the integrated window function norm (check the documentation of WindowFIntegrated)

    In the former method you have to pass as an input the LD effect function you want to integrate, while in the (recommended) latter one it's necessary to specify the name of the LD TPCF term among the following:

    auto_doppler , auto_lensing , auto_localgp , auto_integratedgp , lensing_doppler , doppler_lensing , doppler_localgp , localgp_doppler , doppler_integratedgp , integratedgp_doppler , lensing_localgp , localgp_lensing , lensing_integratedgp , integratedgp_lensing , localgp_integratedgp , integratedgp_localgp ,

    to which correspond the following functions:

    ξ_LD_Doppler , ξ_LD_Lensing , ξ_LD_LocalGP , ξ_LD_IntegratedGP , ξ_LD_Lensing_Doppler , ξ_LD_Doppler_Lensing , ξ_LD_Doppler_LocalGP , ξ_LD_LocalGP_Doppler , ξ_LD_Doppler_IntegratedGP , ξ_LD_IntegratedGP_Doppler , ξ_LD_Lensing_LocalGP , ξ_LD_LocalGP_Lensing , ξ_LD_Lensing_IntegratedGP , ξ_LD_IntegratedGP_Lensing , ξ_LD_LocalGP_IntegratedGP , ξ_LD_IntegratedGP_LocalGP ,

    Internally, the second method recall the first, so all the keyword arguments are in common.

    Note that these is an internal conversion of coordiate sistems from (s1, s, μ) to (s1, s2, y) thorugh the functions y and s2. The inverse relations are:

    • $s = s(s_1, s_2, y) = \sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$
    • $\mu = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}} = \frac{y \, s_2 - s_1}{s(s_1, s_2, y)}$.

    Inputs

    • s1: the comoving distance where must be evaluated the integral

    • s: the comoving distance from s1 where must be evaluated the integral

    • effect::Function or effect::String : name/function you want to consider, among the ones inside GaPSE.GR_EFFECTS_LD/GaPSE.VEC_ξs_LD respectively.

    • cosmo::Cosmology: cosmology to be used in this computation

    Optional arguments

    • L::Int = 0: order of the Legendre polynomial to be used

    • alg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):

      • :quad -> the integration over $\mu$ will be preformed through the Julia function quadgk

      from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.

      • :trap -> the integration over $\mu$ will be preformed through the Julia function trapz

      from the Trapz.jl Julia package, that uses the simple trapezoidal rulae.

      • :lobatto -> the integration over $\mu$ will be preformed through the Julia function gausslobatto

      from the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!

    • use_windows::Bool = false: tells if the integrand must consider the two window function $\phi$ and $\mathcal{F}$

    • N_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • N_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    • kwargs... : other keyword arguments that will be passed to the selected LD TPCF effect (ξ_LD_Doppler, ξ_LD_Lensing, ...)

    See also: integrand_ξ_LD_multipole, map_ξ_LD_multipole, print_map_ξ_LD_multipole WindowFIntegrated, Cosmology, y, s2, GR_EFFECTS_LD, VEC_ξs_LD

    source
    GaPSE.map_ξ_LD_multipoleFunction
    map_ξ_LD_multipole(cosmo::Cosmology,
    +    effect::Union{String,Function}, ss = nothing;
    +    s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,
    +    N_lob::Int = 100, N_trap::Int = 50,
    +    atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,
    +    enhancer::Float64=1e6, N_log::Int = 1000, 
    +    pr::Bool = true,
    +    kwargs...) ::Tuple{Vector{Float64}, Vector{Float64}}

    Evaluate the multipole of order L of the chosen perturbation of the Luminosity Distance (LD) Two-Point Correlation Function (TPCF) term for all the comoving distance values stored inside ss. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). If s1 = nothing, it is set s1 = cosmo.s_eff.

    The function evaluated is then the following $\xi_L(s_1, s)$:

    \[ \xi_L(s_1, s) = \frac{2 L + 1}{2} \int_{-1}^{+1} \mathrm{d}\mu \; + \xi (s_1, s_2, \cos{\theta}) \, \mathcal{L}_L(\mu) \, \times + \begin{cases} + \frac{1}{\mathcal{N}}\mathcal{F}(s, \mu) \quad \mathrm{use\_windows == true} \\ + 1 \quad\quad \mathrm{use\_windows == false} + \end{cases}\]

    where:

    • $s_2 = s_2(s_1, s, \mu) = \sqrt{s_1^2 + s^2 + 2 \, s_1 \, s \, \mu}$
    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2 = \frac{\mu \, s + s_1}{s_2(s_1, s, \mu)}$
    • $\xi$ is the corresponding LD TPCF effect
    • $\mathcal{L}_L(\mu)$ is the Legendre polynomial of order $L$
    • $\mathcal{F}(s, \mu)$ is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)
    • $\mathcal{N}$ is the integrated window function norm (check the documentation of WindowFIntegrated)

    Note that these is an internal conversion of coordiate sistems from (s1, s, μ) to (s1, s2, y) thorugh the functions y and s2. The inverse relations are:

    • $s = s(s_1, s_2, y) = \sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$
    • $\mu = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}} = \frac{y \, s_2 - s_1}{s(s_1, s_2, y)}$.

    Inputs

    • cosmo::Cosmology : cosmology to be used in this computation

    • effect::Union{String,Function} : the GR effect TPCF you want to consider; you may specify the name of the effect as one of the following strings (recommended):

      auto_doppler , auto_lensing , auto_localgp , auto_integratedgp , lensing_doppler , doppler_lensing , doppler_localgp , localgp_doppler , doppler_integratedgp , integratedgp_doppler , lensing_localgp , localgp_lensing , lensing_integratedgp , integratedgp_lensing , localgp_integratedgp , integratedgp_localgp ,

      or directly the name of the function among the following:

      ξ_LD_Doppler , ξ_LD_Lensing , ξ_LD_LocalGP , ξ_LD_IntegratedGP , ξ_LD_Lensing_Doppler , ξ_LD_Doppler_Lensing , ξ_LD_Doppler_LocalGP , ξ_LD_LocalGP_Doppler , ξ_LD_Doppler_IntegratedGP , ξ_LD_IntegratedGP_Doppler , ξ_LD_Lensing_LocalGP , ξ_LD_LocalGP_Lensing , ξ_LD_Lensing_IntegratedGP , ξ_LD_IntegratedGP_Lensing , ξ_LD_LocalGP_IntegratedGP , ξ_LD_IntegratedGP_LocalGP ,

    • ss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). This is why it is returned also the vector of the "input" values.

    Optional arguments

    • s1 = nothing : comoving distance from the observer where the TPCF should be evaluated; if s1 = nothing, it is automatically set s1 = cosmo.s_eff from the given input cosmo::Cosmology.

    • L::Int = 0: order of the Legendre polynomial to be used

    • alg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):

      • :quad -> the integration over $\mu$ will be preformed through the Julia function quadgk

      from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.

      • :trap -> the integration over $\mu$ will be preformed through the Julia function trapz

      from the Trapz.jl Julia package, that uses the simple trapezoidal rulae.

      • :lobatto -> the integration over $\mu$ will be preformed through the Julia function gausslobatto

      from the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!

    • use_windows::Bool = false: tells if the integrand must consider the two window function $\phi$ and $\mathcal{F}$

    • N_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • N_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    • N_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing

    • pr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)

    • kwargs... : other keyword arguments that will be passed to the selected LD TPCF effect (ξ_LD_Doppler, ξ_LD_Lensing, ...)

    Returns

    A Tuple{Vector{Float64}, Vector{Float64}}, which has as first element the ss vector and as second one the corresponding ξ value evaluated.

    See also: integrand_ξ_LD_multipole, ξ_LD_multipole, print_map_ξ_LD_multipole, WindowFIntegrated, Cosmology, y, s2, GR_EFFECTS_LD, GaPSE.VEC_ξs_LD

    source
    GaPSE.print_map_ξ_LD_multipoleFunction
    print_map_ξ_LD_multipole(
    +    cosmo::Cosmology, out::String,
    +    effect::Union{String,Function},
    +    ss = nothing;
    +    s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,
    +    N_lob::Int = 100, N_trap::Int = 50,
    +    atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,
    +    enhancer::Float64=1e6, N_log::Int = 1000, 
    +    pr::Bool = true,
    +    kwargs...)

    Evaluate the multipole of order L of the of the chosen perturbation of the Luminosity Distance (LD) Two-Point Correlation Function (TPCF) term for all the comoving distance values stored inside ss, and print the results (with all the options used) in a file named out. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). If s1 = nothing, it is set s1 = cosmo.s_eff.

    The function evaluated is then the following $\xi_L(s_1, s)$:

    \[ \xi_L(s_1, s) = \frac{2 L + 1}{2} \int_{-1}^{+1} \mathrm{d}\mu \; + \xi (s_1, s_2, \cos{\theta}) \, \mathcal{L}_L(\mu) \, \times + \begin{cases} + \frac{1}{\mathcal{N}}\mathcal{F}(s, \mu) \quad \mathrm{use\_windows == true} \\ + 1 \quad\quad \mathrm{use\_windows == false} + \end{cases}\]

    where:

    • $s_2 = s_2(s_1, s, \mu) = \sqrt{s_1^2 + s^2 + 2 \, s_1 \, s \, \mu}$
    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2 = \frac{\mu \, s + s_1}{s_2(s_1, s, \mu)}$
    • $\xi$ is the corresponding LD TPCF effect
    • $\mathcal{L}_L(\mu)$ is the Legendre polynomial of order $L$
    • $\mathcal{F}(s, \mu)$ is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)
    • $\mathcal{N}$ is the integrated window function norm (check the documentation of WindowFIntegrated)

    Note that these is an internal conversion of coordiate sistems from (s1, s, μ) to (s1, s2, y) thorugh the functions y and s2. The inverse relations are:

    • $s = s(s_1, s_2, y) = \sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$
    • $\mu = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}} = \frac{y \, s_2 - s_1}{s(s_1, s_2, y)}$.

    Inputs

    • cosmo::Cosmology : cosmology to be used in this computation

    • effect::Union{String,Function} : the GR effect TPCF you want to consider; you may specify the name of the effect as one of the following strings (recommended):

      auto_doppler , auto_lensing , auto_localgp , auto_integratedgp , lensing_doppler , doppler_lensing , doppler_localgp , localgp_doppler , doppler_integratedgp , integratedgp_doppler , lensing_localgp , localgp_lensing , lensing_integratedgp , integratedgp_lensing , localgp_integratedgp , integratedgp_localgp ,

      or directly the name of the function among the following:

      ξ_LD_Doppler , ξ_LD_Lensing , ξ_LD_LocalGP , ξ_LD_IntegratedGP , ξ_LD_Lensing_Doppler , ξ_LD_Doppler_Lensing , ξ_LD_Doppler_LocalGP , ξ_LD_LocalGP_Doppler , ξ_LD_Doppler_IntegratedGP , ξ_LD_IntegratedGP_Doppler , ξ_LD_Lensing_LocalGP , ξ_LD_LocalGP_Lensing , ξ_LD_Lensing_IntegratedGP , ξ_LD_IntegratedGP_Lensing , ξ_LD_LocalGP_IntegratedGP , ξ_LD_IntegratedGP_LocalGP ,

    • out::String : name of the file where the results must be stored.

    • ss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log).

    Optional arguments

    This function recall internally map_ξ_LD_multipole, so the kwargs are the same; we report them for comfortness:

    • s1 = nothing : comoving distance from the observer where the TPCF should be evaluated; if s1 = nothing, it is automatically set s1 = cosmo.s_eff from the given input cosmo::Cosmology.

    • L::Int = 0: order of the Legendre polynomial to be used

    • alg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):

      • :quad -> the integration over $\mu$ will be preformed through the Julia function quadgk

      from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.

      • :trap -> the integration over $\mu$ will be preformed through the Julia function trapz

      from the Trapz.jl Julia package, that uses the simple trapezoidal rulae.

      • :lobatto -> the integration over $\mu$ will be preformed through the Julia function gausslobatto

      from the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!

    • use_windows::Bool = false: tells if the integrand must consider the two window function $\phi$ and $\mathcal{F}$

    • N_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • N_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    • N_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing

    • pr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)

    • kwargs... : other keyword arguments that will be passed to the selected LD TPCF effect (ξ_LD_Doppler, ξ_LD_Lensing, ...)

    See also: integrand_ξ_LD_multipole, ξ_LD_multipole, print_map_ξ_LD_multipole, WindowFIntegrated, Cosmology, y, s2, GR_EFFECTS_LD, GaPSE.VEC_ξs_LD

    source

    Two-Point Cross-Correlation Function Sum multipoles

    GaPSE.sum_ξ_LD_multipoleFunction
    sum_ξ_LD_multipole(s1, s, cosmo::Cosmology;
    +    s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,
    +    N_lob::Int = 100, N_trap::Int = 50,
    +    atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,
    +    enhancer::Float64=1e6, N_log::Int = 1000, 
    +    pr::Bool = true,
    +    kwargs...) ::Tuple{Float64, Vector{Float64}}

    Evaluate the multipole of order L of all the two-point cross correlation multipole between the perturbations of the Luminosity Distance (LD) and the Galaxy Number Counts (GNC) and their sum in the comoving distance s1 and a comoving distance s from it for the input cosmo::Cosmology. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    This function makes a for-loop on the GaPSE.GR_EFFECTS_LD strings, calling ξ_LD_multipole for each of them. To each string corresponds pretty intuitively one of the 16 LD effects. They are currently, in order:

    auto_doppler , auto_lensing , auto_localgp , auto_integratedgp , lensing_doppler , doppler_lensing , doppler_localgp , localgp_doppler , doppler_integratedgp , integratedgp_doppler , lensing_localgp , localgp_lensing , lensing_integratedgp , integratedgp_lensing , localgp_integratedgp , integratedgp_localgp ,

    Inputs

    • s1: the comoving distance where must be evaluated the integral

    • s: the comoving distance from s1 where must be evaluated the integral

    • cosmo::Cosmology: cosmology to be used in this computation

    Optional arguments

    This function recall internally ξ_LD_multipole, so the kwargs are the same; we report them for comfortness:

    • L::Int = 0: order of the Legendre polynomial to be used

    • alg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):

      • :quad -> the integration over $\mu$ will be preformed through the Julia function quadgk

      from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.

      • :trap -> the integration over $\mu$ will be preformed through the Julia function trapz

      from the Trapz.jl Julia package, that uses the simple trapezoidal rulae.

      • :lobatto -> the integration over $\mu$ will be preformed through the Julia function gausslobatto

      from the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!

    • use_windows::Bool = false: tells if the integrand must consider the two window function $\phi$ and $\mathcal{F}$

    • N_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • N_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    • kwargs... : other keyword arguments that will be passed to ALL the LD TPCF effect (ξ_LD_Doppler, ξ_LD_Lensing, ...); if one of them has that keyword argument, it will use the given value, otherwise it will be unaffected.

    Returns

    A tuple containing:

    • the sum of all the ξ multipoles as first element
    • a Vector{Float64} with all the values of each ξ; they are ordered following GR_EFFECTS_LD

    See also: integrand_ξ_LD_multipole, ξ_LD_multipole, map_sum_ξ_LD_multipole, print_map_sum_ξ_LD_multipole, Cosmology, GR_EFFECTS_LD

    source
    GaPSE.map_sum_ξ_LD_multipoleFunction
    map_sum_ξ_LD_multipole(
    +    effect::Union{String,Function}, ss = nothing;
    +    s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,
    +    N_lob::Int = 100, N_trap::Int = 50,
    +    atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,
    +    enhancer::Float64=1e6, N_log::Int = 1000, 
    +    pr::Bool = true,
    +    kwargs...) ::Tuple{Vector{Float64}, Vector{Float64}, Vector{Vector{Float64}}}

    Evaluate the multipole of order L of all the two-point cross correlation multipole between the perturbations of the Luminosity Distance (LD) and the Galaxy Number Counts (GNC) and their sum in the comoving distance s1, for all the comoving distances stored inside ss (representing the comoving distance from s1) for the input cosmo::Cosmology. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). If s1 = nothing, it is set s1 = cosmo.s_eff. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    This function makes a for-loop on the GaPSE.GR_EFFECTS_LD strings, calling map_ξ_LD_multipole for each of them. To each string corresponds pretty intuitively one of the 16 LD effects. They are currently, in order:

    auto_doppler , auto_lensing , auto_localgp , auto_integratedgp , lensing_doppler , doppler_lensing , doppler_localgp , localgp_doppler , doppler_integratedgp , integratedgp_doppler , lensing_localgp , localgp_lensing , lensing_integratedgp , integratedgp_lensing , localgp_integratedgp , integratedgp_localgp ,

    Inputs

    • cosmo::Cosmology : cosmology to be used in this computation

    • ss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). This is why it is returned also the vector of the "input" values.

    Optional arguments

    This function recall internally map_ξ_LD_multipole, so the kwargs are the same; we report them for comfortness:

    • s1 = nothing : comoving distance from the observer where the TPCF should be evaluated; if s1 = nothing, it is automatically set s1 = cosmo.s_eff from the given input cosmo::Cosmology.

    • L::Int = 0: order of the Legendre polynomial to be used

    • alg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):

      • :quad -> the integration over $\mu$ will be preformed through the Julia function quadgk

      from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.

      • :trap -> the integration over $\mu$ will be preformed through the Julia function trapz

      from the Trapz.jl Julia package, that uses the simple trapezoidal rulae.

      • :lobatto -> the integration over $\mu$ will be preformed through the Julia function gausslobatto

      from the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!

    • use_windows::Bool = false: tells if the integrand must consider the two window function $\phi$ and $\mathcal{F}$

    • N_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • N_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    • N_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing

    • pr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)

    • kwargs... : other keyword arguments that will be passed to ALL the LD TPCF effect (ξ_LD_Doppler, ξ_LD_Lensing, ...); if one of them has that keyword argument, it will use the given value, otherwise it will be unaffected.

    Returns

    A tuple containing:

    • as first element, the vector ss itself;
    • as second one, the Vector{Float64} of the sum of all the ξ multipoles;
    • as third one, a Vector{Vector{Float64}} with all the values of each ξ; they are ordered following GR_EFFECTS_LD

    See also: map_ξ_LD_multipole, sum_ξ_LD_multipole, print_map_sum_ξ_LD_multipole, Cosmology, GR_EFFECTS_LD

    source
    GaPSE.print_map_sum_ξ_LD_multipoleFunction
    print_map_sum_ξ_LD_multipole(
    +    cosmo::Cosmology, out::String, ss = nothing;
    +    s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,
    +    N_lob::Int = 100, N_trap::Int = 50,
    +    atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,
    +    enhancer::Float64=1e6, N_log::Int = 1000, 
    +    pr::Bool = true,
    +    single::Bool = true,
    +    kwargs...)

    Evaluate the multipole of order L of all the two-point cross correlation multipole between the perturbations of the Luminosity Distance (LD) and the Galaxy Number Counts (GNC) and their sum in the comoving distance s1, for all the comoving distances stored inside ss (representing the comoving distance from s1) for the input cosmo::Cosmology; finally, it saves the results inside the file out. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). If s1 = nothing, it is set s1 = cosmo.s_eff. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    This function makes a for-loop on the GaPSE.GR_EFFECTS_LD strings, calling map_ξ_LD_multipole for each of them. To each string corresponds pretty intuitively one of the 16 LD effects. They are currently, in order:

    auto_doppler , auto_lensing , auto_localgp , auto_integratedgp , lensing_doppler , doppler_lensing , doppler_localgp , localgp_doppler , doppler_integratedgp , integratedgp_doppler , lensing_localgp , localgp_lensing , lensing_integratedgp , integratedgp_lensing , localgp_integratedgp , integratedgp_localgp ,

    Inputs

    • cosmo::Cosmology : cosmology to be used in this computation

    • out::String : name of the file where the results must be stored.

    • ss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log).

    Optional arguments

    This function recall internally map_ξ_LD_multipole, so the kwargs are the same; we report them for comfortness:

    • s1 = nothing : comoving distance from the observer where the TPCF should be evaluated; if s1 = nothing, it is automatically set s1 = cosmo.s_eff from the given input cosmo::Cosmology.

    • L::Int = 0: order of the Legendre polynomial to be used

    • alg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):

      • :quad -> the integration over $\mu$ will be preformed through the Julia function quadgk

      from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.

      • :trap -> the integration over $\mu$ will be preformed through the Julia function trapz

      from the Trapz.jl Julia package, that uses the simple trapezoidal rulae.

      • :lobatto -> the integration over $\mu$ will be preformed through the Julia function gausslobatto

      from the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!

    • use_windows::Bool = false: tells if the integrand must consider the two window function $\phi$ and $\mathcal{F}$

    • N_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • N_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    • N_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing

    • pr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)

    • single::Bool = true : if true, all the CFs are printed inside the file of the sum, in a table with 18 columns (first one for ss, second for their sum an the next 16 for each effect). Otherwise, a new directory "allstandalonesCFs" is created (in the same path given in out) and they are separately saved in files there placed.

    • kwargs... : other keyword arguments that will be passed to ALL the LD TPCF effect (ξ_LD_Doppler, ξ_LD_Lensing, ...); if one of them has that keyword argument, it will use the given value, otherwise it will be unaffected.

    See also: map_ξ_LD_multipole, sum_ξ_LD_multipole, map_sum_ξ_LD_multipole, Cosmology, GR_EFFECTS_LD

    source
    diff --git a/dev/LDxGNC_Correlations/index.html b/dev/LDxGNC_Correlations/index.html deleted file mode 100644 index e9484c0d..00000000 --- a/dev/LDxGNC_Correlations/index.html +++ /dev/null @@ -1,72 +0,0 @@ - -LDxGNC TPCFs · GaPSE.jl

    LDxGNC TPCFs

    Two-Point Cross-Correlation Functions

    Missing docstring.

    Missing docstring for GaPSE.ξ_LDxGNC_Doppler_Newtonian. Check Documenter's build log for details.

    Missing docstring.

    Missing docstring for GaPSE.ξ_LDxGNC_Lensing_Newtonian. Check Documenter's build log for details.

    Missing docstring.

    Missing docstring for GaPSE.ξ_LDxGNC_LocalGP_Newtonian. Check Documenter's build log for details.

    Missing docstring.

    Missing docstring for GaPSE.ξ_LDxGNC_IntegratedGP_Newtonian. Check Documenter's build log for details.

    Missing docstring.

    Missing docstring for GaPSE.ξ_LDxGNC_Doppler_Doppler. Check Documenter's build log for details.

    Missing docstring.

    Missing docstring for GaPSE.ξ_LDxGNC_Lensing_Doppler. Check Documenter's build log for details.

    Missing docstring.

    Missing docstring for GaPSE.ξ_LDxGNC_LocalGP_Doppler. Check Documenter's build log for details.

    Missing docstring.

    Missing docstring for GaPSE.ξ_LDxGNC_IntegratedGP_Doppler. Check Documenter's build log for details.

    Missing docstring.

    Missing docstring for GaPSE.ξ_LDxGNC_Doppler_Lensing. Check Documenter's build log for details.

    Missing docstring.

    Missing docstring for GaPSE.ξ_LDxGNC_Lensing_Lensing. Check Documenter's build log for details.

    Missing docstring.

    Missing docstring for GaPSE.ξ_LDxGNC_LocalGP_Lensing. Check Documenter's build log for details.

    Missing docstring.

    Missing docstring for GaPSE.ξ_LDxGNC_IntegratedGP_Lensing. Check Documenter's build log for details.

    Missing docstring.

    Missing docstring for GaPSE.ξ_LDxGNC_Doppler_LocalGP. Check Documenter's build log for details.

    Missing docstring.

    Missing docstring for GaPSE.ξ_LDxGNC_Lensing_LocalGP. Check Documenter's build log for details.

    Missing docstring.

    Missing docstring for GaPSE.ξ_LDxGNC_LocalGP_LocalGP. Check Documenter's build log for details.

    Missing docstring.

    Missing docstring for GaPSE.ξ_LDxGNC_IntegratedGP_LocalGP. Check Documenter's build log for details.

    Missing docstring.

    Missing docstring for GaPSE.ξ_LDxGNC_Doppler_IntegrateGP. Check Documenter's build log for details.

    Missing docstring.

    Missing docstring for GaPSE.ξ_LDxGNC_Lensing_IntegrateGP. Check Documenter's build log for details.

    Missing docstring.

    Missing docstring for GaPSE.ξ_LDxGNC_LocalGP_IntegrateGP. Check Documenter's build log for details.

    Missing docstring.

    Missing docstring for GaPSE.ξ_LDxGNC_IntegratedGP_IntegrateGP. Check Documenter's build log for details.

    Two-Point Cross-Correlation Function multipoles

    GaPSE.integrand_ξ_LDxGNC_multipoleFunction
     integrand_ξ_LDxGNC_multipole(s1, s, μ, effect::Function, cosmo::Cosmology;
    -      L::Int = 0, use_windows::Bool = true, kwargs...)
    -
    - integrand_ξ_LDxGNC_multipole(s1, s, μ, effect::String, cosmo::Cosmology; kwargs...)

    Return the integrand on $\mu = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}$ of the chosen two-point cross correlation between a perturbation of the Luminosity Distance (LD) effect and a Galaxy Number Counts (GNC) effect effect term, i.e. the following function $f(s_1, s, \mu)$:

    \[ f_L(s_1, s, \mu) = \xi \left(s_1, s_2, y\right) - \, \mathcal{L}_L(\mu) \, \times - \begin{cases} - \frac{1}{\mathcal{N}}\mathcal{F}(s, \mu) \quad \mathrm{use\_windows == true} \\ - 1 \quad\quad \mathrm{use\_windows == false} - \end{cases}\]

    where:

    • $s_2 = s_2(s_1, s, \mu) = \sqrt{s_1^2 + s^2 + 2 \, s_1 \, s \, \mu}$
    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2 = \frac{\mu \, s + s_1}{s_2(s_1, s, \mu)}$
    • $\xi$ is the corresponding LDxGNC TPCF effect
    • $\mathcal{L}_L(\mu)$ is the Legendre polynomial of order $L$
    • $\mathcal{F}(s, \mu)$ is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)
    • $\mathcal{N}$ is the integrated window function norm (check the documentation of WindowFIntegrated)

    In the former method you have to pass as an input the LDxGNC effect function you want to integrate, while in the (recommended) latter one it's necessary to specify the name of the LDxGNC TPCF term among the following:

    doppler_newton , lensing_newton , localgp_newton , integratedgp_newton , doppler_doppler , lensing_doppler , localgp_doppler , integratedgp_doppler , doppler_lensing , lensing_lensing , localgp_lensing , integratedgp_lensing , doppler_localgp , lensing_localgp , localgp_localgp , integratedgp_localgp , doppler_integratedgp , lensing_integratedgp , localgp_integratedgp , integratedgp_integratedgp ,

    to which correspond the following functions, respectively:

    ξ_LDxGNC_Doppler_Newtonian , ξ_LDxGNC_Lensing_Newtonian , ξ_LDxGNC_LocalGP_Newtonian , ξ_LDxGNC_IntegratedGP_Newtonian , ξ_LDxGNC_Doppler_Doppler , ξ_LDxGNC_Lensing_Doppler , ξ_LDxGNC_LocalGP_Doppler , ξ_LDxGNC_IntegratedGP_Doppler , ξ_LDxGNC_Doppler_Lensing , ξ_LDxGNC_Lensing_Lensing , ξ_LDxGNC_LocalGP_Lensing , ξ_LDxGNC_IntegratedGP_Lensing , ξ_LDxGNC_Doppler_LocalGP , ξ_LDxGNC_Lensing_LocalGP , ξ_LDxGNC_LocalGP_LocalGP , ξ_LDxGNC_IntegratedGP_LocalGP , ξ_LDxGNC_Doppler_IntegratedGP , ξ_LDxGNC_Lensing_IntegratedGP , ξ_LDxGNC_LocalGP_IntegratedGP , ξ_LDxGNC_IntegratedGP_IntegratedGP ,

    Internally, the second method recall the first, so all the keyword arguments are in common.

    Note that these is an internal conversion of coordiate sistems from (s1, s, μ) to (s1, s2, y) thorugh the functions y and s2. The inverse relations are:

    • $s = s(s_1, s_2, y) = \sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$
    • $\mu = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}} = \frac{y \, s_2 - s_1}{s(s_1, s_2, y)}$.

    Inputs

    • s1: the comoving distance where must be evaluated the integral

    • s: the comoving distance from s1 where must be evaluated the integral

    • μ: the cosine between s1 and s where must be evaluated the integral

    • effect::Function or effect::String : name/function you want to consider, among the ones inside GaPSE.GR_EFFECTS_LDxGNC/GaPSE.VEC_ξs_LDxGNC respectively.

    • cosmo::Cosmology: cosmology to be used in this computation

    Optional arguments

    • L::Int = 0: order of the Legendre polynomial to be used

    • use_windows::Bool = false: tells if the integrand must consider the two window function $\phi$ and $\mathcal{F}$

    • kwargs... : other keyword arguments that will be passed to the selected GR TPCF effect (ξ_LDxGNC_Doppler, ξ_LDxGNC_Lensing, ...)

    See also: ξ_LDxGNC_multipole, map_ξ_LDxGNC_multipole, print_map_ξ_LDxGNC_multipole, WindowFIntegrated, ϕ, Cosmology, y, s2, GR_EFFECTS_LDxGNC, GaPSE.VEC_ξs_LDxGNC

    source
    GaPSE.ξ_LDxGNC_multipoleFunction
     ξ_LDxGNC_multipole(
    -      s1, s, effect::Function, cosmo::Cosmology;
    -      L::Int = 0, alg::Symbol = :lobatto, 
    -      use_windows::Bool = true, 
    -      N_lob::Int = 100, N_trap::Int = 200, 
    -      atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,
    -      enhancer::Float64 = 1e6, 
    -      kwargs...) ::Float64
    -
    - ξ_LDxGNC_multipole(s1, s, effect::String, cosmo::Cosmology; 
    -      kwargs...) ::Float64

    Evaluate the multipole of order L of the chosen two-point cross correlation between a perturbation of the Luminosity Distance (LD) and a Galaxy Number Counts (GNC) effect term i.e. the following function $\xi_L(s_1, s)$:

    \[ \xi_L(s_1, s) = \frac{2 L + 1}{2} \int_{-1}^{+1} \mathrm{d}\mu \; - \xi (s_1, s_2, \cos{\theta}) \, \mathcal{L}_L(\mu) \, \times - \begin{cases} - \frac{1}{\mathcal{N}}\mathcal{F}(s, \mu) \quad \mathrm{use\_windows == true} \\ - 1 \quad\quad \mathrm{use\_windows == false} - \end{cases}\]

    where:

    • $s_2 = s_2(s_1, s, \mu) = \sqrt{s_1^2 + s^2 + 2 \, s_1 \, s \, \mu}$
    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2 = \frac{\mu \, s + s_1}{s_2(s_1, s, \mu)}$
    • $\xi$ is the corresponding LDxGNC TPCF effect
    • $\mathcal{L}_L(\mu)$ is the Legendre polynomial of order $L$
    • $\mathcal{F}(s, \mu)$ is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)
    • $\mathcal{N}$ is the integrated window function norm (check the documentation of WindowFIntegrated)

    In the former method you have to pass as an input the LDxGNC effect function you want to integrate, while in the (recommended) latter one it's necessary to specify the name of the LDxGNC TPCF term among the following:

    doppler_newton , lensing_newton , localgp_newton , integratedgp_newton , doppler_doppler , lensing_doppler , localgp_doppler , integratedgp_doppler , doppler_lensing , lensing_lensing , localgp_lensing , integratedgp_lensing , doppler_localgp , lensing_localgp , localgp_localgp , integratedgp_localgp , doppler_integratedgp , lensing_integratedgp , localgp_integratedgp , integratedgp_integratedgp ,

    to which correspond the following functions:

    ξ_LDxGNC_Doppler_Newtonian , ξ_LDxGNC_Lensing_Newtonian , ξ_LDxGNC_LocalGP_Newtonian , ξ_LDxGNC_IntegratedGP_Newtonian , ξ_LDxGNC_Doppler_Doppler , ξ_LDxGNC_Lensing_Doppler , ξ_LDxGNC_LocalGP_Doppler , ξ_LDxGNC_IntegratedGP_Doppler , ξ_LDxGNC_Doppler_Lensing , ξ_LDxGNC_Lensing_Lensing , ξ_LDxGNC_LocalGP_Lensing , ξ_LDxGNC_IntegratedGP_Lensing , ξ_LDxGNC_Doppler_LocalGP , ξ_LDxGNC_Lensing_LocalGP , ξ_LDxGNC_LocalGP_LocalGP , ξ_LDxGNC_IntegratedGP_LocalGP , ξ_LDxGNC_Doppler_IntegratedGP , ξ_LDxGNC_Lensing_IntegratedGP , ξ_LDxGNC_LocalGP_IntegratedGP , ξ_LDxGNC_IntegratedGP_IntegratedGP ,

    Internally, the second method recall the first, so all the keyword arguments are in common.

    Note that these is an internal conversion of coordiate sistems from (s1, s, μ) to (s1, s2, y) thorugh the functions y and s2. The inverse relations are:

    • $s = s(s_1, s_2, y) = \sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$
    • $\mu = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}} = \frac{y \, s_2 - s_1}{s(s_1, s_2, y)}$.

    Inputs

    • s1: the comoving distance where must be evaluated the integral

    • s: the comoving distance from s1 where must be evaluated the integral

    • effect::Function or effect::String : name/function you want to consider, among the ones inside GaPSE.GR_EFFECTS_LDxGNC/GaPSE.VEC_ξs_LDxGNC respectively.

    • cosmo::Cosmology: cosmology to be used in this computation

    Optional arguments

    • L::Int = 0: order of the Legendre polynomial to be used

    • alg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):

      • :quad -> the integration over $\mu$ will be preformed through the Julia function quadgk

      from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.

      • :trap -> the integration over $\mu$ will be preformed through the Julia function trapz

      from the Trapz.jl Julia package, that uses the simple trapezoidal rulae.

      • :lobatto -> the integration over $\mu$ will be preformed through the Julia function gausslobatto

      from the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!

    • use_windows::Bool = false: tells if the integrand must consider the two window function $\phi$ and $\mathcal{F}$

    • N_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • N_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    • kwargs... : other keyword arguments that will be passed to the selected LDxGNC TPCF effect (ξ_LDxGNC_Doppler, ξ_LDxGNC_Lensing, ...)

    See also: integrand_ξ_LDxGNC_multipole, map_ξ_LDxGNC_multipole, print_map_ξ_LDxGNC_multipole WindowFIntegrated, Cosmology, y, s2, GR_EFFECTS_LDxGNC, VEC_ξs_LDxGNC

    source
    GaPSE.map_ξ_LDxGNC_multipoleFunction
     map_ξ_LDxGNC_multipole(cosmo::Cosmology,
    -      effect::Union{String,Function}, ss = nothing;
    -      s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,
    -      N_lob::Int = 100, N_trap::Int = 50,
    -      atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,
    -      enhancer::Float64=1e6, N_log::Int = 1000, 
    -      pr::Bool = true,
    -      kwargs...) ::Tuple{Vector{Float64}, Vector{Float64}}

    Evaluate the multipole of order L of the chosen two-point cross correlation between a perturbation of the Luminosity Distance (LD) and a Galaxy Number Counts (GNC) effect term for all the comoving distance values stored inside ss. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). If s1 = nothing, it is set s1 = cosmo.s_eff.

    The function evaluated is then the following $\xi_L(s_1, s)$:

    \[ \xi_L(s_1, s) = \frac{2 L + 1}{2} \int_{-1}^{+1} \mathrm{d}\mu \; - \xi (s_1, s_2, \cos{\theta}) \, \mathcal{L}_L(\mu) \, \times - \begin{cases} - \frac{1}{\mathcal{N}}\mathcal{F}(s, \mu) \quad \mathrm{use\_windows == true} \\ - 1 \quad\quad \mathrm{use\_windows == false} - \end{cases}\]

    where:

    • $s_2 = s_2(s_1, s, \mu) = \sqrt{s_1^2 + s^2 + 2 \, s_1 \, s \, \mu}$
    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2 = \frac{\mu \, s + s_1}{s_2(s_1, s, \mu)}$
    • $\xi$ is the corresponding LDxGNC TPCF effect
    • $\mathcal{L}_L(\mu)$ is the Legendre polynomial of order $L$
    • $\mathcal{F}(s, \mu)$ is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)
    • $\mathcal{N}$ is the integrated window function norm (check the documentation of WindowFIntegrated)

    Note that these is an internal conversion of coordiate sistems from (s1, s, μ) to (s1, s2, y) thorugh the functions y and s2. The inverse relations are:

    • $s = s(s_1, s_2, y) = \sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$
    • $\mu = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}} = \frac{y \, s_2 - s_1}{s(s_1, s_2, y)}$.

    Inputs

    • cosmo::Cosmology : cosmology to be used in this computation

    • effect::Union{String,Function} : the GR effect TPCF you want to consider; you may specify the name of the effect as one of the following strings (recommended):

      doppler_newton , lensing_newton , localgp_newton , integratedgp_newton , doppler_doppler , lensing_doppler , localgp_doppler , integratedgp_doppler , doppler_lensing , lensing_lensing , localgp_lensing , integratedgp_lensing , doppler_localgp , lensing_localgp , localgp_localgp , integratedgp_localgp , doppler_integratedgp , lensing_integratedgp , localgp_integratedgp , integratedgp_integratedgp ,

      or directly the name of the function among the following:

      ξ_LDxGNC_Doppler_Newtonian , ξ_LDxGNC_Lensing_Newtonian , ξ_LDxGNC_LocalGP_Newtonian , ξ_LDxGNC_IntegratedGP_Newtonian , ξ_LDxGNC_Doppler_Doppler , ξ_LDxGNC_Lensing_Doppler , ξ_LDxGNC_LocalGP_Doppler , ξ_LDxGNC_IntegratedGP_Doppler , ξ_LDxGNC_Doppler_Lensing , ξ_LDxGNC_Lensing_Lensing , ξ_LDxGNC_LocalGP_Lensing , ξ_LDxGNC_IntegratedGP_Lensing , ξ_LDxGNC_Doppler_LocalGP , ξ_LDxGNC_Lensing_LocalGP , ξ_LDxGNC_LocalGP_LocalGP , ξ_LDxGNC_IntegratedGP_LocalGP , ξ_LDxGNC_Doppler_IntegratedGP , ξ_LDxGNC_Lensing_IntegratedGP , ξ_LDxGNC_LocalGP_IntegratedGP , ξ_LDxGNC_IntegratedGP_IntegratedGP ,

    • ss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). This is why it is returned also the vector of the "input" values.

    Optional arguments

    • s1 = nothing : comoving distance from the observer where the TPCF should be evaluated; if s1 = nothing, it is automatically set s1 = cosmo.s_eff from the given input cosmo::Cosmology.

    • L::Int = 0: order of the Legendre polynomial to be used

    • alg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):

      • :quad -> the integration over $\mu$ will be preformed through the Julia function quadgk

      from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.

      • :trap -> the integration over $\mu$ will be preformed through the Julia function trapz

      from the Trapz.jl Julia package, that uses the simple trapezoidal rulae.

      • :lobatto -> the integration over $\mu$ will be preformed through the Julia function gausslobatto

      from the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!

    • use_windows::Bool = false: tells if the integrand must consider the two window function $\phi$ and $\mathcal{F}$

    • N_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • N_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    • N_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing

    • pr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)

    • kwargs... : other keyword arguments that will be passed to the selected LDxGNC TPCF effect (ξ_LDxGNC_Doppler, ξ_LDxGNC_Lensing, ...)

    Returns

    A Tuple{Vector{Float64}, Vector{Float64}}, which has as first element the ss vector and as second one the corresponding ξ value evaluated.

    See also: integrand_ξ_LDxGNC_multipole, ξ_LDxGNC_multipole, print_map_ξ_LDxGNC_multipole, WindowFIntegrated, Cosmology, y, s2, GR_EFFECTS_LDxGNC, GaPSE.VEC_ξs_LDxGNC

    source
    GaPSE.print_map_ξ_LDxGNC_multipoleFunction
     print_map_ξ_LDxGNC_multipole(
    -      cosmo::Cosmology, out::String,
    -      effect::Union{String,Function},
    -      ss = nothing;
    -      s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,
    -      N_lob::Int = 100, N_trap::Int = 50,
    -      atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,
    -      enhancer::Float64=1e6, N_log::Int = 1000, 
    -      pr::Bool = true,
    -      kwargs...)

    Evaluate the multipole of order L of the of the chosen two-point cross correlation between a perturbation of the Luminosity Distance (LD) and a Galaxy Number Counts (GNC) effect term for all the comoving distance values stored inside ss, and print the results (with all the options used) in a file named out. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). If s1 = nothing, it is set s1 = cosmo.s_eff.

    The function evaluated is then the following $\xi_L(s_1, s)$:

    \[ \xi_L(s_1, s) = \frac{2 L + 1}{2} \int_{-1}^{+1} \mathrm{d}\mu \; - \xi (s_1, s_2, \cos{\theta}) \, \mathcal{L}_L(\mu) \, \times - \begin{cases} - \frac{1}{\mathcal{N}}\mathcal{F}(s, \mu) \quad \mathrm{use\_windows == true} \\ - 1 \quad\quad \mathrm{use\_windows == false} - \end{cases}\]

    where:

    • $s_2 = s_2(s_1, s, \mu) = \sqrt{s_1^2 + s^2 + 2 \, s_1 \, s \, \mu}$
    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2 = \frac{\mu \, s + s_1}{s_2(s_1, s, \mu)}$
    • $\xi$ is the corresponding LDxGNC TPCF effect
    • $\mathcal{L}_L(\mu)$ is the Legendre polynomial of order $L$
    • $\mathcal{F}(s, \mu)$ is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)
    • $\mathcal{N}$ is the integrated window function norm (check the documentation of WindowFIntegrated)

    Note that these is an internal conversion of coordiate sistems from (s1, s, μ) to (s1, s2, y) thorugh the functions y and s2. The inverse relations are:

    • $s = s(s_1, s_2, y) = \sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$
    • $\mu = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}} = \frac{y \, s_2 - s_1}{s(s_1, s_2, y)}$.

    Inputs

    • cosmo::Cosmology : cosmology to be used in this computation

    • effect::Union{String,Function} : the GR effect TPCF you want to consider; you may specify the name of the effect as one of the following strings (recommended):

      doppler_newton , lensing_newton , localgp_newton , integratedgp_newton , doppler_doppler , lensing_doppler , localgp_doppler , integratedgp_doppler , doppler_lensing , lensing_lensing , localgp_lensing , integratedgp_lensing , doppler_localgp , lensing_localgp , localgp_localgp , integratedgp_localgp , doppler_integratedgp , lensing_integratedgp , localgp_integratedgp , integratedgp_integratedgp ,

      or directly the name of the function among the following:

      ξ_LDxGNC_Doppler_Newtonian , ξ_LDxGNC_Lensing_Newtonian , ξ_LDxGNC_LocalGP_Newtonian , ξ_LDxGNC_IntegratedGP_Newtonian , ξ_LDxGNC_Doppler_Doppler , ξ_LDxGNC_Lensing_Doppler , ξ_LDxGNC_LocalGP_Doppler , ξ_LDxGNC_IntegratedGP_Doppler , ξ_LDxGNC_Doppler_Lensing , ξ_LDxGNC_Lensing_Lensing , ξ_LDxGNC_LocalGP_Lensing , ξ_LDxGNC_IntegratedGP_Lensing , ξ_LDxGNC_Doppler_LocalGP , ξ_LDxGNC_Lensing_LocalGP , ξ_LDxGNC_LocalGP_LocalGP , ξ_LDxGNC_IntegratedGP_LocalGP , ξ_LDxGNC_Doppler_IntegratedGP , ξ_LDxGNC_Lensing_IntegratedGP , ξ_LDxGNC_LocalGP_IntegratedGP , ξ_LDxGNC_IntegratedGP_IntegratedGP ,

    • out::String : name of the file where the results must be stored.

    • ss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log).

    Optional arguments

    This function recall internally map_ξ_LDxGNC_multipole, so the kwargs are the same; we report them for comfortness:

    • s1 = nothing : comoving distance from the observer where the TPCF should be evaluated; if s1 = nothing, it is automatically set s1 = cosmo.s_eff from the given input cosmo::Cosmology.

    • L::Int = 0: order of the Legendre polynomial to be used

    • alg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):

      • :quad -> the integration over $\mu$ will be preformed through the Julia function quadgk

      from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.

      • :trap -> the integration over $\mu$ will be preformed through the Julia function trapz

      from the Trapz.jl Julia package, that uses the simple trapezoidal rulae.

      • :lobatto -> the integration over $\mu$ will be preformed through the Julia function gausslobatto

      from the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!

    • use_windows::Bool = false: tells if the integrand must consider the two window function $\phi$ and $\mathcal{F}$

    • N_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • N_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    • N_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing

    • pr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)

    • kwargs... : other keyword arguments that will be passed to the selected LDxGNC TPCF effect (ξ_LDxGNC_Doppler, ξ_LDxGNC_Lensing, ...)

    See also: integrand_ξ_LDxGNC_multipole, ξ_LDxGNC_multipole, print_map_ξ_LDxGNC_multipole, WindowFIntegrated, Cosmology, y, s2, GR_EFFECTS_LDxGNC, GaPSE.VEC_ξs_LDxGNC

    source

    Two-Point Cross-Correlation Function Sum multipoles

    GaPSE.sum_ξ_LDxGNC_multipoleFunction
     sum_ξ_LDxGNC_multipole(s1, s, cosmo::Cosmology;
    -      s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,
    -      N_lob::Int = 100, N_trap::Int = 50,
    -      atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,
    -      enhancer::Float64=1e6, N_log::Int = 1000, 
    -      pr::Bool = true,
    -      kwargs...) ::Tuple{Float64, Vector{Float64}}

    Evaluate the multipole of order L of all the two-point cross correlation multipole between the perturbations of the Luminosity Distance (LD) and the Galaxy Number Counts (GNC) and their sum in the comoving distance s1 and a comoving distance s from it for the input cosmo::Cosmology. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    This function makes a for-loop on the GaPSE.GR_EFFECTS_LDxGNC strings, calling ξ_LDxGNC_multipole for each of them. To each string corresponds pretty intuitively one of the 20 LDxGNC effects. They are currently, in order:

    doppler_newton , lensing_newton , localgp_newton , integratedgp_newton , doppler_doppler , lensing_doppler , localgp_doppler , integratedgp_doppler , doppler_lensing , lensing_lensing , localgp_lensing , integratedgp_lensing , doppler_localgp , lensing_localgp , localgp_localgp , integratedgp_localgp , doppler_integratedgp , lensing_integratedgp , localgp_integratedgp , integratedgp_integratedgp ,

    Inputs

    • s1: the comoving distance where must be evaluated the integral

    • s: the comoving distance from s1 where must be evaluated the integral

    • cosmo::Cosmology: cosmology to be used in this computation

    Optional arguments

    This function recall internally ξ_LDxGNC_multipole, so the kwargs are the same; we report them for comfortness:

    • L::Int = 0: order of the Legendre polynomial to be used

    • alg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):

      • :quad -> the integration over $\mu$ will be preformed through the Julia function quadgk

      from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.

      • :trap -> the integration over $\mu$ will be preformed through the Julia function trapz

      from the Trapz.jl Julia package, that uses the simple trapezoidal rulae.

      • :lobatto -> the integration over $\mu$ will be preformed through the Julia function gausslobatto

      from the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!

    • use_windows::Bool = false: tells if the integrand must consider the two window function $\phi$ and $\mathcal{F}$

    • N_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • N_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    • kwargs... : other keyword arguments that will be passed to ALL the LDxGNC TPCF effect (ξ_LDxGNC_Doppler, ξ_LDxGNC_Lensing, ...); if one of them has that keyword argument, it will use the given value, otherwise it will be unaffected.

    Returns

    A tuple containing:

    • the sum of all the ξ multipoles as first element
    • a Vector{Float64} with all the values of each ξ; they are ordered following GR_EFFECTS_LDxGNC

    See also: integrand_ξ_LDxGNC_multipole, ξ_LDxGNC_multipole, map_sum_ξ_LDxGNC_multipole, print_map_sum_ξ_LDxGNC_multipole, Cosmology, GR_EFFECTS_LDxGNC

    source
    GaPSE.map_sum_ξ_LDxGNC_multipoleFunction
     map_sum_ξ_LDxGNC_multipole(
    -      effect::Union{String,Function}, ss = nothing;
    -      s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,
    -      N_lob::Int = 100, N_trap::Int = 50,
    -      atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,
    -      enhancer::Float64=1e6, N_log::Int = 1000, 
    -      pr::Bool = true,
    -      kwargs...) ::Tuple{Vector{Float64}, Vector{Float64}, Vector{Vector{Float64}}}

    Evaluate the multipole of order L of all the two-point cross correlation multipole between the perturbations of the Luminosity Distance (LD) and the Galaxy Number Counts (GNC) and their sum in the comoving distance s1, for all the comoving distances stored inside ss (representing the comoving distance from s1) for the input cosmo::Cosmology. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). If s1 = nothing, it is set s1 = cosmo.s_eff. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    This function makes a for-loop on the GaPSE.GR_EFFECTS_LDxGNC strings, calling map_ξ_LDxGNC_multipole for each of them. To each string corresponds pretty intuitively one of the 20 LDxGNC effects. They are currently, in order:

    doppler_newton , lensing_newton , localgp_newton , integratedgp_newton , doppler_doppler , lensing_doppler , localgp_doppler , integratedgp_doppler , doppler_lensing , lensing_lensing , localgp_lensing , integratedgp_lensing , doppler_localgp , lensing_localgp , localgp_localgp , integratedgp_localgp , doppler_integratedgp , lensing_integratedgp , localgp_integratedgp , integratedgp_integratedgp ,

    Inputs

    • cosmo::Cosmology : cosmology to be used in this computation

    • ss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). This is why it is returned also the vector of the "input" values.

    Optional arguments

    This function recall internally map_ξ_LDxGNC_multipole, so the kwargs are the same; we report them for comfortness:

    • s1 = nothing : comoving distance from the observer where the TPCF should be evaluated; if s1 = nothing, it is automatically set s1 = cosmo.s_eff from the given input cosmo::Cosmology.

    • L::Int = 0: order of the Legendre polynomial to be used

    • alg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):

      • :quad -> the integration over $\mu$ will be preformed through the Julia function quadgk

      from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.

      • :trap -> the integration over $\mu$ will be preformed through the Julia function trapz

      from the Trapz.jl Julia package, that uses the simple trapezoidal rulae.

      • :lobatto -> the integration over $\mu$ will be preformed through the Julia function gausslobatto

      from the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!

    • use_windows::Bool = false: tells if the integrand must consider the two window function $\phi$ and $\mathcal{F}$

    • N_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • N_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    • N_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing

    • pr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)

    • kwargs... : other keyword arguments that will be passed to ALL the LDxGNC TPCF effect (ξ_LDxGNC_Doppler, ξ_LDxGNC_Lensing, ...); if one of them has that keyword argument, it will use the given value, otherwise it will be unaffected.

    Returns

    A tuple containing:

    • as first element, the vector ss itself;
    • as second one, the Vector{Float64} of the sum of all the ξ multipoles;
    • as third one, a Vector{Vector{Float64}} with all the values of each ξ; they are ordered following GR_EFFECTS_LDxGNC

    See also: map_ξ_LDxGNC_multipole, sum_ξ_LDxGNC_multipole, print_map_sum_ξ_LDxGNC_multipole, Cosmology, GR_EFFECTS_LDxGNC

    source
    GaPSE.print_map_sum_ξ_LDxGNC_multipoleFunction
     print_map_sum_ξ_LDxGNC_multipole(
    -      cosmo::Cosmology, out::String, ss = nothing;
    -      s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,
    -      N_lob::Int = 100, N_trap::Int = 50,
    -      atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,
    -      enhancer::Float64=1e6, N_log::Int = 1000, 
    -      pr::Bool = true,
    -      single::Bool = true,
    -      kwargs...)

    Evaluate the multipole of order L of all the two-point cross correlation multipole between the perturbations of the Luminosity Distance (LD) and the Galaxy Number Counts (GNC) and their sum in the comoving distance s1, for all the comoving distances stored inside ss (representing the comoving distance from s1) for the input cosmo::Cosmology; finally, it saves the results inside the file out. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). If s1 = nothing, it is set s1 = cosmo.s_eff. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    This function makes a for-loop on the GaPSE.GR_EFFECTS_LDxGNC strings, calling map_ξ_LDxGNC_multipole for each of them. To each string corresponds pretty intuitively one of the 20 LDxGNC effects. They are currently, in order:

    doppler_newton , lensing_newton , localgp_newton , integratedgp_newton , doppler_doppler , lensing_doppler , localgp_doppler , integratedgp_doppler , doppler_lensing , lensing_lensing , localgp_lensing , integratedgp_lensing , doppler_localgp , lensing_localgp , localgp_localgp , integratedgp_localgp , doppler_integratedgp , lensing_integratedgp , localgp_integratedgp , integratedgp_integratedgp ,

    Inputs

    • cosmo::Cosmology : cosmology to be used in this computation

    • out::String : name of the file where the results must be stored.

    • ss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log).

    Optional arguments

    This function recall internally map_ξ_LDxGNC_multipole, so the kwargs are the same; we report them for comfortness:

    • s1 = nothing : comoving distance from the observer where the TPCF should be evaluated; if s1 = nothing, it is automatically set s1 = cosmo.s_eff from the given input cosmo::Cosmology.

    • L::Int = 0: order of the Legendre polynomial to be used

    • alg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):

      • :quad -> the integration over $\mu$ will be preformed through the Julia function quadgk

      from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.

      • :trap -> the integration over $\mu$ will be preformed through the Julia function trapz

      from the Trapz.jl Julia package, that uses the simple trapezoidal rulae.

      • :lobatto -> the integration over $\mu$ will be preformed through the Julia function gausslobatto

      from the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!

    • use_windows::Bool = false: tells if the integrand must consider the two window function $\phi$ and $\mathcal{F}$

    • N_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • N_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    • N_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing

    • pr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)

    • single::Bool = true : if true, all the CFs are printed inside the file of the sum, in a table with 18 columns (first one for ss, second for their sum an the next 20 for each effect). Otherwise, a new directory "allstandalonesCFs" is created (in the same path given in out) and they are separately saved in files there placed.

    • kwargs... : other keyword arguments that will be passed to ALL the LDxGNC TPCF effect (ξ_LDxGNC_Doppler, ξ_LDxGNC_Lensing, ...); if one of them has that keyword argument, it will use the given value, otherwise it will be unaffected.

    See also: map_ξ_LDxGNC_multipole, sum_ξ_LDxGNC_multipole, map_sum_ξ_LDxGNC_multipole, Cosmology, GR_EFFECTS_LDxGNC

    source
    diff --git a/dev/LDxGNC_Correlations_1/index.html b/dev/LDxGNC_Correlations_1/index.html new file mode 100644 index 00000000..3d1d5703 --- /dev/null +++ b/dev/LDxGNC_Correlations_1/index.html @@ -0,0 +1,62 @@ + +LDxGNC TPCFs · GaPSE.jl

    LDxGNC TPCFs

    Two-Point Cross-Correlation Functions

    GaPSE.ξ_LDxGNC_Doppler_NewtonianFunction
    ξ_LDxGNC_Doppler_Newtonian(s1, s2, y, cosmo::Cosmology;         
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, 
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,
    +    obs::Union{Bool, Symbol} = :noobsvel ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Doppler effect arising from the Luminosity Distance (LD) perturbations and the Newtonian one arising from the Galaxy Number Counts (GNC).

    It's computed through the symmetric function ξ_GNCxLD_Newtonian_Doppler; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    Inputs

    • s1 and s2: comoving distances where the TPCF has to be calculated;

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • kwargs... : Keyword arguments to be passed to the symmetric TPCF

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_LDxGNC_multipole, print_map_ξ_LDxGNC_multipole, ξ_GNCxLD_Newtonian_Doppler

    source
    GaPSE.ξ_LDxGNC_Lensing_NewtonianFunction
    ξ_LDxGNC_Lensing_Newtonian(s1, s2, y, cosmo::Cosmology;         
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, 
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,
    +    obs::Union{Bool, Symbol} = :noobsvel ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Lensing effect arising from the Luminosity Distance (LD) perturbations and the Newtonian one arising from the Galaxy Number Counts (GNC).

    It's computed through the symmetric function ξ_GNCxLD_Newtonian_Lensing; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    Inputs

    • s1 and s2: comoving distances where the TPCF has to be calculated;

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • kwargs... : Keyword arguments to be passed to the symmetric TPCF

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_LDxGNC_multipole, print_map_ξ_LDxGNC_multipole, ξ_GNCxLD_Newtonian_Lensing

    source
    GaPSE.ξ_LDxGNC_LocalGP_NewtonianFunction
    ξ_LDxGNC_LocalGP_Newtonian(s1, s2, y, cosmo::Cosmology;         
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, 
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,
    +    obs::Union{Bool, Symbol} = :noobsvel ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Local Gravitational Potential (GP) effect arising from the Luminosity Distance (LD) perturbations and the Newtonian one arising from the Galaxy Number Counts (GNC).

    It's computed through the symmetric function ξ_GNCxLD_Newtonian_LocalGP; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    Inputs

    • s1 and s2: comoving distances where the TPCF has to be calculated;

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • kwargs... : Keyword arguments to be passed to the symmetric TPCF

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_LDxGNC_multipole, print_map_ξ_LDxGNC_multipole, ξ_GNCxLD_Newtonian_LocalGP

    source
    GaPSE.ξ_LDxGNC_IntegratedGP_NewtonianFunction
    ξ_LDxGNC_IntegratedGP_Newtonian(s1, s2, y, cosmo::Cosmology;         
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, 
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,
    +    obs::Union{Bool, Symbol} = :noobsvel ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Integrated Gravitational Potential (GP) effect arising from the Luminosity Distance (LD) perturbations and the Newtonian one arising from the Galaxy Number Counts (GNC).

    It's computed through the symmetric function ξ_GNCxLD_Newtonian_IntegratedGP; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    Inputs

    • s1 and s2: comoving distances where the TPCF has to be calculated;

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • kwargs... : Keyword arguments to be passed to the symmetric TPCF

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_LDxGNC_multipole, print_map_ξ_LDxGNC_multipole, ξ_GNCxLD_Newtonian_IntegratedGP

    source
    GaPSE.ξ_LDxGNC_Doppler_DopplerFunction
    ξ_LDxGNC_Doppler_Doppler(s1, s2, y, cosmo::Cosmology;         
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, 
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,
    +    obs::Union{Bool, Symbol} = :noobsvel ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Doppler effect arising from the Luminosity Distance (LD) perturbations and the Doppler one arising from the Galaxy Number Counts (GNC).

    It's computed through the symmetric function ξ_GNCxLD_Doppler_Doppler; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    Inputs

    • s1 and s2: comoving distances where the TPCF has to be calculated;

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • kwargs... : Keyword arguments to be passed to the symmetric TPCF

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_LDxGNC_multipole, print_map_ξ_LDxGNC_multipole, ξ_GNCxLD_Doppler_Doppler

    source
    GaPSE.ξ_LDxGNC_Lensing_DopplerFunction
    ξ_LDxGNC_Lensing_Doppler(s1, s2, y, cosmo::Cosmology;         
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, 
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,
    +    obs::Union{Bool, Symbol} = :noobsvel ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Lensing effect arising from the Luminosity Distance (LD) perturbations and the Doppler one arising from the Galaxy Number Counts (GNC).

    It's computed through the symmetric function ξ_GNCxLD_Doppler_Lensing; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    Inputs

    • s1 and s2: comoving distances where the TPCF has to be calculated;

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • kwargs... : Keyword arguments to be passed to the symmetric TPCF

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_LDxGNC_multipole, print_map_ξ_LDxGNC_multipole, ξ_GNCxLD_Doppler_Lensing

    source
    GaPSE.ξ_LDxGNC_LocalGP_DopplerFunction
    ξ_LDxGNC_LocalGP_Doppler(s1, s2, y, cosmo::Cosmology;         
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, 
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,
    +    obs::Union{Bool, Symbol} = :noobsvel ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Local Gravitational Potential (GP) effect arising from the Luminosity Distance (LD) perturbations and the Doppler one arising from the Galaxy Number Counts (GNC).

    It's computed through the symmetric function ξ_GNCxLD_Doppler_LocalGP; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    Inputs

    • s1 and s2: comoving distances where the TPCF has to be calculated;

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • kwargs... : Keyword arguments to be passed to the symmetric TPCF

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_LDxGNC_multipole, print_map_ξ_LDxGNC_multipole, ξ_GNCxLD_Doppler_LocalGP

    source
    GaPSE.ξ_LDxGNC_IntegratedGP_DopplerFunction
    ξ_LDxGNC_IntegratedGP_Doppler(s1, s2, y, cosmo::Cosmology;         
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, 
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,
    +    obs::Union{Bool, Symbol} = :noobsvel ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Integrated Gravitational Potential (GP) effect arising from the Luminosity Distance (LD) perturbations and the Doppler one arising from the Galaxy Number Counts (GNC).

    It's computed through the symmetric function ξ_GNCxLD_Doppler_IntegratedGP; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    Inputs

    • s1 and s2: comoving distances where the TPCF has to be calculated;

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • kwargs... : Keyword arguments to be passed to the symmetric TPCF

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_LDxGNC_multipole, print_map_ξ_LDxGNC_multipole, ξ_GNCxLD_Doppler_IntegratedGP

    source
    GaPSE.ξ_LDxGNC_Doppler_LensingFunction
    ξ_LDxGNC_Doppler_Lensing(s1, s2, y, cosmo::Cosmology;         
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, 
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,
    +    obs::Union{Bool, Symbol} = :noobsvel ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Doppler effect arising from the Luminosity Distance (LD) perturbations and the Lensing one arising from the Galaxy Number Counts (GNC).

    It's computed through the symmetric function ξ_GNCxLD_Lensing_Doppler; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    Inputs

    • s1 and s2: comoving distances where the TPCF has to be calculated;

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • kwargs... : Keyword arguments to be passed to the symmetric TPCF

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_LDxGNC_multipole, print_map_ξ_LDxGNC_multipole, ξ_GNCxLD_Lensing_Doppler

    source
    GaPSE.ξ_LDxGNC_Lensing_LensingFunction
    ξ_LDxGNC_Lensing_Lensing(s1, s2, y, cosmo::Cosmology;         
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, 
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,
    +    obs::Union{Bool, Symbol} = :noobsvel ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Lensing effect arising from the Luminosity Distance (LD) perturbations and the Lensing one arising from the Galaxy Number Counts (GNC).

    It's computed through the symmetric function ξ_GNCxLD_Lensing_Lensing; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    Inputs

    • s1 and s2: comoving distances where the TPCF has to be calculated;

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • kwargs... : Keyword arguments to be passed to the symmetric TPCF

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_LDxGNC_multipole, print_map_ξ_LDxGNC_multipole, ξ_GNCxLD_Lensing_Lensing

    source
    GaPSE.ξ_LDxGNC_LocalGP_LensingFunction
    ξ_LDxGNC_LocalGP_Lensing(s1, s2, y, cosmo::Cosmology;         
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, 
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,
    +    obs::Union{Bool, Symbol} = :noobsvel ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Local Gravitational Potential (GP) effect arising from the Luminosity Distance (LD) perturbations and the Lensing one arising from the Galaxy Number Counts (GNC).

    It's computed through the symmetric function ξ_GNCxLD_Lensing_LocalGP; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    Inputs

    • s1 and s2: comoving distances where the TPCF has to be calculated;

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • kwargs... : Keyword arguments to be passed to the symmetric TPCF

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_LDxGNC_multipole, print_map_ξ_LDxGNC_multipole, ξ_GNCxLD_Lensing_LocalGP

    source
    GaPSE.ξ_LDxGNC_IntegratedGP_LensingFunction
    ξ_LDxGNC_IntegratedGP_Lensing(s1, s2, y, cosmo::Cosmology;         
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, 
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,
    +    obs::Union{Bool, Symbol} = :noobsvel ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Integrated Gravitational Potential (GP) effect arising from the Luminosity Distance (LD) perturbations and the Lensing one arising from the Galaxy Number Counts (GNC).

    It's computed through the symmetric function ξ_GNCxLD_Lensing_IntegratedGP; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    Inputs

    • s1 and s2: comoving distances where the TPCF has to be calculated;

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • kwargs... : Keyword arguments to be passed to the symmetric TPCF

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_LDxGNC_multipole, print_map_ξ_LDxGNC_multipole, ξ_GNCxLD_Lensing_IntegratedGP

    source
    GaPSE.ξ_LDxGNC_Doppler_LocalGPFunction
    ξ_LDxGNC_Doppler_LocalGP(s1, s2, y, cosmo::Cosmology;         
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, 
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,
    +    obs::Union{Bool, Symbol} = :noobsvel ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Doppler effect arising from the Luminosity Distance (LD) perturbations and Local Gravitational Potential (GP) one arising from the Galaxy Number Counts (GNC).

    It's computed through the symmetric function ξ_GNCxLD_LocalGP_Doppler; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    Inputs

    • s1 and s2: comoving distances where the TPCF has to be calculated;

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • kwargs... : Keyword arguments to be passed to the symmetric TPCF

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_LDxGNC_multipole, print_map_ξ_LDxGNC_multipole, ξ_GNCxLD_LocalGP_Doppler

    source
    GaPSE.ξ_LDxGNC_Lensing_LocalGPFunction
    ξ_LDxGNC_Lensing_LocalGP(s1, s2, y, cosmo::Cosmology;         
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, 
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,
    +    obs::Union{Bool, Symbol} = :noobsvel ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Lensing effect arising from the Luminosity Distance (LD) perturbations and Local Gravitational Potential (GP) one arising from the Galaxy Number Counts (GNC).

    It's computed through the symmetric function ξ_GNCxLD_LocalGP_Lensing; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    Inputs

    • s1 and s2: comoving distances where the TPCF has to be calculated;

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • kwargs... : Keyword arguments to be passed to the symmetric TPCF

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_LDxGNC_multipole, print_map_ξ_LDxGNC_multipole, ξ_GNCxLD_LocalGP_Lensing

    source
    GaPSE.ξ_LDxGNC_LocalGP_LocalGPFunction
    ξ_LDxGNC_LocalGP_LocalGP(s1, s2, y, cosmo::Cosmology;         
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, 
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,
    +    obs::Union{Bool, Symbol} = :noobsvel ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Local Gravitational Potential (GP) effect arising from the Luminosity Distance (LD) perturbations and the Local GP one arising from the Galaxy Number Counts (GNC).

    It's computed through the symmetric function ξ_GNCxLD_LocalGP_LocalGP; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    Inputs

    • s1 and s2: comoving distances where the TPCF has to be calculated;

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • kwargs... : Keyword arguments to be passed to the symmetric TPCF

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_LDxGNC_multipole, print_map_ξ_LDxGNC_multipole, ξ_GNCxLD_LocalGP_LocalGP

    source
    GaPSE.ξ_LDxGNC_IntegratedGP_LocalGPFunction
    ξ_LDxGNC_IntegratedGP_LocalGP(s1, s2, y, cosmo::Cosmology;         
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, 
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,
    +    obs::Union{Bool, Symbol} = :noobsvel ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Integrated Gravitational Potential (GP) effect arising from the Luminosity Distance (LD) perturbations and the Local GP one arising from the Galaxy Number Counts (GNC).

    It's computed through the symmetric function ξ_GNCxLD_LocalGP_IntegratedGP; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    Inputs

    • s1 and s2: comoving distances where the TPCF has to be calculated;

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • kwargs... : Keyword arguments to be passed to the symmetric TPCF

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_LDxGNC_multipole, print_map_ξ_LDxGNC_multipole, ξ_GNCxLD_LocalGP_IntegratedGP

    source
    GaPSE.ξ_LDxGNC_Doppler_IntegratedGPFunction
    ξ_LDxGNC_Doppler_IntegratedGP(s1, s2, y, cosmo::Cosmology;         
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, 
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,
    +    obs::Union{Bool, Symbol} = :noobsvel ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Doppler effect arising from the Luminosity Distance (LD) perturbations and Integrated Gravitational Potential (GP) one arising from the Galaxy Number Counts (GNC).

    It's computed through the symmetric function ξ_GNCxLD_IntegratedGP_Doppler; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    Inputs

    • s1 and s2: comoving distances where the TPCF has to be calculated;

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • kwargs... : Keyword arguments to be passed to the symmetric TPCF

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_LDxGNC_multipole, print_map_ξ_LDxGNC_multipole, ξ_GNCxLD_IntegratedGP_Doppler

    source
    GaPSE.ξ_LDxGNC_Lensing_IntegratedGPFunction
    ξ_LDxGNC_Lensing_IntegratedGP(s1, s2, y, cosmo::Cosmology;         
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, 
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,
    +    obs::Union{Bool, Symbol} = :noobsvel ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Lensing effect arising from the Luminosity Distance (LD) perturbations and Integrated Gravitational Potential (GP) one arising from the Galaxy Number Counts (GNC).

    It's computed through the symmetric function ξ_GNCxLD_IntegratedGP_Lensing; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    Inputs

    • s1 and s2: comoving distances where the TPCF has to be calculated;

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • kwargs... : Keyword arguments to be passed to the symmetric TPCF

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_LDxGNC_multipole, print_map_ξ_LDxGNC_multipole, ξ_GNCxLD_IntegratedGP_Lensing

    source
    GaPSE.ξ_LDxGNC_LocalGP_IntegratedGPFunction
    ξ_LDxGNC_LocalGP_IntegratedGP(s1, s2, y, cosmo::Cosmology;         
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, 
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,
    +    obs::Union{Bool, Symbol} = :noobsvel ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Local Gravitational Potential (GP) effect arising from the Luminosity Distance (LD) perturbations and the Integrated GP one arising from the Galaxy Number Counts (GNC).

    It's computed through the symmetric function ξ_GNCxLD_IntegratedGP_LocalGP; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    Inputs

    • s1 and s2: comoving distances where the TPCF has to be calculated;

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • kwargs... : Keyword arguments to be passed to the symmetric TPCF

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_LDxGNC_multipole, print_map_ξ_LDxGNC_multipole, ξ_GNCxLD_IntegratedGP_LocalGP

    source
    GaPSE.ξ_LDxGNC_IntegratedGP_IntegratedGPFunction
    ξ_LDxGNC_IntegratedGP_IntegratedGP(s1, s2, y, cosmo::Cosmology;         
    +    b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, 
    +    𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,
    +    obs::Union{Bool, Symbol} = :noobsvel ) ::Float64

    Return the Two-Point Correlation Function (TPCF) given by the cross correlation between the Integrated Gravitational Potential (GP) effect arising from the Luminosity Distance (LD) perturbations and the Integrated GP one arising from the Galaxy Number Counts (GNC).

    It's computed through the symmetric function ξ_GNCxLD_IntegratedGP_IntegratedGP; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    Inputs

    • s1 and s2: comoving distances where the TPCF has to be calculated;

    • y: the cosine of the angle between the two points P1 and P2 wrt the observer

    • cosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters $b$, ...

    Keyword Arguments

    • kwargs... : Keyword arguments to be passed to the symmetric TPCF

    See also: Point, Cosmology, ξ_GNC_multipole, map_ξ_LDxGNC_multipole, print_map_ξ_LDxGNC_multipole, ξ_GNCxLD_IntegratedGP_IntegratedGP

    source
    diff --git a/dev/LDxGNC_Correlations_2/index.html b/dev/LDxGNC_Correlations_2/index.html new file mode 100644 index 00000000..7d9267f5 --- /dev/null +++ b/dev/LDxGNC_Correlations_2/index.html @@ -0,0 +1,72 @@ + +LDxGNC TPCFs · GaPSE.jl

    LDxGNC TPCFs

    Two-Point Cross-Correlation Function multipoles

    GaPSE.integrand_ξ_LDxGNC_multipoleFunction
    integrand_ξ_LDxGNC_multipole(s1, s, μ, effect::Function, cosmo::Cosmology;
    +    L::Int = 0, use_windows::Bool = true, kwargs...)
    +
    +integrand_ξ_LDxGNC_multipole(s1, s, μ, effect::String, cosmo::Cosmology; kwargs...)

    Return the integrand on $\mu = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}$ of the chosen two-point cross correlation between a perturbation of the Luminosity Distance (LD) effect and a Galaxy Number Counts (GNC) effect effect term, i.e. the following function $f(s_1, s, \mu)$:

    \[ f_L(s_1, s, \mu) = \xi \left(s_1, s_2, y\right) + \, \mathcal{L}_L(\mu) \, \times + \begin{cases} + \frac{1}{\mathcal{N}}\mathcal{F}(s, \mu) \quad \mathrm{use\_windows == true} \\ + 1 \quad\quad \mathrm{use\_windows == false} + \end{cases}\]

    where:

    • $s_2 = s_2(s_1, s, \mu) = \sqrt{s_1^2 + s^2 + 2 \, s_1 \, s \, \mu}$
    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2 = \frac{\mu \, s + s_1}{s_2(s_1, s, \mu)}$
    • $\xi$ is the corresponding LDxGNC TPCF effect
    • $\mathcal{L}_L(\mu)$ is the Legendre polynomial of order $L$
    • $\mathcal{F}(s, \mu)$ is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)
    • $\mathcal{N}$ is the integrated window function norm (check the documentation of WindowFIntegrated)

    In the former method you have to pass as an input the LDxGNC effect function you want to integrate, while in the (recommended) latter one it's necessary to specify the name of the LDxGNC TPCF term among the following:

    doppler_newton , lensing_newton , localgp_newton , integratedgp_newton , doppler_doppler , lensing_doppler , localgp_doppler , integratedgp_doppler , doppler_lensing , lensing_lensing , localgp_lensing , integratedgp_lensing , doppler_localgp , lensing_localgp , localgp_localgp , integratedgp_localgp , doppler_integratedgp , lensing_integratedgp , localgp_integratedgp , integratedgp_integratedgp ,

    to which correspond the following functions, respectively:

    ξ_LDxGNC_Doppler_Newtonian , ξ_LDxGNC_Lensing_Newtonian , ξ_LDxGNC_LocalGP_Newtonian , ξ_LDxGNC_IntegratedGP_Newtonian , ξ_LDxGNC_Doppler_Doppler , ξ_LDxGNC_Lensing_Doppler , ξ_LDxGNC_LocalGP_Doppler , ξ_LDxGNC_IntegratedGP_Doppler , ξ_LDxGNC_Doppler_Lensing , ξ_LDxGNC_Lensing_Lensing , ξ_LDxGNC_LocalGP_Lensing , ξ_LDxGNC_IntegratedGP_Lensing , ξ_LDxGNC_Doppler_LocalGP , ξ_LDxGNC_Lensing_LocalGP , ξ_LDxGNC_LocalGP_LocalGP , ξ_LDxGNC_IntegratedGP_LocalGP , ξ_LDxGNC_Doppler_IntegratedGP , ξ_LDxGNC_Lensing_IntegratedGP , ξ_LDxGNC_LocalGP_IntegratedGP , ξ_LDxGNC_IntegratedGP_IntegratedGP ,

    Internally, the second method recall the first, so all the keyword arguments are in common.

    Note that these is an internal conversion of coordiate sistems from (s1, s, μ) to (s1, s2, y) thorugh the functions y and s2. The inverse relations are:

    • $s = s(s_1, s_2, y) = \sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$
    • $\mu = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}} = \frac{y \, s_2 - s_1}{s(s_1, s_2, y)}$.

    Inputs

    • s1: the comoving distance where must be evaluated the integral

    • s: the comoving distance from s1 where must be evaluated the integral

    • μ: the cosine between s1 and s where must be evaluated the integral

    • effect::Function or effect::String : name/function you want to consider, among the ones inside GaPSE.GR_EFFECTS_LDxGNC/GaPSE.VEC_ξs_LDxGNC respectively.

    • cosmo::Cosmology: cosmology to be used in this computation

    Optional arguments

    • L::Int = 0: order of the Legendre polynomial to be used

    • use_windows::Bool = false: tells if the integrand must consider the two window function $\phi$ and $\mathcal{F}$

    • kwargs... : other keyword arguments that will be passed to the selected GR TPCF effect (ξ_LDxGNC_Doppler, ξ_LDxGNC_Lensing, ...)

    See also: ξ_LDxGNC_multipole, map_ξ_LDxGNC_multipole, print_map_ξ_LDxGNC_multipole, WindowFIntegrated, ϕ, Cosmology, y, s2, GR_EFFECTS_LDxGNC, GaPSE.VEC_ξs_LDxGNC

    source
    GaPSE.ξ_LDxGNC_multipoleFunction
    ξ_LDxGNC_multipole(
    +    s1, s, effect::Function, cosmo::Cosmology;
    +    L::Int = 0, alg::Symbol = :lobatto, 
    +    use_windows::Bool = true, 
    +    N_lob::Int = 100, N_trap::Int = 200, 
    +    atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,
    +    enhancer::Float64 = 1e6, 
    +    kwargs...) ::Float64
    +
    +ξ_LDxGNC_multipole(s1, s, effect::String, cosmo::Cosmology; 
    +    kwargs...) ::Float64

    Evaluate the multipole of order L of the chosen two-point cross correlation between a perturbation of the Luminosity Distance (LD) and a Galaxy Number Counts (GNC) effect term i.e. the following function $\xi_L(s_1, s)$:

    \[ \xi_L(s_1, s) = \frac{2 L + 1}{2} \int_{-1}^{+1} \mathrm{d}\mu \; + \xi (s_1, s_2, \cos{\theta}) \, \mathcal{L}_L(\mu) \, \times + \begin{cases} + \frac{1}{\mathcal{N}}\mathcal{F}(s, \mu) \quad \mathrm{use\_windows == true} \\ + 1 \quad\quad \mathrm{use\_windows == false} + \end{cases}\]

    where:

    • $s_2 = s_2(s_1, s, \mu) = \sqrt{s_1^2 + s^2 + 2 \, s_1 \, s \, \mu}$
    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2 = \frac{\mu \, s + s_1}{s_2(s_1, s, \mu)}$
    • $\xi$ is the corresponding LDxGNC TPCF effect
    • $\mathcal{L}_L(\mu)$ is the Legendre polynomial of order $L$
    • $\mathcal{F}(s, \mu)$ is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)
    • $\mathcal{N}$ is the integrated window function norm (check the documentation of WindowFIntegrated)

    In the former method you have to pass as an input the LDxGNC effect function you want to integrate, while in the (recommended) latter one it's necessary to specify the name of the LDxGNC TPCF term among the following:

    doppler_newton , lensing_newton , localgp_newton , integratedgp_newton , doppler_doppler , lensing_doppler , localgp_doppler , integratedgp_doppler , doppler_lensing , lensing_lensing , localgp_lensing , integratedgp_lensing , doppler_localgp , lensing_localgp , localgp_localgp , integratedgp_localgp , doppler_integratedgp , lensing_integratedgp , localgp_integratedgp , integratedgp_integratedgp ,

    to which correspond the following functions:

    ξ_LDxGNC_Doppler_Newtonian , ξ_LDxGNC_Lensing_Newtonian , ξ_LDxGNC_LocalGP_Newtonian , ξ_LDxGNC_IntegratedGP_Newtonian , ξ_LDxGNC_Doppler_Doppler , ξ_LDxGNC_Lensing_Doppler , ξ_LDxGNC_LocalGP_Doppler , ξ_LDxGNC_IntegratedGP_Doppler , ξ_LDxGNC_Doppler_Lensing , ξ_LDxGNC_Lensing_Lensing , ξ_LDxGNC_LocalGP_Lensing , ξ_LDxGNC_IntegratedGP_Lensing , ξ_LDxGNC_Doppler_LocalGP , ξ_LDxGNC_Lensing_LocalGP , ξ_LDxGNC_LocalGP_LocalGP , ξ_LDxGNC_IntegratedGP_LocalGP , ξ_LDxGNC_Doppler_IntegratedGP , ξ_LDxGNC_Lensing_IntegratedGP , ξ_LDxGNC_LocalGP_IntegratedGP , ξ_LDxGNC_IntegratedGP_IntegratedGP ,

    Internally, the second method recall the first, so all the keyword arguments are in common.

    Note that these is an internal conversion of coordiate sistems from (s1, s, μ) to (s1, s2, y) thorugh the functions y and s2. The inverse relations are:

    • $s = s(s_1, s_2, y) = \sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$
    • $\mu = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}} = \frac{y \, s_2 - s_1}{s(s_1, s_2, y)}$.

    Inputs

    • s1: the comoving distance where must be evaluated the integral

    • s: the comoving distance from s1 where must be evaluated the integral

    • effect::Function or effect::String : name/function you want to consider, among the ones inside GaPSE.GR_EFFECTS_LDxGNC/GaPSE.VEC_ξs_LDxGNC respectively.

    • cosmo::Cosmology: cosmology to be used in this computation

    Optional arguments

    • L::Int = 0: order of the Legendre polynomial to be used

    • alg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):

      • :quad -> the integration over $\mu$ will be preformed through the Julia function quadgk

      from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.

      • :trap -> the integration over $\mu$ will be preformed through the Julia function trapz

      from the Trapz.jl Julia package, that uses the simple trapezoidal rulae.

      • :lobatto -> the integration over $\mu$ will be preformed through the Julia function gausslobatto

      from the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!

    • use_windows::Bool = false: tells if the integrand must consider the two window function $\phi$ and $\mathcal{F}$

    • N_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • N_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    • kwargs... : other keyword arguments that will be passed to the selected LDxGNC TPCF effect (ξ_LDxGNC_Doppler, ξ_LDxGNC_Lensing, ...)

    See also: integrand_ξ_LDxGNC_multipole, map_ξ_LDxGNC_multipole, print_map_ξ_LDxGNC_multipole WindowFIntegrated, Cosmology, y, s2, GR_EFFECTS_LDxGNC, VEC_ξs_LDxGNC

    source
    GaPSE.map_ξ_LDxGNC_multipoleFunction
    map_ξ_LDxGNC_multipole(cosmo::Cosmology,
    +    effect::Union{String,Function}, ss = nothing;
    +    s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,
    +    N_lob::Int = 100, N_trap::Int = 50,
    +    atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,
    +    enhancer::Float64=1e6, N_log::Int = 1000, 
    +    pr::Bool = true,
    +    kwargs...) ::Tuple{Vector{Float64}, Vector{Float64}}

    Evaluate the multipole of order L of the chosen two-point cross correlation between a perturbation of the Luminosity Distance (LD) and a Galaxy Number Counts (GNC) effect term for all the comoving distance values stored inside ss. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). If s1 = nothing, it is set s1 = cosmo.s_eff.

    The function evaluated is then the following $\xi_L(s_1, s)$:

    \[ \xi_L(s_1, s) = \frac{2 L + 1}{2} \int_{-1}^{+1} \mathrm{d}\mu \; + \xi (s_1, s_2, \cos{\theta}) \, \mathcal{L}_L(\mu) \, \times + \begin{cases} + \frac{1}{\mathcal{N}}\mathcal{F}(s, \mu) \quad \mathrm{use\_windows == true} \\ + 1 \quad\quad \mathrm{use\_windows == false} + \end{cases}\]

    where:

    • $s_2 = s_2(s_1, s, \mu) = \sqrt{s_1^2 + s^2 + 2 \, s_1 \, s \, \mu}$
    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2 = \frac{\mu \, s + s_1}{s_2(s_1, s, \mu)}$
    • $\xi$ is the corresponding LDxGNC TPCF effect
    • $\mathcal{L}_L(\mu)$ is the Legendre polynomial of order $L$
    • $\mathcal{F}(s, \mu)$ is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)
    • $\mathcal{N}$ is the integrated window function norm (check the documentation of WindowFIntegrated)

    Note that these is an internal conversion of coordiate sistems from (s1, s, μ) to (s1, s2, y) thorugh the functions y and s2. The inverse relations are:

    • $s = s(s_1, s_2, y) = \sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$
    • $\mu = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}} = \frac{y \, s_2 - s_1}{s(s_1, s_2, y)}$.

    Inputs

    • cosmo::Cosmology : cosmology to be used in this computation

    • effect::Union{String,Function} : the GR effect TPCF you want to consider; you may specify the name of the effect as one of the following strings (recommended):

      doppler_newton , lensing_newton , localgp_newton , integratedgp_newton , doppler_doppler , lensing_doppler , localgp_doppler , integratedgp_doppler , doppler_lensing , lensing_lensing , localgp_lensing , integratedgp_lensing , doppler_localgp , lensing_localgp , localgp_localgp , integratedgp_localgp , doppler_integratedgp , lensing_integratedgp , localgp_integratedgp , integratedgp_integratedgp ,

      or directly the name of the function among the following:

      ξ_LDxGNC_Doppler_Newtonian , ξ_LDxGNC_Lensing_Newtonian , ξ_LDxGNC_LocalGP_Newtonian , ξ_LDxGNC_IntegratedGP_Newtonian , ξ_LDxGNC_Doppler_Doppler , ξ_LDxGNC_Lensing_Doppler , ξ_LDxGNC_LocalGP_Doppler , ξ_LDxGNC_IntegratedGP_Doppler , ξ_LDxGNC_Doppler_Lensing , ξ_LDxGNC_Lensing_Lensing , ξ_LDxGNC_LocalGP_Lensing , ξ_LDxGNC_IntegratedGP_Lensing , ξ_LDxGNC_Doppler_LocalGP , ξ_LDxGNC_Lensing_LocalGP , ξ_LDxGNC_LocalGP_LocalGP , ξ_LDxGNC_IntegratedGP_LocalGP , ξ_LDxGNC_Doppler_IntegratedGP , ξ_LDxGNC_Lensing_IntegratedGP , ξ_LDxGNC_LocalGP_IntegratedGP , ξ_LDxGNC_IntegratedGP_IntegratedGP ,

    • ss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). This is why it is returned also the vector of the "input" values.

    Optional arguments

    • s1 = nothing : comoving distance from the observer where the TPCF should be evaluated; if s1 = nothing, it is automatically set s1 = cosmo.s_eff from the given input cosmo::Cosmology.

    • L::Int = 0: order of the Legendre polynomial to be used

    • alg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):

      • :quad -> the integration over $\mu$ will be preformed through the Julia function quadgk

      from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.

      • :trap -> the integration over $\mu$ will be preformed through the Julia function trapz

      from the Trapz.jl Julia package, that uses the simple trapezoidal rulae.

      • :lobatto -> the integration over $\mu$ will be preformed through the Julia function gausslobatto

      from the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!

    • use_windows::Bool = false: tells if the integrand must consider the two window function $\phi$ and $\mathcal{F}$

    • N_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • N_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    • N_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing

    • pr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)

    • kwargs... : other keyword arguments that will be passed to the selected LDxGNC TPCF effect (ξ_LDxGNC_Doppler, ξ_LDxGNC_Lensing, ...)

    Returns

    A Tuple{Vector{Float64}, Vector{Float64}}, which has as first element the ss vector and as second one the corresponding ξ value evaluated.

    See also: integrand_ξ_LDxGNC_multipole, ξ_LDxGNC_multipole, print_map_ξ_LDxGNC_multipole, WindowFIntegrated, Cosmology, y, s2, GR_EFFECTS_LDxGNC, GaPSE.VEC_ξs_LDxGNC

    source
    GaPSE.print_map_ξ_LDxGNC_multipoleFunction
    print_map_ξ_LDxGNC_multipole(
    +    cosmo::Cosmology, out::String,
    +    effect::Union{String,Function},
    +    ss = nothing;
    +    s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,
    +    N_lob::Int = 100, N_trap::Int = 50,
    +    atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,
    +    enhancer::Float64=1e6, N_log::Int = 1000, 
    +    pr::Bool = true,
    +    kwargs...)

    Evaluate the multipole of order L of the of the chosen two-point cross correlation between a perturbation of the Luminosity Distance (LD) and a Galaxy Number Counts (GNC) effect term for all the comoving distance values stored inside ss, and print the results (with all the options used) in a file named out. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). If s1 = nothing, it is set s1 = cosmo.s_eff.

    The function evaluated is then the following $\xi_L(s_1, s)$:

    \[ \xi_L(s_1, s) = \frac{2 L + 1}{2} \int_{-1}^{+1} \mathrm{d}\mu \; + \xi (s_1, s_2, \cos{\theta}) \, \mathcal{L}_L(\mu) \, \times + \begin{cases} + \frac{1}{\mathcal{N}}\mathcal{F}(s, \mu) \quad \mathrm{use\_windows == true} \\ + 1 \quad\quad \mathrm{use\_windows == false} + \end{cases}\]

    where:

    • $s_2 = s_2(s_1, s, \mu) = \sqrt{s_1^2 + s^2 + 2 \, s_1 \, s \, \mu}$
    • $y = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}_2 = \frac{\mu \, s + s_1}{s_2(s_1, s, \mu)}$
    • $\xi$ is the corresponding LDxGNC TPCF effect
    • $\mathcal{L}_L(\mu)$ is the Legendre polynomial of order $L$
    • $\mathcal{F}(s, \mu)$ is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)
    • $\mathcal{N}$ is the integrated window function norm (check the documentation of WindowFIntegrated)

    Note that these is an internal conversion of coordiate sistems from (s1, s, μ) to (s1, s2, y) thorugh the functions y and s2. The inverse relations are:

    • $s = s(s_1, s_2, y) = \sqrt{s_1^2 + s_2^2 - 2 \, s_1 \, s_2 \, y}$
    • $\mu = \cos{\theta} = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}} = \frac{y \, s_2 - s_1}{s(s_1, s_2, y)}$.

    Inputs

    • cosmo::Cosmology : cosmology to be used in this computation

    • effect::Union{String,Function} : the GR effect TPCF you want to consider; you may specify the name of the effect as one of the following strings (recommended):

      doppler_newton , lensing_newton , localgp_newton , integratedgp_newton , doppler_doppler , lensing_doppler , localgp_doppler , integratedgp_doppler , doppler_lensing , lensing_lensing , localgp_lensing , integratedgp_lensing , doppler_localgp , lensing_localgp , localgp_localgp , integratedgp_localgp , doppler_integratedgp , lensing_integratedgp , localgp_integratedgp , integratedgp_integratedgp ,

      or directly the name of the function among the following:

      ξ_LDxGNC_Doppler_Newtonian , ξ_LDxGNC_Lensing_Newtonian , ξ_LDxGNC_LocalGP_Newtonian , ξ_LDxGNC_IntegratedGP_Newtonian , ξ_LDxGNC_Doppler_Doppler , ξ_LDxGNC_Lensing_Doppler , ξ_LDxGNC_LocalGP_Doppler , ξ_LDxGNC_IntegratedGP_Doppler , ξ_LDxGNC_Doppler_Lensing , ξ_LDxGNC_Lensing_Lensing , ξ_LDxGNC_LocalGP_Lensing , ξ_LDxGNC_IntegratedGP_Lensing , ξ_LDxGNC_Doppler_LocalGP , ξ_LDxGNC_Lensing_LocalGP , ξ_LDxGNC_LocalGP_LocalGP , ξ_LDxGNC_IntegratedGP_LocalGP , ξ_LDxGNC_Doppler_IntegratedGP , ξ_LDxGNC_Lensing_IntegratedGP , ξ_LDxGNC_LocalGP_IntegratedGP , ξ_LDxGNC_IntegratedGP_IntegratedGP ,

    • out::String : name of the file where the results must be stored.

    • ss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log).

    Optional arguments

    This function recall internally map_ξ_LDxGNC_multipole, so the kwargs are the same; we report them for comfortness:

    • s1 = nothing : comoving distance from the observer where the TPCF should be evaluated; if s1 = nothing, it is automatically set s1 = cosmo.s_eff from the given input cosmo::Cosmology.

    • L::Int = 0: order of the Legendre polynomial to be used

    • alg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):

      • :quad -> the integration over $\mu$ will be preformed through the Julia function quadgk

      from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.

      • :trap -> the integration over $\mu$ will be preformed through the Julia function trapz

      from the Trapz.jl Julia package, that uses the simple trapezoidal rulae.

      • :lobatto -> the integration over $\mu$ will be preformed through the Julia function gausslobatto

      from the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!

    • use_windows::Bool = false: tells if the integrand must consider the two window function $\phi$ and $\mathcal{F}$

    • N_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • N_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    • N_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing

    • pr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)

    • kwargs... : other keyword arguments that will be passed to the selected LDxGNC TPCF effect (ξ_LDxGNC_Doppler, ξ_LDxGNC_Lensing, ...)

    See also: integrand_ξ_LDxGNC_multipole, ξ_LDxGNC_multipole, print_map_ξ_LDxGNC_multipole, WindowFIntegrated, Cosmology, y, s2, GR_EFFECTS_LDxGNC, GaPSE.VEC_ξs_LDxGNC

    source

    Two-Point Cross-Correlation Function Sum multipoles

    GaPSE.sum_ξ_LDxGNC_multipoleFunction
    sum_ξ_LDxGNC_multipole(s1, s, cosmo::Cosmology;
    +    s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,
    +    N_lob::Int = 100, N_trap::Int = 50,
    +    atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,
    +    enhancer::Float64=1e6, N_log::Int = 1000, 
    +    pr::Bool = true,
    +    kwargs...) ::Tuple{Float64, Vector{Float64}}

    Evaluate the multipole of order L of all the two-point cross correlation multipole between the perturbations of the Luminosity Distance (LD) and the Galaxy Number Counts (GNC) and their sum in the comoving distance s1 and a comoving distance s from it for the input cosmo::Cosmology. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    This function makes a for-loop on the GaPSE.GR_EFFECTS_LDxGNC strings, calling ξ_LDxGNC_multipole for each of them. To each string corresponds pretty intuitively one of the 20 LDxGNC effects. They are currently, in order:

    doppler_newton , lensing_newton , localgp_newton , integratedgp_newton , doppler_doppler , lensing_doppler , localgp_doppler , integratedgp_doppler , doppler_lensing , lensing_lensing , localgp_lensing , integratedgp_lensing , doppler_localgp , lensing_localgp , localgp_localgp , integratedgp_localgp , doppler_integratedgp , lensing_integratedgp , localgp_integratedgp , integratedgp_integratedgp ,

    Inputs

    • s1: the comoving distance where must be evaluated the integral

    • s: the comoving distance from s1 where must be evaluated the integral

    • cosmo::Cosmology: cosmology to be used in this computation

    Optional arguments

    This function recall internally ξ_LDxGNC_multipole, so the kwargs are the same; we report them for comfortness:

    • L::Int = 0: order of the Legendre polynomial to be used

    • alg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):

      • :quad -> the integration over $\mu$ will be preformed through the Julia function quadgk

      from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.

      • :trap -> the integration over $\mu$ will be preformed through the Julia function trapz

      from the Trapz.jl Julia package, that uses the simple trapezoidal rulae.

      • :lobatto -> the integration over $\mu$ will be preformed through the Julia function gausslobatto

      from the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!

    • use_windows::Bool = false: tells if the integrand must consider the two window function $\phi$ and $\mathcal{F}$

    • N_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • N_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    • kwargs... : other keyword arguments that will be passed to ALL the LDxGNC TPCF effect (ξ_LDxGNC_Doppler, ξ_LDxGNC_Lensing, ...); if one of them has that keyword argument, it will use the given value, otherwise it will be unaffected.

    Returns

    A tuple containing:

    • the sum of all the ξ multipoles as first element
    • a Vector{Float64} with all the values of each ξ; they are ordered following GR_EFFECTS_LDxGNC

    See also: integrand_ξ_LDxGNC_multipole, ξ_LDxGNC_multipole, map_sum_ξ_LDxGNC_multipole, print_map_sum_ξ_LDxGNC_multipole, Cosmology, GR_EFFECTS_LDxGNC

    source
    GaPSE.map_sum_ξ_LDxGNC_multipoleFunction
    map_sum_ξ_LDxGNC_multipole(
    +    effect::Union{String,Function}, ss = nothing;
    +    s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,
    +    N_lob::Int = 100, N_trap::Int = 50,
    +    atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,
    +    enhancer::Float64=1e6, N_log::Int = 1000, 
    +    pr::Bool = true,
    +    kwargs...) ::Tuple{Vector{Float64}, Vector{Float64}, Vector{Vector{Float64}}}

    Evaluate the multipole of order L of all the two-point cross correlation multipole between the perturbations of the Luminosity Distance (LD) and the Galaxy Number Counts (GNC) and their sum in the comoving distance s1, for all the comoving distances stored inside ss (representing the comoving distance from s1) for the input cosmo::Cosmology. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). If s1 = nothing, it is set s1 = cosmo.s_eff. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    This function makes a for-loop on the GaPSE.GR_EFFECTS_LDxGNC strings, calling map_ξ_LDxGNC_multipole for each of them. To each string corresponds pretty intuitively one of the 20 LDxGNC effects. They are currently, in order:

    doppler_newton , lensing_newton , localgp_newton , integratedgp_newton , doppler_doppler , lensing_doppler , localgp_doppler , integratedgp_doppler , doppler_lensing , lensing_lensing , localgp_lensing , integratedgp_lensing , doppler_localgp , lensing_localgp , localgp_localgp , integratedgp_localgp , doppler_integratedgp , lensing_integratedgp , localgp_integratedgp , integratedgp_integratedgp ,

    Inputs

    • cosmo::Cosmology : cosmology to be used in this computation

    • ss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). This is why it is returned also the vector of the "input" values.

    Optional arguments

    This function recall internally map_ξ_LDxGNC_multipole, so the kwargs are the same; we report them for comfortness:

    • s1 = nothing : comoving distance from the observer where the TPCF should be evaluated; if s1 = nothing, it is automatically set s1 = cosmo.s_eff from the given input cosmo::Cosmology.

    • L::Int = 0: order of the Legendre polynomial to be used

    • alg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):

      • :quad -> the integration over $\mu$ will be preformed through the Julia function quadgk

      from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.

      • :trap -> the integration over $\mu$ will be preformed through the Julia function trapz

      from the Trapz.jl Julia package, that uses the simple trapezoidal rulae.

      • :lobatto -> the integration over $\mu$ will be preformed through the Julia function gausslobatto

      from the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!

    • use_windows::Bool = false: tells if the integrand must consider the two window function $\phi$ and $\mathcal{F}$

    • N_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • N_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    • N_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing

    • pr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)

    • kwargs... : other keyword arguments that will be passed to ALL the LDxGNC TPCF effect (ξ_LDxGNC_Doppler, ξ_LDxGNC_Lensing, ...); if one of them has that keyword argument, it will use the given value, otherwise it will be unaffected.

    Returns

    A tuple containing:

    • as first element, the vector ss itself;
    • as second one, the Vector{Float64} of the sum of all the ξ multipoles;
    • as third one, a Vector{Vector{Float64}} with all the values of each ξ; they are ordered following GR_EFFECTS_LDxGNC

    See also: map_ξ_LDxGNC_multipole, sum_ξ_LDxGNC_multipole, print_map_sum_ξ_LDxGNC_multipole, Cosmology, GR_EFFECTS_LDxGNC

    source
    GaPSE.print_map_sum_ξ_LDxGNC_multipoleFunction
    print_map_sum_ξ_LDxGNC_multipole(
    +    cosmo::Cosmology, out::String, ss = nothing;
    +    s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,
    +    N_lob::Int = 100, N_trap::Int = 50,
    +    atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,
    +    enhancer::Float64=1e6, N_log::Int = 1000, 
    +    pr::Bool = true,
    +    single::Bool = true,
    +    kwargs...)

    Evaluate the multipole of order L of all the two-point cross correlation multipole between the perturbations of the Luminosity Distance (LD) and the Galaxy Number Counts (GNC) and their sum in the comoving distance s1, for all the comoving distances stored inside ss (representing the comoving distance from s1) for the input cosmo::Cosmology; finally, it saves the results inside the file out. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). If s1 = nothing, it is set s1 = cosmo.s_eff. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    This function makes a for-loop on the GaPSE.GR_EFFECTS_LDxGNC strings, calling map_ξ_LDxGNC_multipole for each of them. To each string corresponds pretty intuitively one of the 20 LDxGNC effects. They are currently, in order:

    doppler_newton , lensing_newton , localgp_newton , integratedgp_newton , doppler_doppler , lensing_doppler , localgp_doppler , integratedgp_doppler , doppler_lensing , lensing_lensing , localgp_lensing , integratedgp_lensing , doppler_localgp , lensing_localgp , localgp_localgp , integratedgp_localgp , doppler_integratedgp , lensing_integratedgp , localgp_integratedgp , integratedgp_integratedgp ,

    Inputs

    • cosmo::Cosmology : cosmology to be used in this computation

    • out::String : name of the file where the results must be stored.

    • ss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log).

    Optional arguments

    This function recall internally map_ξ_LDxGNC_multipole, so the kwargs are the same; we report them for comfortness:

    • s1 = nothing : comoving distance from the observer where the TPCF should be evaluated; if s1 = nothing, it is automatically set s1 = cosmo.s_eff from the given input cosmo::Cosmology.

    • L::Int = 0: order of the Legendre polynomial to be used

    • alg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):

      • :quad -> the integration over $\mu$ will be preformed through the Julia function quadgk

      from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.

      • :trap -> the integration over $\mu$ will be preformed through the Julia function trapz

      from the Trapz.jl Julia package, that uses the simple trapezoidal rulae.

      • :lobatto -> the integration over $\mu$ will be preformed through the Julia function gausslobatto

      from the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!

    • use_windows::Bool = false: tells if the integrand must consider the two window function $\phi$ and $\mathcal{F}$

    • N_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • N_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    • N_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing

    • pr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)

    • single::Bool = true : if true, all the CFs are printed inside the file of the sum, in a table with 18 columns (first one for ss, second for their sum an the next 20 for each effect). Otherwise, a new directory "allstandalonesCFs" is created (in the same path given in out) and they are separately saved in files there placed.

    • kwargs... : other keyword arguments that will be passed to ALL the LDxGNC TPCF effect (ξ_LDxGNC_Doppler, ξ_LDxGNC_Lensing, ...); if one of them has that keyword argument, it will use the given value, otherwise it will be unaffected.

    See also: map_ξ_LDxGNC_multipole, sum_ξ_LDxGNC_multipole, map_sum_ξ_LDxGNC_multipole, Cosmology, GR_EFFECTS_LDxGNC

    source
    diff --git a/dev/MathUtils/index.html b/dev/MathUtils/index.html index f9432587..d975a1f4 100644 --- a/dev/MathUtils/index.html +++ b/dev/MathUtils/index.html @@ -1,25 +1,39 @@ -Mathematical Utilities · GaPSE.jl

    Mathematical Utilities functions

    Missing docstring.

    Missing docstring for GaPSE.warning. Check Documenter's build log for details.

    GaPSE.derivate_pointFunction
     derivate_point(xp, yp, x1, y1, x2, y2)

    Return the derivative in (xp, yp), given the neighboor points (x1,y1) and (x2,y2), with x1 < xp < x2. It is not assumed that x2 - xp = xp - x1.

    source
    Missing docstring.

    Missing docstring for GaPSE.derivate_vector. Check Documenter's build log for details.

    Missing docstring.

    Missing docstring for GaPSE.spectral_index. Check Documenter's build log for details.

    GaPSE.mean_spectral_indexFunction
     mean_spectral_index(xs, ys; N::Int = 1, con = false)

    Assuming that the input ys follow a power law distribution, return the mean spectral index $\langle S \rangle$ of them.

    The spectral index $S$ of a generic function $f = f(x)$ is defined as:

    \[ S = \frac{\partial \log f(x)}{\partial \log x} - = \frac{x}{f(x)} \frac{\partial f(x)}{\partial x} \]

    source
    GaPSE.power_lawFunction
     power_law(x, si, b, a) ::Float64

    Return the following $y = f(x)$ "spurious" power-law value:

    \[y = f(x) = a + b \, x^s\]

    where si is the exponent ($s$), b the coefficient ($b$) and a is the added constant ($a$).

    source
    Missing docstring.

    Missing docstring for GaPSE.two_power_laws. Check Documenter's build log for details.

    GaPSE.power_law_from_dataFunction
     power_law_from_data(xs, ys, p0::Vector{Float64},
    -      fit_min::Number, fit_max::Number; con = false)
    +Mathematical Utilities · GaPSE.jl

    Mathematical Utilities functions

    GaPSE.warningFunction
    warning(io::IO, msg::String)
    +warning(msg::String) = warning(stdout, msg)

    It does the following: printstyled(io, "WARNING: " * msg * " "; color=:red, bold=true)

    source
    GaPSE.spectral_indexFunction
    spectral_index(xs, ys; N::Int=1, con=false)

    Return the spectral index vector for the two input vectors.

    The spectral index $S$ of a generic function $f = f(x)$ is defined as:

    \[ S = \frac{\partial \log f(x)}{\partial \log x} + = \frac{x}{f(x)} \frac{\partial f(x)}{\partial x} \]

    See also: derivate_point, derivate_vector

    source
    GaPSE.mean_spectral_indexFunction
    mean_spectral_index(xs, ys; N::Int = 1, con = false)

    Assuming that the input ys follow a power law distribution, return the mean spectral index $\langle S \rangle$ of them.

    The spectral index $S$ of a generic function $f = f(x)$ is defined as:

    \[ S = \frac{\partial \log f(x)}{\partial \log x} + = \frac{x}{f(x)} \frac{\partial f(x)}{\partial x} \]

    source
    GaPSE.power_lawFunction
    power_law(x, si, b, a) ::Float64

    Return the following $y = f(x)$ "spurious" power-law value:

    \[y = f(x) = a + b \, x^s\]

    where si is the exponent ($s$), b the coefficient ($b$) and a is the added constant ($a$).

    source
    GaPSE.two_power_lawsFunction
    two_power_laws(x; switch=5.0, si_1=1.0, si_2=2.0, b=1.0, a=0.0)

    Return two power laws, depending on the value of switch.

    source
    GaPSE.power_law_from_dataFunction
    power_law_from_data(xs, ys, p0::Vector{Float64},
    +    fit_min::Number, fit_max::Number; con = false)
     
    - power_law_from_data(xs, ys, p0::Vector{Float64}; con = false) = 
    -      power_law_from_data(xs, ys, p0, xs[begin], xs[end]; con = con)

    Returns the "spurious" power-law coefficients $s$, $b$ and $a$ obtained from the fitting of the data vectors xs and ys inside the limits fit_min and fit_max.

    If con == false, the returned a is always 0.0, because it is considered the "pure" power-law fitting function:

    \[ y = f(x) = b \, x^s\]

    while if con == false it is used the spurious one:

    \[ y = f(x) = a + b \, x^s\]

    (and consequently $a$ may be ≠0).

    The fitting is performed through the function curve_fit of the LsqFit Julia package, which is based on the least-squares method.

    See also: power_law

    source
    Missing docstring.

    Missing docstring for GaPSE.expanded_left_log. Check Documenter's build log for details.

    Missing docstring.

    Missing docstring for GaPSE.expanded_right_log. Check Documenter's build log for details.

    GaPSE.expanded_IPSFunction
     expanded_IPS(ks, pks; k_in = 1e-8, k_end = 3e3, con = false)

    Given the ks and pks of a chosen Power Spectrum, returns the same PS with "longer tails", i.e. it is prolonged for higher and lower ks than the input ones.

    source
    GaPSE.expanded_IlnFunction
     expanded_Iln(PK, l, n; N = 1024, kmin = 1e-4, kmax = 1e3, s0 = 1e-3,
    -      fit_left_min = 2.0, fit_left_max = 10.0, p0 = [-1.0, 1.0, 0.0], con = false)
    source
    GaPSE.func_I04_tildeFunction
     func_I04_tilde(PK, s, kmin, kmax; kwargs...)

    Return the following integral:

    \[\tilde{I}^4_0 (s) = \int_0^\infty \frac{\mathrm{d}q}{2\pi^2} - q^2 \, P(q) \, \frac{j_0(q s) - 1}{(q s)^4}\]

    It is brute-force calcuated with quadgk.

    Arguments

    • PK : function that return the Input Power Spectrum

    • s : value of $s$ whre the integral must be evaluated

    • kmin, kmax : extremes (min and max) of integration

    • kwargs... : keyword argruments that must be passed to quadgk, such as rtol or atol

    source
    Missing docstring.

    Missing docstring for GaPSE.expanded_I04_tilde. Check Documenter's build log for details.

    Missing docstring.

    Missing docstring for GaPSE.my_interpolation. Check Documenter's build log for details.

    GaPSE.EPLsType
     EPLs(
    -      l_si::Float64
    -      l_b::Float64
    -      l_a::Float64
    -      left::Float64
    +power_law_from_data(xs, ys, p0::Vector{Float64}; con = false) = 
    +    power_law_from_data(xs, ys, p0, xs[begin], xs[end]; con = con)

    Returns the "spurious" power-law coefficients $s$, $b$ and $a$ obtained from the fitting of the data vectors xs and ys inside the limits fit_min and fit_max.

    If con == false, the returned a is always 0.0, because it is considered the "pure" power-law fitting function:

    \[ y = f(x) = b \, x^s\]

    while if con == false it is used the spurious one:

    \[ y = f(x) = a + b \, x^s\]

    (and consequently $a$ may be ≠0).

    The fitting is performed through the function curve_fit of the LsqFit Julia package, which is based on the least-squares method.

    See also: power_law

    source
    GaPSE.polynomial_from_dataFunction
    polynomial_from_data(xs, ys, p0::Vector{Float64},
    +    fit_min::Number, fit_max::Number; con = false)
     
    -      spline::Dierckx.Spline1D
    +polynomial_from_data(xs, ys, p0::Vector{Float64}; con = false) = 
    +    polynomial_from_data(xs, ys, p0, xs[begin], xs[end]; con = con)

    Returns the 2-degree polynomial coefficients $c$, $b$ and $a$ obtained from the fitting of the data vectors xs and ys inside the limits fit_min and fit_max.

    The fitting function is always a second-degree polynomio, but depeding on the starting values vector p0 can assume three different forms:

    • if length(p0) == 3, the fitting polynomio is

      \[ f(x) = a + b \, x + c \, x^2\]

    • if length(p0) == 2, the fitting polynomio is

      \[ f(x) = b \, x + c \, x^2\]

    • if length(p0) == 1, the fitting polynomio is

      \[ f(x) = c \, x^2\]

    The fitting is performed through the function curve_fit of the LsqFit Julia package, which is based on the least-squares method.

    See also: polynomial

    source
    GaPSE.polynomialFunction
    polynomia(x, c, b, a) ::Float64

    Return the following $y = f(x)$ 2-degree polynomial value:

    \[y = f(x) = a + b \, x + c \, x^2\]

    where c is the 2-degree coefficient ($c$), b the 1-degree coefficient ($b$) and a is the added constant ($a$).

    source
    GaPSE.expand_left_logFunction
    expand_left_log(xs, ys;
    +    lim=1e-8, fit_min=0.05, fit_max=0.5,
    +    p0::Union{Vector{Float64},Nothing}=nothing,
    +    con::Bool=false)
    source
    GaPSE.expand_right_logFunction
    expand_right_log(xs, ys;
    +    lim=3e3, fit_min=5.0, fit_max=10.0,
    +    p0::Union{Vector{Float64},Nothing}=nothing,
    +    con::Bool=false)
    source
    GaPSE.expanded_IPSFunction
    expanded_IPS(ks, pks; k_in = 1e-8, k_end = 3e3, con = false)

    Given the ks and pks of a chosen Power Spectrum, returns the same PS with "longer tails", i.e. it is prolonged for higher and lower ks than the input ones.

    source
    GaPSE.expanded_IlnFunction
    expanded_Iln(PK, l, n; N = 1024, kmin = 1e-4, kmax = 1e3, s0 = 1e-3,
    +    fit_left_min = 2.0, fit_left_max = 10.0, p0 = [-1.0, 1.0, 0.0], con = false)
    source
    GaPSE.func_I04_tildeFunction
    func_I04_tilde(PK, s, kmin, kmax; kwargs...)

    Return the following integral:

    \[\tilde{I}^4_0 (s) = \int_0^\infty \frac{\mathrm{d}q}{2\pi^2} + q^2 \, P(q) \, \frac{j_0(q s) - 1}{(q s)^4}\]

    It is brute-force calcuated with quadgk.

    Arguments

    • PK : function that return the Input Power Spectrum

    • s : value of $s$ whre the integral must be evaluated

    • kmin, kmax : extremes (min and max) of integration

    • kwargs... : keyword argruments that must be passed to quadgk, such as rtol or atol

    source
    GaPSE.EPLsType
    EPLs(
    +    l_si::Float64
    +    l_b::Float64
    +    l_a::Float64
    +    left::Float64
     
    -      r_si::Float64
    -      r_b::Float64
    -      r_a::Float64
    -      right::Float64
    - )

    Contains all the information useful in order to return the value of a spline inside the interval left ≤ x ≤ right and the associated power laws for the edges (with the "left" coefficients l_si, l_b and l_a for x < left and the "right" ones r_si, r_b and r_a for x > right)

    Arguments

    • l_si, l_b, l_a :: Float64 : coefficient for the spurious power-law $y = f(x) = a + b \, x^s$ for the LEFT edge; when an input value x < left is given, the returned one is obtained from power_law with this coefficients ( where, of course, l_si is the exponent, l_b the coefficient and l_a the spurious adding constant).

    • left::Float64 : the break between the left power-law (for x <left) and the spline (for x ≥ left); its value is the xs[begin] one.

    • spline::Dierckx.Spline1D : spline that interpolates between the real values of the integral calculated inside the range left ≤ x ≤ right

    • right::Float64 : the break between the right power-law (for x ≥ left) and the spline (for x ≤ right); its value is the xs[end] one.

    • r_si, r_b, r_a :: Float64 : coefficient for the spurious power-law $y = f(x) = a + b \, x^s$ for the RIGHT edge; when an input value x > right is given, the returned one is obtained from power_law with this coefficients ( where, of course, r_si is the exponent, r_bthe coefficient andr_athe spurious adding constant). NOTE: for numerical issues, the "pure" power-lawy = f(x) = b + x^s` should be used.

    Constructors

    `EPLs(xs, ys, p0left::Vector{T1}, p0right::Vector{T2}; Nleft::Int = 15, Nright::Int = 15) where {T1<:Real, T2 <:Real}

    • xs and ys: the input vector of values.

    • N_left::Int = 15 : number of points to be used from the left edge for the left power law-fitting. It shouldn't be too low (< 4) or too high (>100).

    • N_right::Int = 15 : number of points to be used from the right edge for the right power law-fitting. It shouldn't be too low (< 4) or too high (>100).

    • p0_left::Vector{T1} where T1 <:Real : vector with the initial values for the left power-law fitting; its length must be 2 (if you want to fit with a pure power-law $y = f(x) = b * x^s$, so only l_si and l_b are matter of concern) or 3 (if you want to fit with a spurious power-law $y = f(x) = a + b * x^s$, so you are also interested in l_a); in the first case, the considered l_a will be 0.0. Example:

    • p0_right::Vector{T1} where T1 <:Real : vector with the initial values for the right power-law fitting; its length must be 2 (if you want to fit with a pure power-law $y = f(x) = b * x^s$, so only r_si and r_b are matter of concern) or 3 (if you want to fit with a spurious power-law $y = f(x) = a + b * x^s$, so you are also interested in r_a); in the first case, the considered r_a will be 0.0. It is recommended to

    All the power-law fitting (both "pure" and spurious) are made through the local function power_law_from_data.

    Examples

    julia> xs = 10 .^ range(0, 2, length=100);
    +    spline::Dierckx.Spline1D
    +
    +    r_si::Float64
    +    r_b::Float64
    +    r_a::Float64
    +    right::Float64
    +)

    Contains all the information useful in order to return the value of a spline inside the interval left ≤ x ≤ right and the associated power laws for the edges (with the "left" coefficients l_si, l_b and l_a for x < left and the "right" ones r_si, r_b and r_a for x > right)

    Arguments

    • l_si, l_b, l_a :: Float64 : coefficient for the spurious power-law $y = f(x) = a + b \, x^s$ for the LEFT edge; when an input value x < left is given, the returned one is obtained from power_law with this coefficients ( where, of course, l_si is the exponent, l_b the coefficient and l_a the spurious adding constant).

    • left::Float64 : the break between the left power-law (for x <left) and the spline (for x ≥ left); its value is the xs[begin] one.

    • spline::Dierckx.Spline1D : spline that interpolates between the real values of the integral calculated inside the range left ≤ x ≤ right

    • right::Float64 : the break between the right power-law (for x ≥ left) and the spline (for x ≤ right); its value is the xs[end] one.

    • r_si, r_b, r_a :: Float64 : coefficient for the spurious power-law $y = f(x) = a + b \, x^s$ for the RIGHT edge; when an input value x > right is given, the returned one is obtained from power_law with this coefficients ( where, of course, r_si is the exponent, r_bthe coefficient andr_athe spurious adding constant). NOTE: for numerical issues, the "pure" power-lawy = f(x) = b + x^s` should be used.

    Constructors

    EPLs(xs, ys, p0_left::Vector{T1}, p0_right::Vector{T2}; 
    +    N_left::Int = 15, N_right::Int = 15) where {T1<:Real, T2 <:Real}
    • xs and ys: the input vector of values.

    • N_left::Int = 15 : number of points to be used from the left edge for the left power law-fitting. It shouldn't be too low (< 4) or too high (>100).

    • N_right::Int = 15 : number of points to be used from the right edge for the right power law-fitting. It shouldn't be too low (< 4) or too high (>100).

    • p0_left::Vector{T1} where T1 <:Real : vector with the initial values for the left power-law fitting; its length must be 2 (if you want to fit with a pure power-law $y = f(x) = b * x^s$, so only l_si and l_b are matter of concern) or 3 (if you want to fit with a spurious power-law $y = f(x) = a + b * x^s$, so you are also interested in l_a); in the first case, the considered l_a will be 0.0. Example:

    • p0_right::Vector{T1} where T1 <:Real : vector with the initial values for the right power-law fitting; its length must be 2 (if you want to fit with a pure power-law $y = f(x) = b * x^s$, so only r_si and r_b are matter of concern) or 3 (if you want to fit with a spurious power-law $y = f(x) = a + b * x^s$, so you are also interested in r_a); in the first case, the considered r_a will be 0.0. It is recommended to

    All the power-law fitting (both "pure" and spurious) are made through the local function power_law_from_data.

    Examples

    julia> xs = 10 .^ range(0, 2, length=100);
     
     julia> ys = [1.34e2 * x ^ 2.43 for x in xs];
     
    -julia> A = EPLs(xs, ys, [1.0, 1.0], [1.0, 1.0]; N_left = 10, N_right = 10)

    See also: power_law_from_data

    source
    +julia> A = EPLs(xs, ys, [1.0, 1.0], [1.0, 1.0]; N_left = 10, N_right = 10)

    See also: power_law_from_data

    source
    GaPSE.FFTLog.evaluate_FFTLog!Function
    evaluate_FFTLog!(fy, plan::Union{SingleBesselPlan, HankelPlan}, fx)

    Given an input plan::Union{SingleBesselPlan, HankelPlan}, evaluate the FFT fy of the fx y-axis data on the basis of the parameters stored in plan. The result is stored both in plan.fy and in the input fy.

    See also: SingleBesselPlan, HankelPlan

    source
    diff --git a/dev/OtherUtils/index.html b/dev/OtherUtils/index.html index 2539f3ac..2c4180fb 100644 --- a/dev/OtherUtils/index.html +++ b/dev/OtherUtils/index.html @@ -1,14 +1,65 @@ -Other Utilities · GaPSE.jl

    Other utilities

    GaPSE.check_compatible_dictsFunction
    check_compatible_dicts(ref::Dict, b::Dict, name::String = "NO-NAME")

    Compare the field of two Dict and check if the second one (b) is "compatible" with the first one (ref), i.e.:

    • checks if each of the key in b is also a key of ref;
    • for each key of b:
      • if typeof(ref[key]) <: Real and !(typeof(ref[k]) <: Union{Bool, Int}), checks that typeof(b[k]) <: Real && typeof(b[k]) ≠ Bool
      • otherwise, checks that typeof(b[k]) == typeof(ref[k])

    If someone of the check mentioned is false, raise an AssertionError, otherwise return nothing. The string name is only used inside the AssertionError messages for the correct name of the input b dictionary.

    source
    Missing docstring.

    Missing docstring for GaPSE.my_println_vec. Check Documenter's build log for details.

    Missing docstring.

    Missing docstring for GaPSE.my_println_dict. Check Documenter's build log for details.

    GaPSE.parent_directoryFunction
    parent_directory(s::String)::String

    Return the name of the parent directory of the input filename s::String. Some examples of use:

    • s = "/Users/username/Downloads/file.txt" => "/Users/username/Downloads/"
    • s = "/Users/username/Downloads/" => "/Users/username/"
    • s = "/Users/username/Downloads" => "/Users/username/"
    • s = "/Users/username/" => "/Users/"
    • s = "/Users/username" => "/Users/"
    • s = "/Users/" => "/"
    • s = "/Users" => "/"
    • s = "username/Downloads/file.txt" => "username/Downloads/"
    • s = "username/Downloads/" => "username/"
    • s = "username/Downloads" => "username/"
    • s = "username/" => "./"
    • s = "username" => "./"
    • s = "file.txt" => "./"

    It's used inside the function check_parent_directory.

    See also: check_parent_directory, return_namefile check_namefile

    source
    GaPSE.check_parent_directoryFunction
    check_parent_directory(s::String)

    Checks if the input namefile s::String is placed in an existing directory (whose name is obtained from s through the function parent_directory); if not, it raises an AssertionError. Some examples of the directory which are checked:

    • s = "/Users/username/Downloads/file.txt" => "/Users/username/Downloads/"
    • s = "/Users/username/Downloads/" => "/Users/username/"
    • s = "/Users/username/Downloads" => "/Users/username/"
    • s = "/Users/username/" => "/Users/"
    • s = "/Users/username" => "/Users/"
    • s = "/Users/" => "/"
    • s = "/Users" => "/"
    • s = "username/Downloads/file.txt" => "username/Downloads/"
    • s = "username/Downloads/" => "username/"
    • s = "username/Downloads" => "username/"
    • s = "username/" => "./"
    • s = "username" => "./"
    • s = "file.txt" => "./"

    See also: parent_directory, return_namefile check_namefile

    source
    GaPSE.return_namefileFunction
    return_namefile(s::String)::String

    Return the namefile of the input s::String, i.e. it removes the path from the name. Internally it uses the function parent_directory. Some examples of use:

    • s = "/Users/matteofoglieni/Downloads/" => raises an AssertionError

    • s = "Downloads/" => raises an AssertionError

    • s = "./Downloads/" => raises an AssertionError

    • s = "file" => "file"

    • s = "file.boh" => "file.boh"

    • s = "/Users/matteo.foglieni/ciao.file" => "ciao.file"

    • s = "matteo.foglieni/ciao.file.boh" => "ciao.file.boh"

    • s = "/Users/matteofoglieni/Downloads/file.txt" => "file.txt"

    • s = "./file.txt" => "file.txt"

    • s = "./file.dat" => "file.dat"

    • s = "file.txt" => "file.txt"

    • s = "file.dat" => "file.dat"

    See also: parent_directory check_parent_directory check_namefile

    source
    GaPSE.check_namefileFunction
    check_namefile(s::String)

    Check if the input namefile s::String is a valid name for a file. Internally it uses the function return_namefile. Some examples of use:

    • s = "/Users/matteofoglieni/Downloads/" => raises an AssertionError

    • s = "Downloads/" => raises an AssertionError

    • s = "./Downloads/" => raises an AssertionError

    • s = "file" => no raises

    • s = "file.boh" => no raises

    • s = "/Users/matteo.foglieni/ciao.file" => no raises

    • s = "matteo.foglieni/ciao.file.boh" => no raises

    • s = "/Users/matteofoglieni/Downloads/file.txt" => no raises

    • s = "./file.txt" => no raises

    • s = "./file.dat" => no raises

    • s = "file.txt" => no raises

    • s = "file.dat" => no raises

    See also: parent_directory, check_parent_directory, return_namefile

    source
    GaPSE.check_groupFunction
    check_group(s::String; valid_groups::Vector{String}=VALID_GROUPS)

    Check if the input s::String belongs to valid groups; if not, it raises an AssertionError. The default VALID_GROUPS is made by the following strings: LD , GNC , GNCxLD , LDxGNC , generic ,

    See also: check_fileisingroup

    source
    GaPSE.check_fileisingroupFunction
    check_fileisingroup(input::String, group::String;
    -    valid_groups::Vector{String}=VALID_GROUPS, comments::Bool=true)

    Check if the filename input::String constains a set of data that are "compatible" with the input group::String. The default VALID_GROUPS is made by the following strings: LD , GNC , GNCxLD , LDxGNC , generic , If the file start with comments (lines starting with #), set comments = true.

    Internally it recalls the function check_group.

    See also: check_group

    source
    GaPSE.number_to_stringFunction
    number_to_string(x::Number) ::String

    Convert a x::Number into a String with the following conventions:

    • x = 3 -> "3"
    • x = -2.15 -> "-2.15"
    • x = 2.15 * im -> "2.15im"
    • x = 0.0 + 2.15 * im -> "2.15im"
    • x = - 0.0 - 2.15 * im -> "-2.15im"
    • x = -3.1415 - 2.15 * im -> "-3.1415-2.15im"
    • x = 3.1415 + 2.15 * im -> "3.1415+2.15im"
    source
    GaPSE.vecstring_to_vecnumbersFunction
    vecstring_to_vecnumbers(v; 
    -    dt::DataType = Float64 ) ::Vector{dt}

    Try to convert a vector of String into a Vector of data type dt. If that raises an Exception, it uses parse elementwise.

    source
    GaPSE.readxyFunction
    readxy(input::String; comments::Bool=true, 
    +Other Utilities · GaPSE.jl

    Other utilities

    GaPSE.parameters_usedFunction
    parameters_used(io::IO, cosmo::Cosmology; logo::Union{Bool,String} = true)
    +parameters_used(cosmo::Cosmology; kwargs...) = parameters_used(stdout, cosmo; kwargs...)

    Writes in the io stream all the information concerning the input Cosmology cosmo. There are currently three options for logo: true, "simple" and false. With true, the logo that is printed to io is the following:

    ###################################
    +#   ____       ____  ____  _____  #
    +#  / ___| __ _|  _ \/ ___|| ____| #
    +# | |  _ / _` | |_) \___ \|  _|   #
    +# | |_| | (_| |  __/ ___) | |___  # 
    +#  \____|\__,_|_|   |____/|_____| #
    +###################################
    +# 

    With false, the logo that is printed to io is instead the following:

    ###############
    +#    GaPSE    #
    +############### 
    +#

    Finally, with false, not logo is printed.

    See also: Cosmology

    source
    GaPSE.check_compatible_dictsFunction
    check_compatible_dicts(ref::Dict, b::Dict, name::String = "NO-NAME")

    Compare the field of two Dict and check if the second one (b) is "compatible" with the first one (ref), i.e.:

    • checks if each of the key in b is also a key of ref;
    • for each key of b:
      • if typeof(ref[key]) <: Real and !(typeof(ref[k]) <: Union{Bool, Int}), checks that typeof(b[k]) <: Real && typeof(b[k]) ≠ Bool
      • otherwise, checks that typeof(b[k]) == typeof(ref[k])

    If someone of the check mentioned is false, raise an AssertionError, otherwise return nothing. The string name is only used inside the AssertionError messages for the correct name of the input b dictionary.

    source
    GaPSE.my_println_vecFunction
    my_println_vec(io::IO, vec::Vector{T}, name::String; N::Int=5) where {T}
    +my_println_vec(vec::Vector{T}, name::String; N::Int=5) where {T}
    +    my_println_vec(stdout, vec, name; N=N)

    Print the input vec::Vector{T} as follows:

    > vec = [x for x in 1:0.1:4]
    +> my_println_vec(vec, "vector"; N=8)
    +vector = [
    +1.0 , 1.1 , 1.2 , 1.3 , 1.4 , 1.5 , 1.6 , 1.7 , 
    +1.8 , 1.9 , 2.0 , 2.1 , 2.2 , 2.3 , 2.4 , 2.5 , 
    +2.6 , 2.7 , 2.8 , 2.9 , 3.0 , 3.1 , 3.2 , 3.3 , 
    +3.4 , 3.5 , 3.6 , 3.7 , 3.8 , 3.9 , 4.0 , 
    +];
    +
    +> my_println_vec(vec, "vector"; N=3)
    +vector = [
    +1.0 , 1.1 , 1.2 , 
    +1.3 , 1.4 , 1.5 , 
    +1.6 , 1.7 , 1.8 , 
    +1.9 , 2.0 , 2.1 , 
    +2.2 , 2.3 , 2.4 , 
    +2.5 , 2.6 , 2.7 , 
    +2.8 , 2.9 , 3.0 , 
    +3.1 , 3.2 , 3.3 , 
    +3.4 , 3.5 , 3.6 , 
    +3.7 , 3.8 , 3.9 , 
    +4.0 , 
    +];
    +	

    See also: my_println_dict

    source
    GaPSE.my_println_dictFunction
    my_println_dict(io::IO, dict::Dict; pref::String="", N::Int=3)
    +my_println_dict(dict::Dict; pref::String="", N::Int=3) = 
    +    my_println_dict(stdout, dict; pref=pref, N=N)

    Print the input dict::Dict as follows:

    > my_println_dict(io, cosmo.params.IPS; pref="#	 ", N=2)
    +#	 fit_left_min = 1.0e-6 	 fit_right_min = 10.0 	 
    +#	 fit_left_max = 3.0e-6 	 fit_right_max = 20.0 	

    See also: my_println_vec

    source
    GaPSE.parent_directoryFunction
    parent_directory(s::String)::String

    Return the name of the parent directory of the input filename s::String. Some examples of use:

    • s = "/Users/username/Downloads/file.txt" => "/Users/username/Downloads/"
    • s = "/Users/username/Downloads/" => "/Users/username/"
    • s = "/Users/username/Downloads" => "/Users/username/"
    • s = "/Users/username/" => "/Users/"
    • s = "/Users/username" => "/Users/"
    • s = "/Users/" => "/"
    • s = "/Users" => "/"
    • s = "username/Downloads/file.txt" => "username/Downloads/"
    • s = "username/Downloads/" => "username/"
    • s = "username/Downloads" => "username/"
    • s = "username/" => "./"
    • s = "username" => "./"
    • s = "file.txt" => "./"

    It's used inside the function check_parent_directory.

    See also: check_parent_directory, return_namefile check_namefile

    source
    GaPSE.check_parent_directoryFunction
    check_parent_directory(s::String)

    Checks if the input namefile s::String is placed in an existing directory (whose name is obtained from s through the function parent_directory); if not, it raises an AssertionError. Some examples of the directory which are checked:

    • s = "/Users/username/Downloads/file.txt" => "/Users/username/Downloads/"
    • s = "/Users/username/Downloads/" => "/Users/username/"
    • s = "/Users/username/Downloads" => "/Users/username/"
    • s = "/Users/username/" => "/Users/"
    • s = "/Users/username" => "/Users/"
    • s = "/Users/" => "/"
    • s = "/Users" => "/"
    • s = "username/Downloads/file.txt" => "username/Downloads/"
    • s = "username/Downloads/" => "username/"
    • s = "username/Downloads" => "username/"
    • s = "username/" => "./"
    • s = "username" => "./"
    • s = "file.txt" => "./"

    See also: parent_directory, return_namefile check_namefile

    source
    GaPSE.return_namefileFunction
    return_namefile(s::String)::String

    Return the namefile of the input s::String, i.e. it removes the path from the name. Internally it uses the function parent_directory. Some examples of use:

    • s = "/Users/matteofoglieni/Downloads/" => raises an AssertionError

    • s = "Downloads/" => raises an AssertionError

    • s = "./Downloads/" => raises an AssertionError

    • s = "file" => "file"

    • s = "file.boh" => "file.boh"

    • s = "/Users/matteo.foglieni/ciao.file" => "ciao.file"

    • s = "matteo.foglieni/ciao.file.boh" => "ciao.file.boh"

    • s = "/Users/matteofoglieni/Downloads/file.txt" => "file.txt"

    • s = "./file.txt" => "file.txt"

    • s = "./file.dat" => "file.dat"

    • s = "file.txt" => "file.txt"

    • s = "file.dat" => "file.dat"

    See also: parent_directory check_parent_directory check_namefile

    source
    GaPSE.check_namefileFunction
    check_namefile(s::String)

    Check if the input namefile s::String is a valid name for a file. Internally it uses the function return_namefile. Some examples of use:

    • s = "/Users/matteofoglieni/Downloads/" => raises an AssertionError

    • s = "Downloads/" => raises an AssertionError

    • s = "./Downloads/" => raises an AssertionError

    • s = "file" => no raises

    • s = "file.boh" => no raises

    • s = "/Users/matteo.foglieni/ciao.file" => no raises

    • s = "matteo.foglieni/ciao.file.boh" => no raises

    • s = "/Users/matteofoglieni/Downloads/file.txt" => no raises

    • s = "./file.txt" => no raises

    • s = "./file.dat" => no raises

    • s = "file.txt" => no raises

    • s = "file.dat" => no raises

    See also: parent_directory, check_parent_directory, return_namefile

    source
    GaPSE.check_groupFunction
    check_group(s::String; valid_groups::Vector{String}=VALID_GROUPS)

    Check if the input s::String belongs to valid groups; if not, it raises an AssertionError. The default VALID_GROUPS is made by the following strings: LD , GNC , GNCxLD , LDxGNC , generic ,

    See also: check_fileisingroup

    source
    GaPSE.check_fileisingroupFunction
    check_fileisingroup(input::String, group::String;
    +    valid_groups::Vector{String}=VALID_GROUPS, comments::Bool=true)

    Check if the filename input::String constains a set of data that are "compatible" with the input group::String. The default VALID_GROUPS is made by the following strings: LD , GNC , GNCxLD , LDxGNC , generic , If the file start with comments (lines starting with #), set comments = true.

    Internally it recalls the function check_group.

    See also: check_group

    source
    GaPSE.number_to_stringFunction
    number_to_string(x::Number) ::String

    Convert a x::Number into a String with the following conventions:

    • x = 3 -> "3"
    • x = -2.15 -> "-2.15"
    • x = 2.15 * im -> "2.15im"
    • x = 0.0 + 2.15 * im -> "2.15im"
    • x = - 0.0 - 2.15 * im -> "-2.15im"
    • x = -3.1415 - 2.15 * im -> "-3.1415-2.15im"
    • x = 3.1415 + 2.15 * im -> "3.1415+2.15im"
    source
    GaPSE.vecstring_to_vecnumbersFunction
    vecstring_to_vecnumbers(v; 
    +    dt::DataType = Float64 ) ::Vector{dt}

    Try to convert a vector of String into a Vector of data type dt. If that raises an Exception, it uses parse elementwise.

    source
    GaPSE.readxyFunction
    readxy(input::String; comments::Bool=true, 
         xdt::DataType = Float64, ydt::DataType = Float64
    -    ) ::Tuple{Vector{xdt},Vector{ydt}}

    Read the file input and return the two data colums with the input types xdt and ydt. If the file start with comments (lines starting with #), set comments = true.

    See also: readxall, readxyall

    source
    GaPSE.readxallFunction
    readxall(input::String; comments::Bool=true, 
    +    ) ::Tuple{Vector{xdt},Vector{ydt}}

    Read the file input and return the two data colums with the input types xdt and ydt. If the file start with comments (lines starting with #), set comments = true.

    See also: readxall, readxyall, readxchoosey

    source
    GaPSE.readxallFunction
    readxall(input::String; comments::Bool=true, 
         xdt::DataType = Float64, ydt::DataType = Float64
    -    ) ::Tuple{Vector{xdt},Vector{Vector{ydt}}}

    Read the file input and return a tuple having

    • as first element the data in the first column (with the input type xdt)
    • as second element a vector that contains all the following columns (with the input type ydt)

    If the file start with comments (lines starting with #), set comments = true.

    See also: readxy, readxyall

    source
    GaPSE.readxyallFunction
    readxyall(input::String; comments::Bool=true, 
    +    ) ::Tuple{Vector{xdt},Vector{Vector{ydt}}}

    Read the file input and return a tuple having

    • as first element the data in the first column (with the input type xdt)
    • as second element a vector that contains all the following columns (with the input type ydt)

    If the file start with comments (lines starting with #), set comments = true.

    See also: readxy, readxyall, readxchoosey

    source
    GaPSE.readxyallFunction
    readxyall(input::String; comments::Bool=true, 
         xdt::DataType = Float64, ydt::DataType = Float64,
         zdt::DataType=Float64
    -    ) ::Tuple{Vector{xdt},Vector{ydt},Vector{Vector{zdt}}}

    Read the file input and return a tuple having

    • as first element the data in the first column (with the input type xdt)
    • as second element the data in the second column (with the input type ydt)
    • as third element a vector that contains all the following columns (with the input type zdt)

    If the file start with comments (lines starting with #), set comments = true.

    See also: readxy, readxall

    source
    GaPSE.sample_subdivision_beginFunction
    sample_subdivision_begin(x_min, x_stop, x_end; 
    -    frac_begin::Float64 = 0.5, N::Int = 100, ass::Bool = true)

    Return a vector of N+2 points inside the interval x_min ≤ x ≤ x_max linearly distributed with two different sampling:

    • in x_min ≤ x ≤ x_stop there are around frac_begin * N points;
    • in x_stop ≤ x ≤ x_max there are around (1.0 - frac_begin) * N points.

    frac_begin is then the fraction of the N points that is inside the LEFT INTERVAL. If ass::Bool is set to false the assert checks on the input data will not be performed.

    source
    GaPSE.sample_subdivision_middleFunction
    sample_subdivision_middle(x_min, x_start, x_stop, x_max; 
    +    ) ::Tuple{Vector{xdt},Vector{ydt},Vector{Vector{zdt}}}

    Read the file input and return a tuple having

    • as first element the data in the first column (with the input type xdt)
    • as second element the data in the second column (with the input type ydt)
    • as third element a vector that contains all the following columns (with the input type zdt)

    If the file start with comments (lines starting with #), set comments = true.

    See also: readxy, readxall, readxchoosey

    source
    GaPSE.readchoosenFunction
    readchoosen(
    +    input::String, n::Int; 
    +    comments::Bool = true, dt::DataType = Float64, 
    +    ) ::Tuple{Vector{xdt},Vector{ydt}}

    Read the file input and return the data (with the input type ydt) stored in the column number n.

    If the file start with comments (lines starting with #), set comments = true.

    See also: readxy, readxall, readxyall, readxchoosey

    source
    GaPSE.readxchooseyFunction
    readxchoosey(
    +    input::String, n::Int; 
    +    comments::Bool = true, xdt::DataType = Float64, ydt::DataType = Float64,
    +    ) ::Tuple{Vector{xdt},Vector{ydt}}
    +
    +readxchoosey(
    +    input::String, effect::String, group::String = VALID_GROUPS[begin+1]; 
    +    comments::Bool = true, xdt::DataType = Float64, ydt::DataType = Float64,
    +    ) ::Tuple{Vector{xdt},Vector{ydt}}

    Read the file input and return a tuple having

    • as first element the data in the first column (with the input type xdt)
    • as second element the data (with the input type ydt)
      • stored in the column number n (first method)
      • in the position corresponding to the input effect for the given group (note: also "sum" is valid as effect here, and gives the sum column, i.e. the second one)

    If the file start with comments (lines starting with #), set comments = true.

    See also: readxy, readxall, readxyall,readchoosen

    source
    GaPSE.sample_subdivision_beginFunction
    sample_subdivision_begin(x_min, x_stop, x_end; 
    +    frac_begin::Float64 = 0.5, N::Int = 100, ass::Bool = true)

    Return a vector of N+2 points inside the interval x_min ≤ x ≤ x_max linearly distributed with two different sampling:

    • in x_min ≤ x ≤ x_stop there are around frac_begin * N points;
    • in x_stop ≤ x ≤ x_max there are around (1.0 - frac_begin) * N points.

    frac_begin is then the fraction of the N points that is inside the LEFT INTERVAL. If ass::Bool is set to false the assert checks on the input data will not be performed.

    source
    GaPSE.sample_subdivision_middleFunction
    sample_subdivision_middle(x_min, x_start, x_stop, x_max; 
         frac_middle::Float64 = 0.5, rel_frac_begin::Union{Float64, Nothing} = nothing, 
    -    N::Int = 100, ass::Bool = true)

    Return a vector of N+3 points inside the interval x_min ≤ x ≤ x_max linearly distributed with three different sampling, depending on the values of frac_middle and rel_frac_begin.

    If rel_frac_begin == nothing, defining the relative size of the segment x_min ≤ x ≤ x_start compared to the "masked one" x_min ≤ x ≤ x_start || x_stop ≤ x ≤ x_max as rel_prop_begin = (x_start - x_min) / (x_max - x_min - x_stop + x_start):

    • in x_min ≤ x ≤ x_start there are around (1.0 - frac_middle) * rel_prop_begin * N points;
    • in x_start ≤ x ≤ x_stop there are around frac_middle * N points;
    • in x_stop ≤ x ≤ x_max there are around (1.0 - frac_middle) * (1.0 - rel_prop_begin) * N points.

    If rel_frac_begin is instead a float inside the interval 0.0 < rel_frac_begin < 1.0:

    • in x_min ≤ x ≤ x_start there are around (1.0 - frac_middle) * rel_frac_begin * N points;
    • in x_start ≤ x ≤ x_stop there are around frac_middle * N points;
    • in x_stop ≤ x ≤ x_max there are around (1.0 - frac_middle) * (1.0 - rel_frac_begin) * N points.

    frac_middle is then the fraction of the N points that is inside the MIDDLE INTERVAL, while rel_frac_begin is the one inside the LEFT INTERVAL COMPARED TO THE MASKED TOTAL ONE. If ass::Bool is set to false the assert checks on the input data will not be performed.

    source
    + N::Int = 100, ass::Bool = true)

    Return a vector of N+3 points inside the interval x_min ≤ x ≤ x_max linearly distributed with three different sampling, depending on the values of frac_middle and rel_frac_begin.

    If rel_frac_begin == nothing, defining the relative size of the segment x_min ≤ x ≤ x_start compared to the "masked one" x_min ≤ x ≤ x_start || x_stop ≤ x ≤ x_max as rel_prop_begin = (x_start - x_min) / (x_max - x_min - x_stop + x_start):

    • in x_min ≤ x ≤ x_start there are around (1.0 - frac_middle) * rel_prop_begin * N points;
    • in x_start ≤ x ≤ x_stop there are around frac_middle * N points;
    • in x_stop ≤ x ≤ x_max there are around (1.0 - frac_middle) * (1.0 - rel_prop_begin) * N points.

    If rel_frac_begin is instead a float inside the interval 0.0 < rel_frac_begin < 1.0:

    • in x_min ≤ x ≤ x_start there are around (1.0 - frac_middle) * rel_frac_begin * N points;
    • in x_start ≤ x ≤ x_stop there are around frac_middle * N points;
    • in x_stop ≤ x ≤ x_max there are around (1.0 - frac_middle) * (1.0 - rel_frac_begin) * N points.

    frac_middle is then the fraction of the N points that is inside the MIDDLE INTERVAL, while rel_frac_begin is the one inside the LEFT INTERVAL COMPARED TO THE MASKED TOTAL ONE. If ass::Bool is set to false the assert checks on the input data will not be performed.

    source
    diff --git a/dev/PNG/index.html b/dev/PNG/index.html index 5ed71dd7..f7f8fd7a 100644 --- a/dev/PNG/index.html +++ b/dev/PNG/index.html @@ -1,78 +1,78 @@ -implication on PNG · GaPSE.jl

    The implications on the local Primordial Non-Gaussianities

    GaPSE.TFType
     TF(
    -      left_value::Float64
    -      left::Float64
    +implication on PNG · GaPSE.jl

    The implications on the local Primordial Non-Gaussianities

    GaPSE.TFType
    TF(
    +    left_value::Float64
    +    left::Float64
     
    -      spline::Dierckx.Spline1D
    +    spline::Dierckx.Spline1D
     
    -      r_si::Float64
    -      r_b::Float64
    -      r_a::Float64
    -      right::Float64
    -      )

    Contains all the information useful in order to return the Transfer Function value from:

    • a spline inside the interval left ≤ x ≤ right
    • the associated power law for x > right (with "right" coefficients r_si, r_b and r_a)
    • the associated constant left value left_value for x < left

    Arguments

    • left_value::Float64 : the constant value that must be returned in case x < left.

    • left::Float64 : the break between the left power-law (for x <left) and the spline (for x ≥ left); its value is the xs[begin] one.

    • spline::Dierckx.Spline1D : spline that interpolates between the real values of the integral calculated inside the range left ≤ x ≤ right

    • right::Float64 : the break between the right power-law (for x ≥ left) and the spline (for x ≤ right); its value is the xs[end] one.

    • r_si, r_b, r_a :: Float64 : coefficient for the spurious power-law $y = f(x) = a + b \, x^s$ for the RIGHT edge; when an input value x > right is given, the returned one is obtained from power_law with this coefficients ( where, of course, r_si is the exponent, r_bthe coefficient andr_athe spurious adding constant). NOTE: for numerical issues, the "pure" power-lawy = f(x) = b + x^s` should be used.

    Constructors

    TF(ks, Tks) : from a set of (ks, Tks) pairs, take the mean of the first 10 as left value and fit with power_law_from_data the last 15.

    See also: power_law_from_data

    source
    GaPSE.α_biasFunction
     α_bias(k, tf::TF; bf=1.0, D=1.0, Ω_M0=0.29992)

    Return the coefficient $\alpha_{\rm bias}$ that relates the Non-Gaussian density fluctiations $\delta_{\rm NG}$ and the Non-Gaussian gravitational potential $\Phi_{\rm NG}$ in Fourier space:

    \[\delta_{\rm NG}(k) = \alpha(k, z) \, \Phi_{\rm NG}(k) \; \; , \quad + r_si::Float64 + r_b::Float64 + r_a::Float64 + right::Float64 + )

    Contains all the information useful in order to return the Transfer Function value from:

    • a spline inside the interval left ≤ x ≤ right
    • the associated power law for x > right (with "right" coefficients r_si, r_b and r_a)
    • the associated constant left value left_value for x < left

    Arguments

    • left_value::Float64 : the constant value that must be returned in case x < left.

    • left::Float64 : the break between the left power-law (for x <left) and the spline (for x ≥ left); its value is the xs[begin] one.

    • spline::Dierckx.Spline1D : spline that interpolates between the real values of the integral calculated inside the range left ≤ x ≤ right

    • right::Float64 : the break between the right power-law (for x ≥ left) and the spline (for x ≤ right); its value is the xs[end] one.

    • r_si, r_b, r_a :: Float64 : coefficient for the spurious power-law $y = f(x) = a + b \, x^s$ for the RIGHT edge; when an input value x > right is given, the returned one is obtained from power_law with this coefficients ( where, of course, r_si is the exponent, r_bthe coefficient andr_athe spurious adding constant). NOTE: for numerical issues, the "pure" power-lawy = f(x) = b + x^s` should be used.

    Constructors

    TF(ks, Tks) : from a set of (ks, Tks) pairs, take the mean of the first 10 as left value and fit with power_law_from_data the last 15.

    See also: power_law_from_data

    source
    GaPSE.α_biasFunction
    α_bias(k, tf::TF; bf=1.0, D=1.0, Ω_M0=0.29992)

    Return the coefficient $\alpha_{\rm bias}$ that relates the Non-Gaussian density fluctiations $\delta_{\rm NG}$ and the Non-Gaussian gravitational potential $\Phi_{\rm NG}$ in Fourier space:

    \[\delta_{\rm NG}(k) = \alpha(k, z) \, \Phi_{\rm NG}(k) \; \; , \quad \alpha(k, z) = \frac{2}{3} \frac{k^2 T_m(k) D(z)}{\Omega_{\mathrm{M}0}} \left(\frac{c}{H_0}\right)^2 -\; \; , \quad \; \alpha_{\rm bias} = \frac{b_{\phi} f_{\rm NL}}{\alpha(k, z)} \; .\]

    • bf=1.0 : value of the degenerate product $b_{\phi} f_{\rm NL}$.
    • D = 1.0 : value of the linear growth factor $D$ at present day; inside this function, it is multiplied for a constant $q$ in order to get $q \, D =$

    See also: TF

    source
    GaPSE.IntegralIPSalphaType
     IntegralIPSalpha(
    -      l_si::Float64
    -      l_b::Float64
    -      l_a::Float64
    -      left::Float64
    +\; \; ,  \quad \; \alpha_{\rm bias} = \frac{b_{\phi} f_{\rm NL}}{\alpha(k, z)} \; .\]

    • bf=1.0 : value of the degenerate product $b_{\phi} f_{\rm NL}$.
    • D = 1.0 : value of the linear growth factor $D$ at present day; inside this function, it is multiplied for a constant $q = 0.779017$ in order to normalize $D(z)$ to 1/(1+z) in matter domination, i.e. such that $q \, D(z) \, (1+z) = 1$ at $z=20$

    See also: TF

    source
    GaPSE.IntegralIPSalphaType
    IntegralIPSalpha(
    +    l_si::Float64
    +    l_b::Float64
    +    l_a::Float64
    +    left::Float64
     
    -      spline::Dierckx.Spline1D
    +    spline::Dierckx.Spline1D
     
    -      r_si::Float64
    -      r_b::Float64
    -      r_a::Float64
    -      right::Float64
    - )

    Contains all the information useful in order to return the value of the integral of the Input Power Spectrum weighted with the α_bias function. In other words, return this expression:

    \[\int_0^\infty \frac{\mathrm{d} q}{2 \pi^2} \, q^2 \, + r_si::Float64 + r_b::Float64 + r_a::Float64 + right::Float64 +)

    Contains all the information useful in order to return the value of the integral of the Input Power Spectrum weighted with the α_bias function. In other words, return this expression:

    \[\int_0^\infty \frac{\mathrm{d} q}{2 \pi^2} \, q^2 \, \frac{j_\ell(qs)}{(qs)^n} \, P(q) \, \alpha_{\mathrm{bias}} \; ,\]

    where $P(q)$ is the Input Power Spectrum and

    \[\delta_{\rm NG}(k) = \alpha(k, z) \, \Phi_{\rm NG}(k) \; \; , \quad \alpha(k, z) = \frac{2}{3} \frac{k^2 T_m(k) D(z)}{\Omega_{\mathrm{M}0}} \left(\frac{c}{H_0}\right)^2 -\; \; , \quad \; \alpha_{\rm bias} = \frac{b_{\phi} f_{\rm NL}}{\alpha(k, z)} \; .\]

    Arguments

    • l_si, l_b, l_a ::Float64 : coefficient for the spurious power-law $y = f(x) = a + b \, x^s$ for the LEFT edge; when an input value x < left is given, the returned one is obtained from power_law with this coefficients ( where, of course, l_si is the exponent, l_b the coefficient and l_a the spurious adding constant).

    • left::Float64 : the break between the left power-law (for x < left) and the spline (for x ≥ left); its value is the fit_min of the used constructor.

    • spline::Dierckx.Spline1D : spline that interpolates between the real values of the integral calculated inside the range left ≤ x ≤ right

    • right::Float64 : the break between the right power-law (for x > right) and the spline (for x ≤ right); its value is the fit_max of the used constructor.

    • r_si, r_b, r_a ::Float64 : coefficient for the spurious power-law $y = f(x) = a + b \, x^s$ for the RIGHT edge; when an input value x > right is given, the returned one is obtained from power_law with this coefficients ( where, of course, r_si is the exponent, r_b the coefficient and r_a the spurious adding constant). NOTE: for numerical issues, only the "pure" power-law $y = f(x) = b + x^s$ can be used. In other words, it always set r_a = 0.0.

    Constructors

     IntegralIPSalpha(tf::TF, cosmo::Cosmology, l, n=0; D=nothing, bf=1.0,
    -      N::Int=1024, kmin=1e-6, kmax=1e4, s0=1e-4,
    -      fit_left_min=nothing, fit_left_max=nothing, p0_left=nothing,
    -      fit_right_min=nothing, fit_right_max=nothing, p0_right=nothing)

    The integral obtained with this constructor is calculated through xicalc, and expanded with power-laws at the edges.

    • tf::TF: the struct that contains all the data concerning the Transfer Function.

    • cosmo::Cosmology : cosmology to be used in this computation

    • l : degree of the spherical Bessel function to be used.

    • n=0 : degree of the exponent for the denominator. The interesting case is only the default value $0$.

    • D = nothing : value of the linear growth factor $D$ to be used. If nothing, it will be internally set as $D(z_{\mathrm{eff}})$, where $z_{\mathrm{eff}}$ is the effective redshift for the input cosmology.

    • bf = 1.0 : value of the degenerate product $b_{\phi} f_{\rm NL}$.

    • kmin = 1e-6, kmax = 1e4, s0 = 1e-4 : values to be passed to xicalc for the integration

    • fit_left_min = 2.0, fit_left_max = 10.0 : the limits (min and max) where the integral must be fitted with a power law, for small distances. This operation is necessary, because xicalc, in this context, gives wrong results for too small input distance s; nevertheless, this integral has fixed power-law trends for $s \rightarrow 0$, so this approach gives good results.

    • p0_left = nothing : vector with the initial values for the left power-law fitting; its length must be 2 (if you want to fit with a pure power-law $y = f(x) = b x^s$, so only l_si and l_b are matter of concern) or 3 (if you want to fit with a spurious power-law $y = f(x) = a + b x^s$, so you are also interested in l_a); if nothing, it will be automatically set p0 = [-1.0, 1.0].

    • fit_right_min = nothing, fit_right_max = nothing : the limits (min and max) where the integral must be fitted with a power law, for high distances. This integral has fixed power-law trends for $s \rightarrow \infty$, so this approach gives good results. If nothing, the last 15 points returned from xicalc are used for this fitting. NOTE: for numerical issues, only the "pure" power-law $y = f(x) = b + x^s$ can be used.

    • p0_right = nothing : vector with the initial values for the left power-law fitting; its length must be 2 (to fit with a pure power-law $y = f(x) = b x^s$, so only r_si and r_b are matter of concern); if nothing, it will be automatically set p0 = [-4.0, 1.0].

    All the power-law fitting (both "pure" and spurious) are made through the local function power_law_from_data.

    See also: power_law_from_data, power_law, Cosmology, α_bias

    source
    GaPSE.CosmoPNGParamsType
    CosmoParams(
    -      D::Float64 
    -      bf::Float64
    +\; \; ,  \quad \; \alpha_{\rm bias} = \frac{b_{\phi} f_{\rm NL}}{\alpha(k, z)} \; .\]

    Arguments

    • l_si, l_b, l_a ::Float64 : coefficient for the spurious power-law $y = f(x) = a + b \, x^s$ for the LEFT edge; when an input value x < left is given, the returned one is obtained from power_law with this coefficients ( where, of course, l_si is the exponent, l_b the coefficient and l_a the spurious adding constant).

    • left::Float64 : the break between the left power-law (for x < left) and the spline (for x ≥ left); its value is the fit_min of the used constructor.

    • spline::Dierckx.Spline1D : spline that interpolates between the real values of the integral calculated inside the range left ≤ x ≤ right

    • right::Float64 : the break between the right power-law (for x > right) and the spline (for x ≤ right); its value is the fit_max of the used constructor.

    • r_si, r_b, r_a ::Float64 : coefficient for the spurious power-law $y = f(x) = a + b \, x^s$ for the RIGHT edge; when an input value x > right is given, the returned one is obtained from power_law with this coefficients ( where, of course, r_si is the exponent, r_b the coefficient and r_a the spurious adding constant). NOTE: for numerical issues, only the "pure" power-law $y = f(x) = b + x^s$ can be used. In other words, it always set r_a = 0.0.

    Constructors

    IntegralIPSalpha(tf::TF, cosmo::Cosmology, l, n=0; D=nothing, bf=1.0,
    +    N::Int=1024, kmin=1e-6, kmax=1e4, s0=1e-4,
    +    fit_left_min=nothing, fit_left_max=nothing, p0_left=nothing,
    +    fit_right_min=nothing, fit_right_max=nothing, p0_right=nothing)

    The integral obtained with this constructor is calculated through xicalc, and expanded with power-laws at the edges.

    • tf::TF: the struct that contains all the data concerning the Transfer Function.

    • cosmo::Cosmology : cosmology to be used in this computation

    • l : degree of the spherical Bessel function to be used.

    • n=0 : degree of the exponent for the denominator. The interesting case is only the default value $0$.

    • D = nothing : value of the linear growth factor $D$ to be used. If nothing, it will be internally set as $D(z_{\mathrm{eff}})$, where $z_{\mathrm{eff}}$ is the effective redshift for the input cosmology.

    • bf = 1.0 : value of the degenerate product $b_{\phi} f_{\rm NL}$.

    • kmin = 1e-6, kmax = 1e4, s0 = 1e-4 : values to be passed to xicalc for the integration

    • fit_left_min = 2.0, fit_left_max = 10.0 : the limits (min and max) where the integral must be fitted with a power law, for small distances. This operation is necessary, because xicalc, in this context, gives wrong results for too small input distance s; nevertheless, this integral has fixed power-law trends for $s \rightarrow 0$, so this approach gives good results.

    • p0_left = nothing : vector with the initial values for the left power-law fitting; its length must be 2 (if you want to fit with a pure power-law $y = f(x) = b x^s$, so only l_si and l_b are matter of concern) or 3 (if you want to fit with a spurious power-law $y = f(x) = a + b x^s$, so you are also interested in l_a); if nothing, it will be automatically set p0 = [-1.0, 1.0].

    • fit_right_min = nothing, fit_right_max = nothing : the limits (min and max) where the integral must be fitted with a power law, for high distances. This integral has fixed power-law trends for $s \rightarrow \infty$, so this approach gives good results. If nothing, the last 15 points returned from xicalc are used for this fitting. NOTE: for numerical issues, only the "pure" power-law $y = f(x) = b + x^s$ can be used.

    • p0_right = nothing : vector with the initial values for the left power-law fitting; its length must be 2 (to fit with a pure power-law $y = f(x) = b x^s$, so only r_si and r_b are matter of concern); if nothing, it will be automatically set p0 = [-4.0, 1.0].

    All the power-law fitting (both "pure" and spurious) are made through the local function power_law_from_data.

    See also: power_law_from_data, power_law, Cosmology, α_bias

    source
    GaPSE.CosmoPNGParamsType
    CosmoParams(
    +        D::Float64 
    +        bf::Float64
     
    -      flm_0::Float64 
    -      flM_0::Float64 
    -      kmin_0::Float64 
    -      kmax_0::Float64  
    -      N_0::Int
    +        flm_0::Float64 
    +        flM_0::Float64 
    +        kmin_0::Float64 
    +        kmax_0::Float64  
    +        N_0::Int
     
    -      flm_2::Float64  
    -      flM_2::Float64 
    -      kmin_2::Float64 
    -      kmax_2::Float64  
    -      N_2::Int
    - )

    Struct that contains all the parameters and options that are matter of concerns for the CosmoPNG we are interested in.

    Arguments

    • D : linear growth factor D to be used for the α_bias function.

    • bf : value of the degenerate product $b_{\phi} f_{\rm NL}$.

    • kmin_0, kmax_0, s00: values to be passed toxicalcfor the integration made byIntegralIPSalphaof the term`J0``

    • flm_0, flM_0 : the limits (min and max) where the integral made by IntegralIPSalpha of the term $J_0$ must be fitted with a power law, for small distances. This operation is necessary, because xicalc, in this context, gives wrong results for too small input distance s; nevertheless, this integral has fixed power-law trends for $s \rightarrow 0$, so this approach gives good results.

    • kmin_2, kmax_2, s02,flm2,flM2: same as the previous terms, but for the integral`J2``

    Constructors

     function CosmoPNGParams(D; 
    -      bf = 1.0,
    -      flm_0 = 5e-2, flM_0 = 1e-1, s0_0 = 1e-4,
    -      kmin_0 = 1e-6, kmax_0 = 1e4, N_0::Int = 1024,
    -      flm_2 = 5e-1, flM_2 = 1e0, s0_2 = 1e-4,
    -      kmin_2 = 1e-6, kmax_2 = 1e4, N_2::Int = 1024,
    -      )

    The associations are trivials. The only thing to be put attention on is that D is a MANDATORY argument, while all the other ones are keyword arguments with a default value. You should use:

    pngparams = CosmoPNGParams(cosmo.D_of_s(cosmo.s_eff); ...)

    where cosmo::Cosmology is the Cosmology you are interested in and s_eff is the effective comoving distance (stored on cosmo).

    See also: Cosmology, CosmoPNG, IntegralIPSalpha, α_bias

    source
    GaPSE.CosmoPNGType
    CosmoPNG(
    -      params::CosmoPNGParams
    -      tf::TF
    -      file_TF::String
    +        flm_2::Float64  
    +        flM_2::Float64 
    +        kmin_2::Float64 
    +        kmax_2::Float64  
    +        N_2::Int
    +    )

    Struct that contains all the parameters and options that are matter of concerns for the CosmoPNG we are interested in.

    Arguments

    • D : linear growth factor D to be used for the α_bias function.

    • bf : value of the degenerate product $b_{\phi} f_{\rm NL}$.

    • kmin_0, kmax_0, s00: values to be passed toxicalcfor the integration made byIntegralIPSalphaof the term`J0``

    • flm_0, flM_0 : the limits (min and max) where the integral made by IntegralIPSalpha of the term $J_0$ must be fitted with a power law, for small distances. This operation is necessary, because xicalc, in this context, gives wrong results for too small input distance s; nevertheless, this integral has fixed power-law trends for $s \rightarrow 0$, so this approach gives good results.

    • kmin_2, kmax_2, s02,flm2,flM2: same as the previous terms, but for the integral`J2``

    Constructors

    function CosmoPNGParams(D; 
    +    bf = 1.0,
    +    flm_0 = 5e-2, flM_0 = 1e-1, s0_0 = 1e-4,
    +    kmin_0 = 1e-6, kmax_0 = 1e4, N_0::Int = 1024,
    +    flm_2 = 5e-1, flM_2 = 1e0, s0_2 = 1e-4,
    +    kmin_2 = 1e-6, kmax_2 = 1e4, N_2::Int = 1024,
    +    )

    The associations are trivials. The only thing to be put attention on is that D is a MANDATORY argument, while all the other ones are keyword arguments with a default value. You should use:

    pngparams = CosmoPNGParams(cosmo.D_of_s(cosmo.s_eff); ...)

    where cosmo::Cosmology is the Cosmology you are interested in and s_eff is the effective comoving distance (stored on cosmo).

    See also: Cosmology, CosmoPNG, IntegralIPSalpha, α_bias

    source
    GaPSE.CosmoPNGType
    CosmoPNG(
    +    params::CosmoPNGParams
    +    tf::TF
    +    file_TF::String
     
    -      J0::IntegralIPSalpha
    -      J2::IntegralIPSalpha
    -      )

    Struct that contains all the information that may be used for the Correlation Function computations of the Primordial Non-Gaussianities (PNG) signal.

    Arguments

    • params::CosmoPNGParams : parameters to be used for this Cosmology. See the docstring of CosmoParams for more information on the possible inputs.

    • tf::TF : transfer function to be used.

    • file_TF::String : name of the file where the transfer function was read.

    • J0 and J2::IntegralIPSalpha : integrals with the following form:

      \[J_\ell = \int_0^\infty \frac{\mathrm{d} q}{2 \pi^2} \, q^2 \, + J0::IntegralIPSalpha + J2::IntegralIPSalpha + )

      Struct that contains all the information that may be used for the Correlation Function computations of the Primordial Non-Gaussianities (PNG) signal.

      Arguments

      • params::CosmoPNGParams : parameters to be used for this Cosmology. See the docstring of CosmoParams for more information on the possible inputs.

      • tf::TF : transfer function to be used.

      • file_TF::String : name of the file where the transfer function was read.

      • J0 and J2::IntegralIPSalpha : integrals with the following form:

        \[J_\ell = \int_0^\infty \frac{\mathrm{d} q}{2 \pi^2} \, q^2 \, j_\ell(qs) \, P(q) \, \alpha_{\mathrm{bias}} \; ,\]

        where $P(q)$ is the Input Power Spectrum and

        \[\delta_{\rm NG}(k) = \alpha(k, z) \, \Phi_{\rm NG}(k) \; \; , \quad \alpha(k, z) = \frac{2}{3} \frac{k^2 T_m(k) D(z)}{\Omega_{\mathrm{M}0}} \left(\frac{c}{H_0}\right)^2 -\; \; , \quad \; \alpha_{\rm bias} = \frac{b_{\phi} f_{\rm NL}}{\alpha(k, z)} \; .\]

      Constructor

       CosmoPNG(
      -      pngparams::CosmoPNGParams,
      -      cosmo::Cosmology, file_TF::String;
      -      comments::Bool=true
      - )
      • pngparams::CosmoParams : parameters to be used for this Cosmology. See the docstring of CosmoParams for more information on the possible inputs.

      • cosmo::Cosmology : cosmology to be considered, both in terms od Input Power Spectrum and of cosmological parameters.

      • file_TF::String : name of the file where the Transfer Function to be used is stored.

      • comments::Bool=true : the file_TF file contains comments at the beginning?

      See also: TF, IntegralIPSalpha, Cosmology

    source
    GaPSE.ξ_S_L0Function
    ξ_S_L0(P::Point, cosmo::Cosmology, cosmopng::CosmoPNG)
    -ξ_S_L0(s1, cosmo::Cosmology, cosmopng::CosmoPNG)

    Return the value of the Two-Point Correlation Function (TPCF) monopole of the signal (S) of the local Primordial Non-Gaussianities (PNG) (for the given cosmo::Cosmology and cosmopng::CosmoPNG). In the first method, you should pass the Point where to evaluate that function, while in the second (that internally recalls the first) you must provide the comoving distance s. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of such TPCF monopole is the following:

    \[\xi^{\mathrm{S}}_0(s) = 2 \left( b + \frac{1}{3}f(z_{\mathrm{eff}})\right) +\; \; , \quad \; \alpha_{\rm bias} = \frac{b_{\phi} f_{\rm NL}}{\alpha(k, z)} \; .\]

    Constructor

    CosmoPNG(
    +    pngparams::CosmoPNGParams,
    +    cosmo::Cosmology, file_TF::String;
    +    comments::Bool=true
    +)
    • pngparams::CosmoParams : parameters to be used for this Cosmology. See the docstring of CosmoParams for more information on the possible inputs.

    • cosmo::Cosmology : cosmology to be considered, both in terms od Input Power Spectrum and of cosmological parameters.

    • file_TF::String : name of the file where the Transfer Function to be used is stored.

    • comments::Bool=true : the file_TF file contains comments at the beginning?

    See also: TF, IntegralIPSalpha, Cosmology

    source
    GaPSE.ξ_S_L0Function
    ξ_S_L0(P::Point, cosmo::Cosmology, cosmopng::CosmoPNG; b=nothing, sp::Int64=1)
    +ξ_S_L0(s1, cosmo::Cosmology, cosmopng::CosmoPNG; kwargs...)

    Return the value of the Two-Point Correlation Function (TPCF) monopole of the signal (S) of the local Primordial Non-Gaussianities (PNG) (for the given cosmo::Cosmology and cosmopng::CosmoPNG). In the first method, you should pass the Point where to evaluate that function, while in the second (that internally recalls the first) you must provide the comoving distance s. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of such TPCF monopole is the following:

    \[\xi^{\mathrm{S}}_0(s) = 2 \left( b + \frac{1}{3}f(z_{\mathrm{eff}})\right) \, D^2(z_{\mathrm{eff}}) \, J_0(s)\]

    where:

    • $b$ is the galaxy bias (stored in cosmo)
    • $z$ is the redshift associated to the comoving distance $s$ in this cosmology
    • $s_{\mathrm{eff}}$ is the effective comoving distance stored in cosmo (and $z_{\mathrm{eff}}$ its associated effective redshift in that cosmology)
    • $D$ the linear growth factor and $f$ the linear growth rate (whose splines are stored in cosmo)
    • $J_\ell$ (stored in cosmopng) is defined as

      \[J_\ell(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} \, q^2 \, P(q) \, j_\ell(qs) \, \alpha_{\mathrm{bias}}(q,z)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo), $j_\ell$ as spherical Bessel function of order $\ell$ and

      \[\alpha_{\rm bias}(q,z) = \frac{b_{\phi} f_{\rm NL}}{\alpha(q, z)} \quad , \quad -\alpha(q, z) = \frac{2}{3} \frac{q^2 T_m(q) D(z)}{\Omega_{\mathrm{M}0}} \left(\frac{c}{H_0}\right)^2\]

      with $b_{\phi}f_{\rm NL}$ is stored in cosmopng. Check the documentation of α_bias and CosmoPNG for more information.

    See also: Point, Cosmology, CosmoPNG, α_bias, ξ_S_L2, ξ_S, integrand_ξ_S_multipole, ξ_S_multipole map_ξ_S_multipole, print_map_ξ_S_multipole

    source
    GaPSE.ξ_S_L2Function
    ξ_S_L2(P::Point, cosmo::Cosmology, cosmopng::CosmoPNG)
    -ξ_S_L2(s1, cosmo::Cosmology, cosmopng::CosmoPNG)

    Return the value of the Two-Point Correlation Function (TPCF) quadrupole of the signal (S) of the local Primordial Non-Gaussianities (PNG) (for the given cosmo::Cosmology and cosmopng::CosmoPNG). In the first method, you should pass the Point where to evaluate that function, while in the second (that internally recalls the first) you must provide the comoving distance s. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of such TPCF monopole is the following:

    \[\xi^{\mathrm{S}}_2(s) = - \frac{4}{3} \, f(z_{\mathrm{eff}}) +\alpha(q, z) = \frac{2}{3} \frac{q^2 T_m(q) D(z)}{\Omega_{\mathrm{M}0}} \left(\frac{c}{H_0}\right)^2\]

    with $b_{\phi}f_{\rm NL}$ is stored in cosmopng. Check the documentation of α_bias and CosmoPNG for more information.

    Keyword arguments

    • b = nothing : galaxy bias value to be considered in the computation; if set to nothing, its value is inferred from the other keyword argument sp;

    • sp::Int64=1 : galaxy type to be considered between the two species stored in cosmo: it can be either 1 or 2, and the corresponding set of galaxy, magnification and evolutionary biases stored in cosmo are considered; in case b is set to a value, this parameter is ignored.

    See also: Point, Cosmology, CosmoPNG, α_bias, ξ_S_L2, ξ_S, integrand_ξ_S_multipole, ξ_S_multipole map_ξ_S_multipole, print_map_ξ_S_multipole

    source
    GaPSE.ξ_S_L2Function
    ξ_S_L2(P::Point, cosmo::Cosmology, cosmopng::CosmoPNG; b=nothing, sp::Int64=1)
    +ξ_S_L2(s1, cosmo::Cosmology, cosmopng::CosmoPNG; kwargs...)

    Return the value of the Two-Point Correlation Function (TPCF) quadrupole of the signal (S) of the local Primordial Non-Gaussianities (PNG) (for the given cosmo::Cosmology and cosmopng::CosmoPNG). In the first method, you should pass the Point where to evaluate that function, while in the second (that internally recalls the first) you must provide the comoving distance s. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of such TPCF monopole is the following:

    \[\xi^{\mathrm{S}}_2(s) = - \frac{4}{3} \, f(z_{\mathrm{eff}}) \, D^2(z_{\mathrm{eff}}) \, J_2(s)\]

    where:

    • $b$ is the galaxy bias (stored in cosmo)
    • $z$ is the redshift associated to the comoving distance $s$ in this cosmology
    • $s_{\mathrm{eff}}$ is the effective comoving distance stored in cosmo (and $z_{\mathrm{eff}}$ its associated effective redshift in that cosmology)
    • $D$ the linear growth factor and $f$ the linear growth rate (whose splines are stored in cosmo)
    • $J_\ell$ (stored in cosmopng) is defined as

      \[J_\ell(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} \, q^2 \, P(q) \, j_\ell(qs) \, \alpha_{\mathrm{bias}}(q,z)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo), $j_\ell$ as spherical Bessel function of order $\ell$ and

      \[\alpha_{\rm bias}(q,z) = \frac{b_{\phi} f_{\rm NL}}{\alpha(q, z)} \quad , \quad -\alpha(q, z) = \frac{2}{3} \frac{q^2 T_m(q) D(z)}{\Omega_{\mathrm{M}0}} \left(\frac{c}{H_0}\right)^2\]

      with $b_{\phi}f_{\rm NL}$ is stored in cosmopng. Check the documentation of α_bias and CosmoPNG for more information.

    See also: Point, Cosmology, CosmoPNG, α_bias, ξ_S_L0, ξ_S, integrand_ξ_S_multipole, ξ_S_multipole map_ξ_S_multipole, print_map_ξ_S_multipole

    source
    GaPSE.ξ_SFunction
    ξ_S(s, μ, cosmo::Cosmology, cosmopng::CosmoPNG)

    Return the value of the Two-Point Correlation Function (TPCF) of the signal (S) of the local Primordial Non-Gaussianities (PNG) in the given comoving distance s and cosine value for the Legendre polynomials μ (for the given cosmo::Cosmology and cosmopng::CosmoPNG). We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of such TPCF monopole is the following:

    \[\begin{split} +\alpha(q, z) = \frac{2}{3} \frac{q^2 T_m(q) D(z)}{\Omega_{\mathrm{M}0}} \left(\frac{c}{H_0}\right)^2\]

    with $b_{\phi}f_{\rm NL}$ is stored in cosmopng. Check the documentation of α_bias and CosmoPNG for more information.

    Keyword arguments

    • b = nothing : galaxy bias value to be considered in the computation; if set to nothing, its value is inferred from the other keyword argument sp;

    • sp::Int64=1 : galaxy type to be considered between the two species stored in cosmo: it can be either 1 or 2, and the corresponding set of galaxy, magnification and evolutionary biases stored in cosmo are considered; in case b is set to a value, this parameter is ignored.

    See also: Point, Cosmology, CosmoPNG, α_bias, ξ_S_L0, ξ_S, integrand_ξ_S_multipole, ξ_S_multipole map_ξ_S_multipole, print_map_ξ_S_multipole

    source
    GaPSE.ξ_SFunction
    ξ_S(s, μ, cosmo::Cosmology, cosmopng::CosmoPNG; b=nothing, sp::Int64=1)

    Return the value of the Two-Point Correlation Function (TPCF) of the signal (S) of the local Primordial Non-Gaussianities (PNG) in the given comoving distance s and cosine value for the Legendre polynomials μ (for the given cosmo::Cosmology and cosmopng::CosmoPNG). We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of such TPCF monopole is the following:

    \[\begin{split} \xi^{\mathrm{S}}(s&,\mu) = \xi^{\mathrm{S}}_0(s) + \xi^{\mathrm{S}}_2(s) \mathcal{L}_2(\mu) \\ &\xi^{\mathrm{S}}_0(s) = 2 \left( b + \frac{1}{3}f(z_{\mathrm{eff}})\right) @@ -81,51 +81,52 @@ \, D^2(z_{\mathrm{eff}}) \, J_2(s) \end{split}\]

    where:

    • $b$ is the galaxy bias (stored in cosmo)
    • $z$ is the redshift associated to the comoving distance $s$ in this cosmology
    • $s_{\mathrm{eff}}$ is the effective comoving distance stored in cosmo (and $z_{\mathrm{eff}}$ its associated effective redshift in that cosmology)
    • $D$ the linear growth factor and $f$ the linear growth rate (whose splines are stored in cosmo)
    • $\mathcal{L}_\ell$ the Legendre polynomial of order $\ell$
    • $J_\ell$ (stored in cosmopng) is defined as

      \[J_\ell(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} \, q^2 \, P(q) \, j_\ell(qs) \, \alpha_{\mathrm{bias}}(q,z)\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ (stored in cosmo), $j_\ell$ as spherical Bessel function of order $\ell$ and

      \[\alpha_{\rm bias}(q,z) = \frac{b_{\phi} f_{\rm NL}}{\alpha(q, z)} \quad , \quad -\alpha(q, z) = \frac{2}{3} \frac{q^2 T_m(q) D(z)}{\Omega_{\mathrm{M}0}} \left(\frac{c}{H_0}\right)^2\]

      with $b_{\phi}f_{\rm NL}$ is stored in cosmopng. Check the documentation of α_bias and CosmoPNG for more information.

    See also: Point, Cosmology, CosmoPNG, α_bias, ξ_S_L0, ξ_S_L2, integrand_ξ_S_multipole, ξ_S_multipole map_ξ_S_multipole, print_map_ξ_S_multipole

    source
    GaPSE.integrand_ξ_S_multipoleFunction
     integrand_ξ_S_multipole(s, μ, cosmo::Cosmology, cosmopng::CosmoPNG;
    -      L::Int=0, use_windows::Bool=true)

    Return the integrand on $\mu = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}$ of the Two-Point Correlation Function (TPCF) concerning the signal (S) of the local Primordial Non-Gaussianities (PNG), i.e. the following function $f(s, \mu)$:

    \[ f_L(s, \mu) = \xi^{\mathrm{S}} \left(s, \mu\right) +\alpha(q, z) = \frac{2}{3} \frac{q^2 T_m(q) D(z)}{\Omega_{\mathrm{M}0}} \left(\frac{c}{H_0}\right)^2\]

    with $b_{\phi}f_{\rm NL}$ is stored in cosmopng. Check the documentation of α_bias and CosmoPNG for more information.

    Keyword arguments

    • b = nothing : galaxy bias value to be considered in the computation; if set to nothing, its value is inferred from the other keyword argument sp;

    • sp::Int64=1 : galaxy type to be considered between the two species stored in cosmo: it can be either 1 or 2, and the corresponding set of galaxy, magnification and evolutionary biases stored in cosmo are considered; in case b is set to a value, this parameter is ignored.

    See also: Point, Cosmology, CosmoPNG, α_bias, ξ_S_L0, ξ_S_L2, integrand_ξ_S_multipole, ξ_S_multipole map_ξ_S_multipole, print_map_ξ_S_multipole

    source
    GaPSE.integrand_ξ_S_multipoleFunction
    integrand_ξ_S_multipole(s, μ, cosmo::Cosmology, cosmopng::CosmoPNG;
    +    L::Int=0, use_windows::Bool=true, b=nothing, sp::Int64=1 )::Float64

    Return the integrand on $\mu = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}$ of the Two-Point Correlation Function (TPCF) concerning the signal (S) of the local Primordial Non-Gaussianities (PNG), i.e. the following function $f(s, \mu)$:

    \[ f_L(s, \mu) = \xi^{\mathrm{S}} \left(s, \mu\right) \, \mathcal{L}_L(\mu) \, \times \begin{cases} \frac{1}{\mathcal{N}}\mathcal{F}(s, \mu) \quad \mathrm{use\_windows == true} \\ 1 \quad\quad \mathrm{use\_windows == false} - \end{cases}\]

    where:

    • $\xi^{\mathrm{S}}$ is the TPCF of the PNG signal, computed from ξ_S.
    • $\mathcal{L}_L(\mu)$ is the Legendre polynomial of order $L$
    • $\mathcal{F}(s, \mu)$ is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)
    • $\mathcal{N}$ is the integrated window function norm (check the documentation of WindowFIntegrated)

    Inputs

    • s: the comoving distance where must be evaluated the integral

    • μ: the cosine between s1 and s where must be evaluated the integral

    • cosmo::Cosmology: cosmology to be used in this computation

    • cosmopng::CosmoPNG: struct that contains all the information that may be used for the TPCF computations of the PNG signal.

    Optional arguments

    • L::Int = 0: order of the Legendre polynomial to be used

    • use_windows::Bool = false: tells if the integrand must consider $\mathcal{F}$ or not.

    See also:ξ_S, ξ_S_multipole, map_ξ_S_multipole, print_map_ξ_S_multipole WindowFIntegrated, Cosmology, CosmoPNG,

    source
    GaPSE.ξ_S_multipoleFunction
     ξ_S_multipole(
    -      s, cosmo::Cosmology, cosmopng::CosmoPNG;;
    -      L::Int = 0, use_windows::Bool = true,
    -      atol_quad::Float64 = 0.0,
    -      rtol_quad::Float64 = 1e-2
    -      enhancer::Float64 = 1e6 ) ::Float64

    Evaluate the multipole of order L of the Two-Point Correlation Function (TPCF) concerning the signal (S) of the local Primordial Non-Gaussianities (PNG), i.e. the following function $\xi^{\mathrm{S}} (s)$:

    \[ \xi^{\mathrm{S}} (s) = \frac{2 L + 1}{2} \int_{-1}^{+1} \mathrm{d}\mu \; + \end{cases}\]

    where:

    • $\xi^{\mathrm{S}}$ is the TPCF of the PNG signal, computed from ξ_S.
    • $\mathcal{L}_L(\mu)$ is the Legendre polynomial of order $L$
    • $\mathcal{F}(s, \mu)$ is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)
    • $\mathcal{N}$ is the integrated window function norm (check the documentation of WindowFIntegrated)

    Inputs

    • s: the comoving distance where must be evaluated the integral

    • μ: the cosine between s1 and s where must be evaluated the integral

    • cosmo::Cosmology: cosmology to be used in this computation

    • cosmopng::CosmoPNG: struct that contains all the information that may be used for the TPCF computations of the PNG signal.

    Keyword arguments

    • L::Int = 0: order of the Legendre polynomial to be used

    • use_windows::Bool = false: tells if the integrand must consider $\mathcal{F}$ or not.

    • b = nothing : galaxy bias value to be considered in the computation; if set to nothing, its value is inferred from the other keyword argument sp;

    • sp::Int64=1 : galaxy type to be considered between the two species stored in cosmo: it can be either 1 or 2, and the corresponding set of galaxy, magnification and evolutionary biases stored in cosmo are considered; in case b is set to a value, this parameter is ignored.

    See also:ξ_S, ξ_S_multipole, map_ξ_S_multipole, print_map_ξ_S_multipole WindowFIntegrated, Cosmology, CosmoPNG,

    source
    GaPSE.ξ_S_multipoleFunction
    ξ_S_multipole(
    +    s, cosmo::Cosmology, cosmopng::CosmoPNG;;
    +    L::Int = 0, use_windows::Bool = true,
    +    atol_quad::Float64 = 0.0,
    +    rtol_quad::Float64 = 1e-2
    +    enhancer::Float64 = 1e6,
    +    b=nothing, sp::Int64=1 ) ::Float64

    Evaluate the multipole of order L of the Two-Point Correlation Function (TPCF) concerning the signal (S) of the local Primordial Non-Gaussianities (PNG), i.e. the following function $\xi^{\mathrm{S}} (s)$:

    \[ \xi^{\mathrm{S}} (s) = \frac{2 L + 1}{2} \int_{-1}^{+1} \mathrm{d}\mu \; \xi^{\mathrm{S}} \left(s, \mu\right) \, \mathcal{L}_L(\mu) \, \times \begin{cases} \frac{1}{\mathcal{N}}\mathcal{F}(s, \mu) \quad \mathrm{use\_windows == true} \\ 1 \quad\quad \mathrm{use\_windows == false} - \end{cases}\]

    where:

    • $\xi^{\mathrm{S}}(s,\mu)$ is the TPCF of the PNG signal with the angular dependence, computed from ξ_S.
    • $\mathcal{L}_L(\mu)$ is the Legendre polynomial of order $L$
    • $\mathcal{F}(s, \mu)$ is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)
    • $\mathcal{N}$ is the integrated window function norm (check the documentation of WindowFIntegrated)

    The integration over $\mu$ is preformed through the Julia function quadgk from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.

    Inputs

    • s: the comoving distance where must be evaluated the integral

    • cosmo::Cosmology: cosmology to be used in this computation

    • cosmopng::CosmoPNG: struct that contains all the information that may be used for the TPCF computations of the PNG signal.

    Optional arguments

    • L::Int = 0: order of the Legendre polynomial to be used

    • use_windows::Bool = false: tells if the integrand must consider $\mathcal{F}$ or not.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    See also: ξ_S, integrand_ξ_S_multipole, map_ξ_S_multipole, print_map_ξ_S_multipole WindowFIntegrated, Cosmology, CosmoPNG,

    source
    GaPSE.map_ξ_S_multipoleFunction
     map_ξ_S_multipole(
    -      cosmo::Cosmology, cosmopng::CosmoPNG,
    -      ss = nothing;
    -      L::Int = 0, use_windows::Bool = true,
    -      atol_quad::Float64 = 0.0,
    -      rtol_quad::Float64 = 1e-2,
    -      enhancer::Float64 = 1e6,
    -      pr::Bool = true,
    -      N_log::Int = 1000,
    -      kwargs...) ::Tuple{Vector{Float64}, Vector{Float64}}

    Evaluate the multipole of order L of the Two-Point Correlation Function (TPCF) concerning the signal (S) of the local Primordial Non-Gaussianities (PNG), for all the comoving distance values stored inside ss. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log).

    The function evaluated is then the following $\xi^{\mathrm{S}} (s)$:

    \[ \xi^{\mathrm{S}} (s) = \frac{2 L + 1}{2} \int_{-1}^{+1} \mathrm{d}\mu \; + \end{cases}\]

    where:

    • $\xi^{\mathrm{S}}(s,\mu)$ is the TPCF of the PNG signal with the angular dependence, computed from ξ_S.
    • $\mathcal{L}_L(\mu)$ is the Legendre polynomial of order $L$
    • $\mathcal{F}(s, \mu)$ is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)
    • $\mathcal{N}$ is the integrated window function norm (check the documentation of WindowFIntegrated)

    The integration over $\mu$ is preformed through the Julia function quadgk from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.

    Inputs

    • s: the comoving distance where must be evaluated the integral

    • cosmo::Cosmology: cosmology to be used in this computation

    • cosmopng::CosmoPNG: struct that contains all the information that may be used for the TPCF computations of the PNG signal.

    Keyword arguments

    • L::Int = 0: order of the Legendre polynomial to be used

    • use_windows::Bool = false: tells if the integrand must consider $\mathcal{F}$ or not.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    • b = nothing : galaxy bias value to be considered in the computation; if set to nothing, its value is inferred from the other keyword argument sp;

    • sp::Int64=1 : galaxy type to be considered between the two species stored in cosmo: it can be either 1 or 2, and the corresponding set of galaxy, magnification and evolutionary biases stored in cosmo are considered; in case b is set to a value, this parameter is ignored.

    See also: ξ_S, integrand_ξ_S_multipole, map_ξ_S_multipole, print_map_ξ_S_multipole WindowFIntegrated, Cosmology, CosmoPNG,

    source
    GaPSE.map_ξ_S_multipoleFunction
    map_ξ_S_multipole(
    +    cosmo::Cosmology, cosmopng::CosmoPNG,
    +    ss = nothing;
    +    L::Int = 0, use_windows::Bool = true,
    +    atol_quad::Float64 = 0.0,
    +    rtol_quad::Float64 = 1e-2,
    +    enhancer::Float64 = 1e6,
    +    pr::Bool = true,
    +    N_log::Int = 1000,
    +    kwargs...) ::Tuple{Vector{Float64}, Vector{Float64}}

    Evaluate the multipole of order L of the Two-Point Correlation Function (TPCF) concerning the signal (S) of the local Primordial Non-Gaussianities (PNG), for all the comoving distance values stored inside ss. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log).

    The function evaluated is then the following $\xi^{\mathrm{S}} (s)$:

    \[ \xi^{\mathrm{S}} (s) = \frac{2 L + 1}{2} \int_{-1}^{+1} \mathrm{d}\mu \; \xi^{\mathrm{S}} \left(s, \mu\right) \, \mathcal{L}_L(\mu) \, \times \begin{cases} \frac{1}{\mathcal{N}}\mathcal{F}(s, \mu) \quad \mathrm{use\_windows == true} \\ 1 \quad\quad \mathrm{use\_windows == false} - \end{cases}\]

    where:

    • $\xi^{\mathrm{S}}(s,\mu)$ is the TPCF of the PNG signal with the angular dependence, computed from ξ_S.
    • $\mathcal{L}_L(\mu)$ is the Legendre polynomial of order $L$
    • $\mathcal{F}(s, \mu)$ is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)
    • $\mathcal{N}$ is the integrated window function norm (check the documentation of WindowFIntegrated)

    The integration over $\mu$ is preformed through the Julia function quadgk from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.

    Inputs

    • cosmo::Cosmology: cosmology to be used in this computation

    • cosmopng::CosmoPNG: struct that contains all the information that may be used for the TPCF computations of the PNG signal.

    • ss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). This is why it is returned also the vector of the "input" values.

    Optional arguments

    This function recall internally ξ_S_multipole, so the kwargs of the latter are valid also for the former; we report them for comfortness:

    • L::Int = 0: order of the Legendre polynomial to be used

    • use_windows::Bool = false: tells if the integrand must consider $\mathcal{F}$ or not.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    • N_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing

    • pr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)

    Returns

    A Tuple{Vector{Float64}, Vector{Float64}}, which has as first element the ss vector and as second one the corresponding ξ value evaluated.

    See also: ξ_S, integrand_ξ_S_multipole, ξ_S_multipole, print_map_ξ_S_multipole WindowFIntegrated, Cosmology, CosmoPNG,

    source
    GaPSE.print_map_ξ_S_multipoleFunction
     print_map_ξ_S_multipole(
    -      cosmo::Cosmology, cosmopng::CosmoPNG, 
    -      out::String, ss = nothing;
    -      L::Int = 0, use_windows::Bool = true,
    -      atol_quad::Float64 = 0.0,
    -      rtol_quad::Float64 = 1e-2,
    -      enhancer::Float64 = 1e6,
    -      pr::Bool = true,
    -      N_log::Int = 1000,
    -      kwargs...)

    Evaluate the multipole of order L of the Two-Point Correlation Function (TPCF) concerning the signal (S) of the local Primordial Non-Gaussianities (PNG), for all the comoving distance values stored inside ss, and print the results (with all the options used) in a file named out. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log).

    The function evaluated is then the following $\xi^{\mathrm{S}} (s)$:

    \[ \xi^{\mathrm{S}} (s) = \frac{2 L + 1}{2} \int_{-1}^{+1} \mathrm{d}\mu \; + \end{cases}\]

    where:

    • $\xi^{\mathrm{S}}(s,\mu)$ is the TPCF of the PNG signal with the angular dependence, computed from ξ_S.
    • $\mathcal{L}_L(\mu)$ is the Legendre polynomial of order $L$
    • $\mathcal{F}(s, \mu)$ is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)
    • $\mathcal{N}$ is the integrated window function norm (check the documentation of WindowFIntegrated)

    The integration over $\mu$ is preformed through the Julia function quadgk from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.

    Inputs

    • cosmo::Cosmology: cosmology to be used in this computation

    • cosmopng::CosmoPNG: struct that contains all the information that may be used for the TPCF computations of the PNG signal.

    • ss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). This is why it is returned also the vector of the "input" values.

    Keyword arguments

    This function recall internally ξ_S_multipole, so the kwargs of the latter are valid also for the former; we report them for comfortness:

    • L::Int = 0: order of the Legendre polynomial to be used

    • use_windows::Bool = false: tells if the integrand must consider $\mathcal{F}$ or not.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    • N_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing

    • pr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)

    • b = nothing : galaxy bias value to be considered in the computation; if set to nothing, its value is inferred from the other keyword argument sp;

    • sp::Int64=1 : galaxy type to be considered between the two species stored in cosmo: it can be either 1 or 2, and the corresponding set of galaxy, magnification and evolutionary biases stored in cosmo are considered; in case b is set to a value, this parameter is ignored.

    Returns

    A Tuple{Vector{Float64}, Vector{Float64}}, which has as first element the ss vector and as second one the corresponding ξ value evaluated.

    See also: ξ_S, integrand_ξ_S_multipole, ξ_S_multipole, print_map_ξ_S_multipole WindowFIntegrated, Cosmology, CosmoPNG,

    source
    GaPSE.print_map_ξ_S_multipoleFunction
    print_map_ξ_S_multipole(
    +    cosmo::Cosmology, cosmopng::CosmoPNG, 
    +    out::String, ss = nothing;
    +    L::Int = 0, use_windows::Bool = true,
    +    atol_quad::Float64 = 0.0,
    +    rtol_quad::Float64 = 1e-2,
    +    enhancer::Float64 = 1e6,
    +    pr::Bool = true,
    +    N_log::Int = 1000,
    +    kwargs...)

    Evaluate the multipole of order L of the Two-Point Correlation Function (TPCF) concerning the signal (S) of the local Primordial Non-Gaussianities (PNG), for all the comoving distance values stored inside ss, and print the results (with all the options used) in a file named out. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log).

    The function evaluated is then the following $\xi^{\mathrm{S}} (s)$:

    \[ \xi^{\mathrm{S}} (s) = \frac{2 L + 1}{2} \int_{-1}^{+1} \mathrm{d}\mu \; \xi^{\mathrm{S}} \left(s, \mu\right) \, \mathcal{L}_L(\mu) \, \times \begin{cases} \frac{1}{\mathcal{N}}\mathcal{F}(s, \mu) \quad \mathrm{use\_windows == true} \\ 1 \quad\quad \mathrm{use\_windows == false} - \end{cases}\]

    where:

    • $\xi^{\mathrm{S}}(s,\mu)$ is the TPCF of the PNG signal with the angular dependence, computed from ξ_S.
    • $\mathcal{L}_L(\mu)$ is the Legendre polynomial of order $L$
    • $\mathcal{F}(s, \mu)$ is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)
    • $\mathcal{N}$ is the integrated window function norm (check the documentation of WindowFIntegrated)

    The integration over $\mu$ is preformed through the Julia function quadgk from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.

    Inputs

    • cosmo::Cosmology: cosmology to be used in this computation

    • cosmopng::CosmoPNG: struct that contains all the information that may be used for the TPCF computations of the PNG signal.

    • out::String : name of the file where the results must be stored.

    • ss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). This is why it is returned also the vector of the "input" values.

    Optional arguments

    This function recall internally map_ξ_S_multipole, so the kwargs of the latter are valid also for the former; we report them for comfortness:

    • L::Int = 0: order of the Legendre polynomial to be used

    • use_windows::Bool = false: tells if the integrand must consider $\mathcal{F}$ or not.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    • N_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing

    • pr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)

    See also: ξ_S, integrand_ξ_S_multipole, ξ_S_multipole, map_ξ_S_multipole WindowFIntegrated, Cosmology, CosmoPNG

    source
    + \end{cases}\]

    where:

    • $\xi^{\mathrm{S}}(s,\mu)$ is the TPCF of the PNG signal with the angular dependence, computed from ξ_S.
    • $\mathcal{L}_L(\mu)$ is the Legendre polynomial of order $L$
    • $\mathcal{F}(s, \mu)$ is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)
    • $\mathcal{N}$ is the integrated window function norm (check the documentation of WindowFIntegrated)

    The integration over $\mu$ is preformed through the Julia function quadgk from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.

    Inputs

    • cosmo::Cosmology: cosmology to be used in this computation

    • cosmopng::CosmoPNG: struct that contains all the information that may be used for the TPCF computations of the PNG signal.

    • out::String : name of the file where the results must be stored.

    • ss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). This is why it is returned also the vector of the "input" values.

    Keyword arguments

    This function recall internally map_ξ_S_multipole, so the kwargs of the latter are valid also for the former; we report them for comfortness:

    • L::Int = 0: order of the Legendre polynomial to be used

    • use_windows::Bool = false: tells if the integrand must consider $\mathcal{F}$ or not.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    • N_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing

    • pr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)

    • b = nothing : galaxy bias value to be considered in the computation; if set to nothing, its value is inferred from the other keyword argument sp;

    • sp::Int64=1 : galaxy type to be considered between the two species stored in cosmo: it can be either 1 or 2, and the corresponding set of galaxy, magnification and evolutionary biases stored in cosmo are considered; in case b is set to a value, this parameter is ignored.

    See also: ξ_S, integrand_ξ_S_multipole, ξ_S_multipole, map_ξ_S_multipole WindowFIntegrated, Cosmology, CosmoPNG

    source diff --git a/dev/PlaneParallelApprox/index.html b/dev/PlaneParallelApprox/index.html index 1af774dd..2ba0a790 100644 --- a/dev/PlaneParallelApprox/index.html +++ b/dev/PlaneParallelApprox/index.html @@ -1,15 +1,15 @@ -Calculating TPCFs with the PP Approximation · GaPSE.jl

    The Plane Parallel Approximation

    The GNC Doppler TPCF in the Plane Parallel Approximation

    GaPSE.ξ_PPDoppler_L0Function
     ξ_PPDoppler_L0(P::Point, cosmo::Cosmology)
    - ξ_PPDoppler_L0(s, cosmo::Cosmology)

    Return the value of the Two-Point Correlation Function (TPCF) monopole of the Doppler effect in the Plane-Parallel approximation. In the first method, you should pass the Point where to evaluate that function, while in the second (that internally recalls the first) you must provide the comoving distance s. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of such TPCF monopole is the following:

    \[\xi^{\mathrm{pp}, v_{\parallel}}_0(s) = +Calculating TPCFs with the PP Approximation · GaPSE.jl

    The Plane Parallel Approximation

    The GNC Doppler TPCF in the Plane Parallel Approximation

    GaPSE.ξ_PPDoppler_L0Function
    ξ_PPDoppler_L0(P::Point, cosmo::Cosmology)
    +ξ_PPDoppler_L0(s, cosmo::Cosmology)

    Return the value of the Two-Point Correlation Function (TPCF) monopole of the Doppler effect in the Plane-Parallel approximation. In the first method, you should pass the Point where to evaluate that function, while in the second (that internally recalls the first) you must provide the comoving distance s. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of such TPCF monopole is the following:

    \[\xi^{\mathrm{pp}, v_{\parallel}}_0(s) = \frac{1}{3} \, f^2(s_{\mathrm{eff}}) \, \mathscr{H}^2(s_{\mathrm{eff}}) \, \mathscr{R}^2_{\mathrm{LD}}(s_{\mathrm{eff}}) \, D^2(s_{\mathrm{eff}}) \, s^2 \, I_0^2(s)\]

    where:

    • $s_{\mathrm{eff}}$ is the effective comoving distance stored in cosmo::Cosmology
    • $D$ the linear growth factor and $f$ the linear growth rate
    • $\mathscr{H}(z)$ is the comoving Hubble parameter
    • $\mathscr{R}_{\mathrm{LD}}$ is defined as : $\mathscr{R}_{\mathrm{LD}}(z)= 1 - \frac{1}{\mathscr{H}(z) \, s(z)}$
    • $I_\ell^n$ is defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ and $j_\ell$ as spherical Bessel function of order $\ell$.

    All the cosmological data needed for this computation are taken from the input struct cosmo::Cosmology.

    See also: Point, Cosmology, func_ℛ_LD, ξ_PPDoppler_L2, ξ_PPDoppler, integrand_ξ_PPDoppler_multipole, ξ_PPDoppler_multipole map_ξ_PPDoppler_multipole, print_map_ξ_PPDoppler_multipole

    source
    GaPSE.ξ_PPDoppler_L2Function
    ξ_PPDoppler_L0(P::Point, cosmo::Cosmology)
    +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n}\]

    with $P(q)$ as the matter Power Spectrum at $z=0$ and $j_\ell$ as spherical Bessel function of order $\ell$.

    All the cosmological data needed for this computation are taken from the input struct cosmo::Cosmology.

    See also: Point, Cosmology, func_ℛ_LD, ξ_PPDoppler_L2, ξ_PPDoppler, integrand_ξ_PPDoppler_multipole, ξ_PPDoppler_multipole map_ξ_PPDoppler_multipole, print_map_ξ_PPDoppler_multipole

    source
    GaPSE.ξ_PPDoppler_L2Function
    ξ_PPDoppler_L0(P::Point, cosmo::Cosmology)
     ξ_PPDoppler_L0(s, cosmo::Cosmology)

    Return the value of the Two-Point Correlation Function (TPCF) quadrupole of the Doppler effect in the Plane-Parallel approximation. In the first method, you should pass the Point where to evaluate that function, while in the second (that internally recalls the first) you must provide the comoving distance s. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of such TPCF monopole is the following:

    \[\xi^{\mathrm{pp}, v_{\parallel}}_2(s) = -\frac{2}{3} \, f^2(z_{\mathrm{eff}}) \, \mathscr{H}^2(z_{\mathrm{eff}}) \, \mathscr{R}^2_{\mathrm{LD}}(z_{\mathrm{eff}}) \, D^2(z_{\mathrm{eff}}) \, s^2 \, I_2^2(s)\]

    where:

    • $z_{\mathrm{eff}}$ is the effective redshift stored in cosmo::Cosmology ( and $z_{\mathrm{eff}}$ is the effective comoving distance associated in this cosmology)
    • $D$ the linear growth factor and $f$ the linear growth rate
    • $\mathscr{H}(z)$ is the comoving Hubble parameter
    • $\mathscr{R}_{\mathrm{LD}}(z)$ is defined as : $\mathscr{R}_{\mathrm{LD}}(z)= 1 - \frac{1}{\mathscr{H}(z) \, s(z)}$
    • $I_\ell^n$ is defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ and $j_\ell$ as spherical Bessel function of order $\ell$.

    All the cosmological data needed for this computation are taken from the input struct cosmo::Cosmology.

    See also: Point, Cosmology, func_ℛ_LD, ξ_PPDoppler_L0, ξ_PPDoppler, integrand_ξ_PPDoppler_multipole, ξ_PPDoppler_multipole map_ξ_PPDoppler_multipole, print_map_ξ_PPDoppler_multipole

    source
    GaPSE.ξ_PPDopplerFunction
     ξ_PPDoppler(s, μ, cosmo::Cosmology)

    Return the value of the Two-Point Correlation Function (TPCF) of the Doppler effect in the Plane-Parallel approximation in the given comoving distance s and cosine value for the Legendre polynomials μ (for the given cosmo::Cosmology).

    The analytical expression of such TPCF is the following:

    \[\begin{split} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n}\]

    with $P(q)$ as the matter Power Spectrum at $z=0$ and $j_\ell$ as spherical Bessel function of order $\ell$.

    All the cosmological data needed for this computation are taken from the input struct cosmo::Cosmology.

    See also: Point, Cosmology, func_ℛ_LD, ξ_PPDoppler_L0, ξ_PPDoppler, integrand_ξ_PPDoppler_multipole, ξ_PPDoppler_multipole map_ξ_PPDoppler_multipole, print_map_ξ_PPDoppler_multipole

    source
    GaPSE.ξ_PPDopplerFunction
    ξ_PPDoppler(s, μ, cosmo::Cosmology)

    Return the value of the Two-Point Correlation Function (TPCF) of the Doppler effect in the Plane-Parallel approximation in the given comoving distance s and cosine value for the Legendre polynomials μ (for the given cosmo::Cosmology).

    The analytical expression of such TPCF is the following:

    \[\begin{split} \xi^{\mathrm{pp, v_{\parallel}}}(s,&z,\mu) = \xi^{\mathrm{pp, v_{\parallel}}}_0(s,z) + \xi^{\mathrm{pp, v_{\parallel}}}_2(s) \mathcal{L}_2(\mu) \\ &\xi^{\mathrm{pp}, v_{\parallel}}_0(s) = @@ -21,62 +21,62 @@ \mathscr{R}^2_{\mathrm{LD}}(z_{\mathrm{eff}}) \, D^2(z_{\mathrm{eff}}) \, s^2 \, I_2^2(s) \\ \end{split}\]

    where:

    • $z$ is the redshift associated to the comoving distance $s$ in this cosmology
    • $D$ the linear growth factor and $f$ the linear growth rate
    • $\mathcal{L}_\ell$ the Legendre polynomial of order $\ell$
    • $\mathscr{H}(z)$ is the comoving Hubble parameter
    • $\mathscr{R}_{\mathrm{LD}}(z)$ is defined as : $\mathscr{R}_{\mathrm{LD}}(z)= 1 - \frac{1}{\mathscr{H}(z) \, s(z)}$
    • $I_\ell^n$ is defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ and $j_\ell$ as spherical Bessel function of order $\ell$.

    All the cosmological data needed for this computation are taken from the input struct cosmo::Cosmology.

    See also: Point, Cosmology, integrand_ξ_PPDoppler_multipole, ξ_PPDoppler_multipole map_ξ_PPDoppler_multipole, print_map_ξ_PPDoppler_multipole

    source
    GaPSE.integrand_ξ_PPDoppler_multipoleFunction
     integrand_ξ_PPDoppler_multipole(s, μ, cosmo::Cosmology;
    -      L::Int=0, use_windows::Bool=true)

    Return the integrand on $\mu = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}$ of the Doppler effect Two-Point Correlation Function (TPCF) in the Plane Parallel (PP) approximation, i.e. the following function $f(s, \mu)$:

    \[ f_L(s, \mu) = \xi^{\mathrm{pp}, v_{\parallel}} \left(s, \mu\right) - \, \mathcal{L}_L(\mu) \, \times +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n}\]

    with $P(q)$ as the matter Power Spectrum at $z=0$ and $j_\ell$ as spherical Bessel function of order $\ell$.

    All the cosmological data needed for this computation are taken from the input struct cosmo::Cosmology.

    See also: Point, Cosmology, integrand_ξ_PPDoppler_multipole, ξ_PPDoppler_multipole map_ξ_PPDoppler_multipole, print_map_ξ_PPDoppler_multipole

    source
    GaPSE.integrand_ξ_PPDoppler_multipoleFunction
    integrand_ξ_PPDoppler_multipole(s, μ, cosmo::Cosmology;
    +    L::Int=0, use_windows::Bool=true)

    Return the integrand on $\mu = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}$ of the Doppler effect Two-Point Correlation Function (TPCF) in the Plane Parallel (PP) approximation, i.e. the following function $f(s, \mu)$:

    \[ f_L(s, \mu) = \xi^{\mathrm{pp}, v_{\parallel}} \left(s, \mu\right) + \, \mathcal{L}_L(\mu) \, \times \begin{cases} \frac{1}{\mathcal{N}}\mathcal{F}(s, \mu) \quad \mathrm{use\_windows == true} \\ 1 \quad\quad \mathrm{use\_windows == false} - \end{cases}\]

    where:

    • $\xi^{\mathrm{pp}, v_{\parallel}}(s,\mu)$ is the TPCF of the Doppler term in the PP approximation with the angular dependence, computed from ξ_PPDoppler.
    • $\mathcal{L}_L(\mu)$ is the Legendre polynomial of order $L$
    • $\mathcal{F}(s, \mu)$ is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)
    • $\mathcal{N}$ is the integrated window function norm (check the documentation of WindowFIntegrated)

    Inputs

    • s: the comoving distance where must be evaluated the integral

    • μ: the cosine between s1 and s where must be evaluated the integral

    • cosmo::Cosmology: cosmology to be used in this computation

    Optional arguments

    • L::Int = 0: order of the Legendre polynomial to be used

    • use_windows::Bool = false: tells if the integrand must consider $\mathcal{F}$ or not.

    See also:ξ_PPDoppler, ξ_PPDoppler_multipole, map_ξ_PPDoppler_multipole, print_map_ξ_PPDoppler_multipole WindowFIntegrated, Cosmology,

    source
    GaPSE.ξ_PPDoppler_multipoleFunction
     ξ_PPDoppler_multipole(
    -      s, cosmo::Cosmology;
    -      L::Int = 0, use_windows::Bool = true,
    -      atol_quad::Float64 = 0.0,
    -      rtol_quad::Float64 = 1e-2,
    -      enhancer::Float64 = 1e6 ) ::Float64

    Evaluate the multipole of order L of the Doppler effect Two-Point Correlation Function (TPCF) in the Plane Parallel (PP) term i.e. the following function $\xi^{\mathrm{pp}, v_{\parallel}} (s)$:

    \[ \xi^{\mathrm{pp}, v_{\parallel}} (s) = \frac{2 L + 1}{2} \int_{-1}^{+1} \mathrm{d}\mu \; + \end{cases}\]

    where:

    • $\xi^{\mathrm{pp}, v_{\parallel}}(s,\mu)$ is the TPCF of the Doppler term in the PP approximation with the angular dependence, computed from ξ_PPDoppler.
    • $\mathcal{L}_L(\mu)$ is the Legendre polynomial of order $L$
    • $\mathcal{F}(s, \mu)$ is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)
    • $\mathcal{N}$ is the integrated window function norm (check the documentation of WindowFIntegrated)

    Inputs

    • s: the comoving distance where must be evaluated the integral

    • μ: the cosine between s1 and s where must be evaluated the integral

    • cosmo::Cosmology: cosmology to be used in this computation

    Optional arguments

    • L::Int = 0: order of the Legendre polynomial to be used

    • use_windows::Bool = false: tells if the integrand must consider $\mathcal{F}$ or not.

    See also:ξ_PPDoppler, ξ_PPDoppler_multipole, map_ξ_PPDoppler_multipole, print_map_ξ_PPDoppler_multipole WindowFIntegrated, Cosmology,

    source
    GaPSE.ξ_PPDoppler_multipoleFunction
    ξ_PPDoppler_multipole(
    +    s, cosmo::Cosmology;
    +    L::Int = 0, use_windows::Bool = true,
    +    atol_quad::Float64 = 0.0,
    +    rtol_quad::Float64 = 1e-2,
    +    enhancer::Float64 = 1e6 ) ::Float64

    Evaluate the multipole of order L of the Doppler effect Two-Point Correlation Function (TPCF) in the Plane Parallel (PP) term i.e. the following function $\xi^{\mathrm{pp}, v_{\parallel}} (s)$:

    \[ \xi^{\mathrm{pp}, v_{\parallel}} (s) = \frac{2 L + 1}{2} \int_{-1}^{+1} \mathrm{d}\mu \; \xi^{\mathrm{pp}, v_{\parallel}} \left(s, \mu\right) \, \mathcal{L}_L(\mu) \, \times \begin{cases} \frac{1}{\mathcal{N}}\mathcal{F}(s, \mu) \quad \mathrm{use\_windows == true} \\ 1 \quad\quad \mathrm{use\_windows == false} - \end{cases}\]

    where:

    • $\xi^{\mathrm{pp}, v_{\parallel}}(s,\mu)$ is the TPCF of the Doppler term in the PP approximation with the angular dependence, computed from ξ_PPDoppler.
    • $\mathcal{L}_L(\mu)$ is the Legendre polynomial of order $L$
    • $\mathcal{F}(s, \mu)$ is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)
    • $\mathcal{N}$ is the integrated window function norm (check the documentation of WindowFIntegrated)

    The integration over $\mu$ is preformed through the Julia function quadgk from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.

    Inputs

    • s: the comoving distance where must be evaluated the integral

    • cosmo::Cosmology: cosmology to be used in this computation

    Optional arguments

    • L::Int = 0: order of the Legendre polynomial to be used

    • use_windows::Bool = false: tells if the integrand must consider $\mathcal{F}$ or not.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    See also: ξ_PPDoppler, integrand_ξ_PPDoppler_multipole, map_ξ_PPDoppler_multipole, print_map_ξ_PPDoppler_multipole WindowFIntegrated, Cosmology,

    source
    GaPSE.map_ξ_PPDoppler_multipoleFunction
     map_ξ_PPDoppler_multipole(
    -      cosmo::Cosmology, ss = nothing;
    -      L::Int = 0, use_windows::Bool = true,
    -      atol_quad::Float64 = 0.0,
    -      rtol_quad::Float64 = 1e-2,
    -      enhancer::Float64 = 1e6,
    -      pr::Bool = true,
    -      N_log::Int = 1000,
    -      kwargs...) ::Tuple{Vector{Float64}, Vector{Float64}}

    Evaluate the multipole of order L of the Doppler effect Two-Point Correlation Function (TPCF) in the Plane Parallel (PP) term for all the comoving distance values stored inside ss. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log).

    The function evaluated is then the following $\xi^{\mathrm{pp, g}} (s)$:

    \[ \xi^{\mathrm{pp}, v_{\parallel}} (s) = \frac{2 L + 1}{2} \int_{-1}^{+1} \mathrm{d}\mu \; + \end{cases}\]

    where:

    • $\xi^{\mathrm{pp}, v_{\parallel}}(s,\mu)$ is the TPCF of the Doppler term in the PP approximation with the angular dependence, computed from ξ_PPDoppler.
    • $\mathcal{L}_L(\mu)$ is the Legendre polynomial of order $L$
    • $\mathcal{F}(s, \mu)$ is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)
    • $\mathcal{N}$ is the integrated window function norm (check the documentation of WindowFIntegrated)

    The integration over $\mu$ is preformed through the Julia function quadgk from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.

    Inputs

    • s: the comoving distance where must be evaluated the integral

    • cosmo::Cosmology: cosmology to be used in this computation

    Optional arguments

    • L::Int = 0: order of the Legendre polynomial to be used

    • use_windows::Bool = false: tells if the integrand must consider $\mathcal{F}$ or not.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    See also: ξ_PPDoppler, integrand_ξ_PPDoppler_multipole, map_ξ_PPDoppler_multipole, print_map_ξ_PPDoppler_multipole WindowFIntegrated, Cosmology,

    source
    GaPSE.map_ξ_PPDoppler_multipoleFunction
    map_ξ_PPDoppler_multipole(
    +    cosmo::Cosmology, ss = nothing;
    +    L::Int = 0, use_windows::Bool = true,
    +    atol_quad::Float64 = 0.0,
    +    rtol_quad::Float64 = 1e-2,
    +    enhancer::Float64 = 1e6,
    +    pr::Bool = true,
    +    N_log::Int = 1000,
    +    kwargs...) ::Tuple{Vector{Float64}, Vector{Float64}}

    Evaluate the multipole of order L of the Doppler effect Two-Point Correlation Function (TPCF) in the Plane Parallel (PP) term for all the comoving distance values stored inside ss. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log).

    The function evaluated is then the following $\xi^{\mathrm{pp, g}} (s)$:

    \[ \xi^{\mathrm{pp}, v_{\parallel}} (s) = \frac{2 L + 1}{2} \int_{-1}^{+1} \mathrm{d}\mu \; \xi^{\mathrm{pp}, v_{\parallel}} \left(s, \mu\right) - \, \mathcal{L}_L(\mu) \, \times + \, \mathcal{L}_L(\mu) \, \times \begin{cases} \frac{1}{\mathcal{N}}\mathcal{F}(s, \mu) \quad \mathrm{use\_windows == true} \\ 1 \quad\quad \mathrm{use\_windows == false} - \end{cases}\]

    where:

    • $\xi^{\mathrm{pp}, v_{\parallel}}(s,\mu)$ is the TPCF of the Doppler term in the PP approximation with the angular dependence, computed from ξ_PPDoppler.
    • $\mathcal{L}_L(\mu)$ is the Legendre polynomial of order $L$
    • $\mathcal{F}(s, \mu)$ is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)
    • $\mathcal{N}$ is the integrated window function norm (check the documentation of WindowFIntegrated)

    The integration over $\mu$ is preformed through the Julia function quadgk from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.

    Inputs

    • cosmo::Cosmology: cosmology to be used in this computation

    • ss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). This is why it is returned also the vector of the "input" values.

    Optional arguments

    This function recall internally ξ_PPDoppler_multipole, so the kwargs of the latter are valid also for the former; we report them for comfortness:

    • L::Int = 0: order of the Legendre polynomial to be used

    • use_windows::Bool = false: tells if the integrand must consider $\mathcal{F}$ or not.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    • N_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing

    • pr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)

    Returns

    A Tuple{Vector{Float64}, Vector{Float64}}, which has as first element the ss vector and as second one the corresponding ξ value evaluated.

    See also: ξ_PPDoppler, integrand_ξ_PPDoppler_multipole, ξ_PPDoppler_multipole, print_map_ξ_PPDoppler_multipole WindowFIntegrated, Cosmology,

    source
    GaPSE.print_map_ξ_PPDoppler_multipoleFunction
     print_map_ξ_PPDoppler_multipole(
    -      cosmo::Cosmology, out::String,
    -      ss = nothing;
    -      L::Int = 0, use_windows::Bool = true,
    -      atol_quad::Float64 = 0.0,
    -      rtol_quad::Float64 = 1e-2,
    -      enhancer::Float64 = 1e6,
    -      pr::Bool = true,
    -      N_log::Int = 1000,
    -      kwargs...)

    Evaluate the multipole of order L of the Doppler effect Two-Point Correlation Function (TPCF) in the Plane Parallel (PP) term for all the comoving distance values stored inside ss, and print the results (with all the options used) in a file named out. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log).

    The function evaluated is then the following $\xi^{\mathrm{pp}, v_{\parallel}} (s)$:

    \[ \xi^{\mathrm{pp}, v_{\parallel}} (s) = \frac{2 L + 1}{2} \int_{-1}^{+1} \mathrm{d}\mu \; + \end{cases}\]

    where:

    • $\xi^{\mathrm{pp}, v_{\parallel}}(s,\mu)$ is the TPCF of the Doppler term in the PP approximation with the angular dependence, computed from ξ_PPDoppler.
    • $\mathcal{L}_L(\mu)$ is the Legendre polynomial of order $L$
    • $\mathcal{F}(s, \mu)$ is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)
    • $\mathcal{N}$ is the integrated window function norm (check the documentation of WindowFIntegrated)

    The integration over $\mu$ is preformed through the Julia function quadgk from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.

    Inputs

    • cosmo::Cosmology: cosmology to be used in this computation

    • ss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). This is why it is returned also the vector of the "input" values.

    Optional arguments

    This function recall internally ξ_PPDoppler_multipole, so the kwargs of the latter are valid also for the former; we report them for comfortness:

    • L::Int = 0: order of the Legendre polynomial to be used

    • use_windows::Bool = false: tells if the integrand must consider $\mathcal{F}$ or not.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    • N_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing

    • pr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)

    Returns

    A Tuple{Vector{Float64}, Vector{Float64}}, which has as first element the ss vector and as second one the corresponding ξ value evaluated.

    See also: ξ_PPDoppler, integrand_ξ_PPDoppler_multipole, ξ_PPDoppler_multipole, print_map_ξ_PPDoppler_multipole WindowFIntegrated, Cosmology,

    source
    GaPSE.print_map_ξ_PPDoppler_multipoleFunction
    print_map_ξ_PPDoppler_multipole(
    +    cosmo::Cosmology, out::String,
    +    ss = nothing;
    +    L::Int = 0, use_windows::Bool = true,
    +    atol_quad::Float64 = 0.0,
    +    rtol_quad::Float64 = 1e-2,
    +    enhancer::Float64 = 1e6,
    +    pr::Bool = true,
    +    N_log::Int = 1000,
    +    kwargs...)

    Evaluate the multipole of order L of the Doppler effect Two-Point Correlation Function (TPCF) in the Plane Parallel (PP) term for all the comoving distance values stored inside ss, and print the results (with all the options used) in a file named out. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log).

    The function evaluated is then the following $\xi^{\mathrm{pp}, v_{\parallel}} (s)$:

    \[ \xi^{\mathrm{pp}, v_{\parallel}} (s) = \frac{2 L + 1}{2} \int_{-1}^{+1} \mathrm{d}\mu \; \xi^{\mathrm{pp}, v_{\parallel}} \left(s, \mu\right) \, \mathcal{L}_L(\mu) \, \times \begin{cases} \frac{1}{\mathcal{N}}\mathcal{F}(s, \mu) \quad \mathrm{use\_windows == true} \\ 1 \quad\quad \mathrm{use\_windows == false} - \end{cases}\]

    where:

    • $\xi^{\mathrm{pp}, v_{\parallel}}(s,\mu)$ is the TPCF of the Doppler term in the PP approximation with the angular dependence, computed from ξ_PPDoppler.
    • $\mathcal{L}_L(\mu)$ is the Legendre polynomial of order $L$
    • $\mathcal{F}(s, \mu)$ is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)
    • $\mathcal{N}$ is the integrated window function norm (check the documentation of WindowFIntegrated)

    The integration over $\mu$ is preformed through the Julia function quadgk from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.

    Inputs

    • cosmo::Cosmology: cosmology to be used in this computation

    • out::String : name of the file where the results must be stored.

    • ss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). This is why it is returned also the vector of the "input" values.

    Optional arguments

    This function recall internally map_ξ_PPDoppler_multipole, so the kwargs of the latter are valid also for the former; we report them for comfortness:

    • L::Int = 0: order of the Legendre polynomial to be used

    • use_windows::Bool = false: tells if the integrand must consider $\mathcal{F}$ or not.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    • N_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing

    • pr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)

    See also: ξ_PPDoppler, integrand_ξ_PPDoppler_multipole, ξ_PPDoppler_multipole, map_ξ_PPDoppler_multipole WindowFIntegrated, Cosmology,

    source

    The Galaxy TPCF term in the Plane Parallel Approximation

    GaPSE.ξ_PPGalaxies_L0Function
     ξ_PPGalaxies_L0(P::Point, cosmo::Cosmology)
    - ξ_PPGalaxies_L0(s, cosmo::Cosmology)

    Return the value of the Two-Point Correlation Function (TPCF) monopole of the Galaxies in the Plane-Parallel approximation. In the first method, you should pass the Point where to evaluate that function, while in the second (that internally recalls the first) you must provide the comoving distance s. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of such TPCF monopole is the following:

    \[\xi^{\mathrm{pp, g}}_0(s) = D^2(z) \, I_0^0(s)\, \left(b^2 + + \end{cases}\]

    where:

    • $\xi^{\mathrm{pp}, v_{\parallel}}(s,\mu)$ is the TPCF of the Doppler term in the PP approximation with the angular dependence, computed from ξ_PPDoppler.
    • $\mathcal{L}_L(\mu)$ is the Legendre polynomial of order $L$
    • $\mathcal{F}(s, \mu)$ is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)
    • $\mathcal{N}$ is the integrated window function norm (check the documentation of WindowFIntegrated)

    The integration over $\mu$ is preformed through the Julia function quadgk from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.

    Inputs

    • cosmo::Cosmology: cosmology to be used in this computation

    • out::String : name of the file where the results must be stored.

    • ss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). This is why it is returned also the vector of the "input" values.

    Optional arguments

    This function recall internally map_ξ_PPDoppler_multipole, so the kwargs of the latter are valid also for the former; we report them for comfortness:

    • L::Int = 0: order of the Legendre polynomial to be used

    • use_windows::Bool = false: tells if the integrand must consider $\mathcal{F}$ or not.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    • N_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing

    • pr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)

    See also: ξ_PPDoppler, integrand_ξ_PPDoppler_multipole, ξ_PPDoppler_multipole, map_ξ_PPDoppler_multipole WindowFIntegrated, Cosmology,

    source

    The Galaxy TPCF term in the Plane Parallel Approximation

    GaPSE.ξ_PPGalaxies_L0Function
    ξ_PPGalaxies_L0(P::Point, cosmo::Cosmology; b = nothing, sp::Int64=1)
    +ξ_PPGalaxies_L0(s, cosmo::Cosmology; kwargs...)

    Return the value of the Two-Point Correlation Function (TPCF) monopole of the Galaxies in the Plane-Parallel approximation. In the first method, you should pass the Point where to evaluate that function, while in the second (that internally recalls the first) you must provide the comoving distance s. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of such TPCF monopole is the following:

    \[\xi^{\mathrm{pp, g}}_0(s) = D^2(z) \, I_0^0(s)\, \left(b^2 + \frac{2}{3} \, b \, f(z) + \frac{1}{5} \, f^2(z)\right)\]

    where:

    • $b$ is the galaxy bias
    • $z$ is the redshift associated to the comoving distance $s$ in this cosmology
    • $D$ the linear growth factor and $f$ the linear growth rate
    • $I_\ell^n$ is defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ and $j_\ell$ as spherical Bessel function of order $\ell$.

    All the cosmological data needed for this computation are taken from the input struct cosmo::Cosmology.

    See also: Point, Cosmology, ξ_PPGalaxies_L2, ξ_PPGalaxies_L4, integrand_ξ_PPGalaxies_multipole, ξ_PPGalaxies_multipole map_ξ_PPGalaxies_multipole, print_map_ξ_PPGalaxies_multipole

    source
    GaPSE.ξ_PPGalaxies_L2Function
     ξ_PPGalaxies_L2(P::Point, cosmo::Cosmology)
    - ξ_PPGalaxies_L2(s, cosmo::Cosmology)

    Return the value of the Two-Point Correlation Function (TPCF) quadrupole of the Galaxies in the Plane-Parallel approximation. In the first method, you should pass the Point where to evaluate that function, while in the second (that internally recalls the first) you must provide the comoving distance s. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of such TPCF monopole is the following:

    \[\xi^{\mathrm{pp, g}}_2(s) = - D^2(z) \, I_2^0(s)\, \left(\frac{4}{3} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n}\]

    with $P(q)$ as the matter Power Spectrum at $z=0$ and $j_\ell$ as spherical Bessel function of order $\ell$.

    All the cosmological data needed for this computation are taken from the input struct cosmo::Cosmology.

    Keyword Arguments

    • b = nothing : galaxy bias value to be considered in the computation; if set to nothing, its value is inferred from the other keyword argument sp;

    • sp::Int64=1 : galaxy type to be considered between the two species stored in cosmo: it can be either 1 or 2, and the corresponding set of galaxy, magnification and evolutionary biases stored in cosmo are considered; in case b is set to a value, this parameter is ignored.

    See also: Point, Cosmology, ξ_PPGalaxies_L2, ξ_PPGalaxies_L4, integrand_ξ_PPGalaxies_multipole, ξ_PPGalaxies_multipole map_ξ_PPGalaxies_multipole, print_map_ξ_PPGalaxies_multipole

    source
    GaPSE.ξ_PPGalaxies_L2Function
    ξ_PPGalaxies_L2(P::Point, cosmo::Cosmology; b=nothing, sp::Int64=1)
    +ξ_PPGalaxies_L2(s, cosmo::Cosmology; kwargs...)

    Return the value of the Two-Point Correlation Function (TPCF) quadrupole of the Galaxies in the Plane-Parallel approximation. In the first method, you should pass the Point where to evaluate that function, while in the second (that internally recalls the first) you must provide the comoving distance s. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of such TPCF monopole is the following:

    \[\xi^{\mathrm{pp, g}}_2(s) = - D^2(z) \, I_2^0(s)\, \left(\frac{4}{3} \, b \, f(z) + \frac{4}{7} \, f^2(z)\right)\]

    where:

    • $b$ is the galaxy bias
    • $z$ is the redshift associated to the comoving distance $s$ in this cosmology
    • $D$ the linear growth factor and $f$ the linear growth rate
    • $I_\ell^n$ is defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ and $j_\ell$ as spherical Bessel function of order $\ell$.

    All the cosmological data needed for this computation are taken from the input struct cosmo::Cosmology.

    See also: Point, Cosmology, ξ_PPGalaxies_L0, ξ_PPGalaxies_L4, integrand_ξ_PPGalaxies_multipole, ξ_PPGalaxies_multipole map_ξ_PPGalaxies_multipole, print_map_ξ_PPGalaxies_multipole

    source
    GaPSE.ξ_PPGalaxies_L4Function
     ξ_PPGalaxies_L4(P::Point, cosmo::Cosmology)
    - ξ_PPGalaxies_L4(s, cosmo::Cosmology)

    Return the value of the Two-Point Correlation Function (TPCF) hexadecapole of the Galaxies in the Plane-Parallel approximation. In the first method, you should pass the Point where to evaluate that function, while in the second (that internally recalls the first) you must provide the comoving distance s. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of such TPCF monopole is the following:

    \[\xi^{\mathrm{pp, g}}_4(s,z) = D^2(z) \, I_4^0(s)\, +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n}\]

    with $P(q)$ as the matter Power Spectrum at $z=0$ and $j_\ell$ as spherical Bessel function of order $\ell$.

    All the cosmological data needed for this computation are taken from the input struct cosmo::Cosmology.

    ## Keyword Arguments
    • b = nothing : galaxy bias value to be considered in the computation; if set to nothing, its value is inferred from the other keyword argument sp;

    • sp::Int64=1 : galaxy type to be considered between the two species stored in cosmo: it can be either 1 or 2, and the corresponding set of galaxy, magnification and evolutionary biases stored in cosmo are considered; in case b is set to a value, this parameter is ignored.

    See also: Point, Cosmology, ξ_PPGalaxies_L0, ξ_PPGalaxies_L4, integrand_ξ_PPGalaxies_multipole, ξ_PPGalaxies_multipole map_ξ_PPGalaxies_multipole, print_map_ξ_PPGalaxies_multipole

    source
    GaPSE.ξ_PPGalaxies_L4Function
    ξ_PPGalaxies_L4(P::Point, cosmo::Cosmology; b=nothing, sp::Int64=1)
    +ξ_PPGalaxies_L4(s, cosmo::Cosmology; kwargs...)

    Return the value of the Two-Point Correlation Function (TPCF) hexadecapole of the Galaxies in the Plane-Parallel approximation. In the first method, you should pass the Point where to evaluate that function, while in the second (that internally recalls the first) you must provide the comoving distance s. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of such TPCF monopole is the following:

    \[\xi^{\mathrm{pp, g}}_4(s,z) = D^2(z) \, I_4^0(s)\, \left(\frac{8}{35} \, f^2(z)\right)\]

    where:

    • $b$ is the galaxy bias
    • $z$ is the redshift associated to the comoving distance $s$ in this cosmology
    • $D$ the linear growth factor and $f$ the linear growth rate
    • $I_\ell^n$ is defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ and $j_\ell$ as spherical Bessel function of order $\ell$.

    All the cosmological data needed for this computation are taken from the input struct cosmo::Cosmology.

    See also: Point, Cosmology, ξ_PPGalaxies_L0, ξ_PPGalaxies_L2, integrand_ξ_PPGalaxies_multipole, ξ_PPGalaxies_multipole map_ξ_PPGalaxies_multipole, print_map_ξ_PPGalaxies_multipole

    source
    GaPSE.ξ_PPGalaxiesFunction
     ξ_PPGalaxies(s, μ, cosmo::Cosmology)

    Return the value of the Two-Point Correlation Function (TPCF) of the Galaxies in the Plane-Parallel approximation in the given comoving distance s and cosine value for the Legendre polynomials μ (for the given cosmo::Cosmology).

    The analytical expression of such TPCF is the following:

    \[\begin{split} +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n}\]

    with $P(q)$ as the matter Power Spectrum at $z=0$ and $j_\ell$ as spherical Bessel function of order $\ell$.

    All the cosmological data needed for this computation are taken from the input struct cosmo::Cosmology.

    Keyword Arguments

    • b = nothing : galaxy bias value to be considered in the computation; if set to nothing, its value is inferred from the other keyword argument sp;

    • sp::Int64=1 : galaxy type to be considered between the two species stored in cosmo: it can be either 1 or 2, and the corresponding set of galaxy, magnification and evolutionary biases stored in cosmo are considered; in case b is set to a value, this parameter is ignored.

    See also: Point, Cosmology, ξ_PPGalaxies_L0, ξ_PPGalaxies_L2, integrand_ξ_PPGalaxies_multipole, ξ_PPGalaxies_multipole map_ξ_PPGalaxies_multipole, print_map_ξ_PPGalaxies_multipole

    source
    GaPSE.ξ_PPGalaxiesFunction
    ξ_PPGalaxies(s, μ, cosmo::Cosmology; b=nothing, sp::Int64=1)

    Return the value of the Two-Point Correlation Function (TPCF) of the Galaxies in the Plane-Parallel approximation in the given comoving distance s and cosine value for the Legendre polynomials μ (for the given cosmo::Cosmology).

    The analytical expression of such TPCF is the following:

    \[\begin{split} \xi^{\mathrm{pp, g}}(s&,\mu) = \xi^{\mathrm{pp, g}}_0(s) + \xi^{\mathrm{pp, g}}_2(s) \mathcal{L}_2(\mu) + \xi^{\mathrm{pp, g}}_4(s) \mathcal{L}_4(\mu) \\ @@ -87,50 +87,50 @@ &\xi^{\mathrm{pp, g}}_4(s) = D^2(z) \, I_4^0(s)\, \left(\frac{8}{35} \, f^2(z)\right) \end{split}\]

    where:

    • $b$ is the galaxy bias
    • $z$ is the redshift associated to the comoving distance $s$ in this cosmology
    • $D$ the linear growth factor and $f$ the linear growth rate
    • $\mathcal{L}_\ell$ the Legendre polynomial of order $\ell$
    • $I_\ell^n$ is defined as

      \[I_\ell^n(s) = \int_0^{+\infty} \frac{\mathrm{d}q}{2\pi^2} -\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n}\]

      with $P(q)$ as the matter Power Spectrum at $z=0$ and $j_\ell$ as spherical Bessel function of order $\ell$.

    All the cosmological data needed for this computation are taken from the input struct cosmo::Cosmology.

    See also: Point, Cosmology, ξ_PPGalaxies_L0, ξ_PPGalaxies_L2, ξ_PPGalaxies_L4 integrand_ξ_PPGalaxies_multipole, ξ_PPGalaxies_multipole map_ξ_PPGalaxies_multipole, print_map_ξ_PPGalaxies_multipole

    source
    GaPSE.integrand_ξ_PPGalaxies_multipoleFunction
     integrand_ξ_PPGalaxies_multipole(s, μ, cosmo::Cosmology;
    -      L::Int=0, use_windows::Bool=true)

    Return the integrand on $\mu = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}$ of the Galaxies Two-Point Correlation Function (TPCF) in the Plane Parallel (PP) approximation, i.e. the following function $f(s, \mu)$:

    \[ f_L(s, \mu) = \xi^{\mathrm{pp, g}} \left(s, \mu\right) - \, \mathcal{L}_L(\mu) \, \times +\, q^2 \, P(q) \, \frac{j_\ell(qs)}{(qs)^n}\]

    with $P(q)$ as the matter Power Spectrum at $z=0$ and $j_\ell$ as spherical Bessel function of order $\ell$.

    All the cosmological data needed for this computation are taken from the input struct cosmo::Cosmology.

    Keyword Arguments

    • b = nothing : galaxy bias value to be considered in the computation; if set to nothing, its value is inferred from the other keyword argument sp;

    • sp::Int64=1 : galaxy type to be considered between the two species stored in cosmo: it can be either 1 or 2, and the corresponding set of galaxy, magnification and evolutionary biases stored in cosmo are considered; in case b is set to a value, this parameter is ignored.

    See also: Point, Cosmology, ξ_PPGalaxies_L0, ξ_PPGalaxies_L2, ξ_PPGalaxies_L4 integrand_ξ_PPGalaxies_multipole, ξ_PPGalaxies_multipole map_ξ_PPGalaxies_multipole, print_map_ξ_PPGalaxies_multipole

    source
    GaPSE.integrand_ξ_PPGalaxies_multipoleFunction
    integrand_ξ_PPGalaxies_multipole(s, μ, cosmo::Cosmology;
    +    L::Int=0, use_windows::Bool=true, b = nothing, sp::Int64=1) ::Float64

    Return the integrand on $\mu = \hat{\mathbf{s}}_1 \cdot \hat{\mathbf{s}}$ of the Galaxies Two-Point Correlation Function (TPCF) in the Plane Parallel (PP) approximation, i.e. the following function $f(s, \mu)$:

    \[ f_L(s, \mu) = \xi^{\mathrm{pp, g}} \left(s, \mu\right) + \, \mathcal{L}_L(\mu) \, \times \begin{cases} \frac{1}{\mathcal{N}}\mathcal{F}(s, \mu) \quad \mathrm{use\_windows == true} \\ 1 \quad\quad \mathrm{use\_windows == false} - \end{cases}\]

    where:

    • $\xi^{\mathrm{pp, g}}(s,\mu)$ is the TPCF of the Galaxies in the PP approximation with the angular dependence, computed from ξ_PPGalaxies.
    • $\mathcal{L}_L(\mu)$ is the Legendre polynomial of order $L$
    • $\mathcal{F}(s, \mu)$ is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)
    • $\mathcal{N}$ is the integrated window function norm (check the documentation of WindowFIntegrated)

    Inputs

    • s: the comoving distance where must be evaluated the integral

    • μ: the cosine between s1 and s where must be evaluated the integral

    • cosmo::Cosmology: cosmology to be used in this computation

    Optional arguments

    • L::Int = 0: order of the Legendre polynomial to be used

    • use_windows::Bool = false: tells if the integrand must consider $\mathcal{F}$ or not.

    See also:ξ_PPGalaxies, ξ_PPGalaxies_multipole, map_ξ_PPGalaxies_multipole, print_map_ξ_PPGalaxies_multipole WindowFIntegrated, Cosmology,

    source
    GaPSE.ξ_PPGalaxies_multipoleFunction
     ξ_PPGalaxies_multipole(
    -      s, cosmo::Cosmology;
    -      L::Int = 0, use_windows::Bool = true,
    -      atol_quad::Float64 = 0.0,
    -      rtol_quad::Float64 = 1e-2,
    -      enhancer::Float64 = 1e6 ) ::Float64

    Evaluate the multipole of order L of the Galaxies Two-Point Correlation Function (TPCF) in the Plane Parallel (PP) term i.e. the following function $\xi^{\mathrm{pp, g}} (s)$:

    \[ \xi^{\mathrm{pp, g}} (s) = \frac{2 L + 1}{2} \int_{-1}^{+1} \mathrm{d}\mu \; + \end{cases}\]

    where:

    • $\xi^{\mathrm{pp, g}}(s,\mu)$ is the TPCF of the Galaxies in the PP approximation with the angular dependence, computed from ξ_PPGalaxies.
    • $\mathcal{L}_L(\mu)$ is the Legendre polynomial of order $L$
    • $\mathcal{F}(s, \mu)$ is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)
    • $\mathcal{N}$ is the integrated window function norm (check the documentation of WindowFIntegrated)

    Inputs

    • s: the comoving distance where must be evaluated the integral

    • μ: the cosine between s1 and s where must be evaluated the integral

    • cosmo::Cosmology: cosmology to be used in this computation

    Keyword Arguments

    • L::Int = 0: order of the Legendre polynomial to be used

    • use_windows::Bool = false: tells if the integrand must consider $\mathcal{F}$ or not.

    • b = nothing : galaxy bias value to be considered in the computation; if set to nothing, its value is inferred from the other keyword argument sp;

    • sp::Int64=1 : galaxy type to be considered between the two species stored in cosmo: it can be either 1 or 2, and the corresponding set of galaxy, magnification and evolutionary biases stored in cosmo are considered; in case b is set to a value, this parameter is ignored.

    See also:ξ_PPGalaxies, ξ_PPGalaxies_multipole, map_ξ_PPGalaxies_multipole, print_map_ξ_PPGalaxies_multipole WindowFIntegrated, Cosmology,

    source
    GaPSE.ξ_PPGalaxies_multipoleFunction
    ξ_PPGalaxies_multipole(
    +    s, cosmo::Cosmology;
    +    L::Int = 0, use_windows::Bool = true,
    +    atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,
    +    enhancer::Float64 = 1e6, 
    +    b=nothing, sp::Int64=1 ) ::Float64

    Evaluate the multipole of order L of the Galaxies Two-Point Correlation Function (TPCF) in the Plane Parallel (PP) term i.e. the following function $\xi^{\mathrm{pp, g}} (s)$:

    \[ \xi^{\mathrm{pp, g}} (s) = \frac{2 L + 1}{2} \int_{-1}^{+1} \mathrm{d}\mu \; \xi^{\mathrm{pp, g}} \left(s, \mu\right) \, \mathcal{L}_L(\mu) \, \times \begin{cases} \frac{1}{\mathcal{N}}\mathcal{F}(s, \mu) \quad \mathrm{use\_windows == true} \\ 1 \quad\quad \mathrm{use\_windows == false} - \end{cases}\]

    where:

    • $\xi^{\mathrm{pp, g}}(s,\mu)$ is the TPCF of the Galaxies in the PP approximation with the angular dependence, computed from ξ_PPGalaxies.
    • $\mathcal{L}_L(\mu)$ is the Legendre polynomial of order $L$
    • $\mathcal{F}(s, \mu)$ is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)
    • $\mathcal{N}$ is the integrated window function norm (check the documentation of WindowFIntegrated)

    The integration over $\mu$ is preformed through the Julia function quadgk from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.

    Inputs

    • s: the comoving distance where must be evaluated the integral

    • cosmo::Cosmology: cosmology to be used in this computation

    Optional arguments

    • L::Int = 0: order of the Legendre polynomial to be used

    • use_windows::Bool = false: tells if the integrand must consider $\mathcal{F}$ or not.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    See also: ξ_PPGalaxies, integrand_ξ_PPGalaxies_multipole, map_ξ_PPGalaxies_multipole, print_map_ξ_PPGalaxies_multipole WindowFIntegrated, Cosmology,

    source
    GaPSE.map_ξ_PPGalaxies_multipoleFunction
     map_ξ_PPGalaxies_multipole(
    -      cosmo::Cosmology, ss = nothing;
    -      L::Int = 0, use_windows::Bool = true,
    -      atol_quad::Float64 = 0.0,
    -      rtol_quad::Float64 = 1e-2,
    -      enhancer::Float64 = 1e6,
    -      pr::Bool = true,
    -      N_log::Int = 1000,
    -      kwargs...) ::Tuple{Vector{Float64}, Vector{Float64}}

    Evaluate the multipole of order L of the Galaxies Two-Point Correlation Function (TPCF) in the Plane Parallel (PP) term for all the comoving distance values stored inside ss. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log).

    The function evaluated is then the following $\xi^{\mathrm{pp, g}} (s)$:

    \[ \xi^{\mathrm{pp, g}} (s) = \frac{2 L + 1}{2} \int_{-1}^{+1} \mathrm{d}\mu \; + \end{cases}\]

    where:

    • $\xi^{\mathrm{pp, g}}(s,\mu)$ is the TPCF of the Galaxies in the PP approximation with the angular dependence, computed from ξ_PPGalaxies.
    • $\mathcal{L}_L(\mu)$ is the Legendre polynomial of order $L$
    • $\mathcal{F}(s, \mu)$ is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)
    • $\mathcal{N}$ is the integrated window function norm (check the documentation of WindowFIntegrated)

    The integration over $\mu$ is preformed through the Julia function quadgk from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.

    Inputs

    • s: the comoving distance where must be evaluated the integral

    • cosmo::Cosmology: cosmology to be used in this computation

    Keyword Arguments

    • L::Int = 0: order of the Legendre polynomial to be used

    • use_windows::Bool = false: tells if the integrand must consider $\mathcal{F}$ or not.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    • b = nothing : galaxy bias value to be considered in the computation; if set to nothing, its value is inferred from the other keyword argument sp;

    • sp::Int64=1 : galaxy type to be considered between the two species stored in cosmo: it can be either 1 or 2, and the corresponding set of galaxy, magnification and evolutionary biases stored in cosmo are considered; in case b is set to a value, this parameter is ignored.

    See also: ξ_PPGalaxies, integrand_ξ_PPGalaxies_multipole, map_ξ_PPGalaxies_multipole, print_map_ξ_PPGalaxies_multipole WindowFIntegrated, Cosmology,

    source
    GaPSE.map_ξ_PPGalaxies_multipoleFunction
    map_ξ_PPGalaxies_multipole(
    +    cosmo::Cosmology, ss = nothing;
    +    L::Int = 0, use_windows::Bool = true,
    +    atol_quad::Float64 = 0.0,
    +    rtol_quad::Float64 = 1e-2,
    +    enhancer::Float64 = 1e6,
    +    pr::Bool = true,
    +    N_log::Int = 1000,
    +    kwargs...) ::Tuple{Vector{Float64}, Vector{Float64}}

    Evaluate the multipole of order L of the Galaxies Two-Point Correlation Function (TPCF) in the Plane Parallel (PP) term for all the comoving distance values stored inside ss. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log).

    The function evaluated is then the following $\xi^{\mathrm{pp, g}} (s)$:

    \[ \xi^{\mathrm{pp, g}} (s) = \frac{2 L + 1}{2} \int_{-1}^{+1} \mathrm{d}\mu \; \xi^{\mathrm{pp, g}} \left(s, \mu\right) \, \mathcal{L}_L(\mu) \, \times \begin{cases} \frac{1}{\mathcal{N}}\mathcal{F}(s, \mu) \quad \mathrm{use\_windows == true} \\ 1 \quad\quad \mathrm{use\_windows == false} - \end{cases}\]

    where:

    • $\xi^{\mathrm{pp, g}}(s,\mu)$ is the TPCF of the Galaxies in the PP approximation with the angular dependence, computed from ξ_PPGalaxies.
    • $\mathcal{L}_L(\mu)$ is the Legendre polynomial of order $L$
    • $\mathcal{F}(s, \mu)$ is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)
    • $\mathcal{N}$ is the integrated window function norm (check the documentation of WindowFIntegrated)

    The integration over $\mu$ is preformed through the Julia function quadgk from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.

    Inputs

    • cosmo::Cosmology: cosmology to be used in this computation

    • ss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). This is why it is returned also the vector of the "input" values.

    Optional arguments

    This function recall internally ξ_PPGalaxies_multipole, so the kwargs of the latter are valid also for the former; we report them for comfortness:

    • L::Int = 0: order of the Legendre polynomial to be used

    • use_windows::Bool = false: tells if the integrand must consider $\mathcal{F}$ or not.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    • N_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing

    • pr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)

    Returns

    A Tuple{Vector{Float64}, Vector{Float64}}, which has as first element the ss vector and as second one the corresponding ξ value evaluated.

    See also: ξ_PPGalaxies, integrand_ξ_PPGalaxies_multipole, ξ_PPGalaxies_multipole, print_map_ξ_PPGalaxies_multipole WindowFIntegrated, Cosmology,

    source
    GaPSE.print_map_ξ_PPGalaxies_multipoleFunction
     print_map_ξ_PPGalaxies_multipole(
    -      cosmo::Cosmology, out::String,
    -      ss = nothing;
    -      L::Int = 0, use_windows::Bool = true,
    -      atol_quad::Float64 = 0.0,
    -      rtol_quad::Float64 = 1e-2,
    -      enhancer::Float64 = 1e6,
    -      pr::Bool = true,
    -      N_log::Int = 1000,
    -      kwargs...)

    Evaluate the multipole of order L of the Galaxies Two-Point Correlation Function (TPCF) in the Plane Parallel (PP) term for all the comoving distance values stored inside ss, and print the results (with all the options used) in a file named out. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log).

    The function evaluated is then the following $\xi^{\mathrm{pp, g}} (s)$:

    \[ \xi^{\mathrm{pp, g}} (s) = \frac{2 L + 1}{2} \int_{-1}^{+1} \mathrm{d}\mu \; + \end{cases}\]

    where:

    • $\xi^{\mathrm{pp, g}}(s,\mu)$ is the TPCF of the Galaxies in the PP approximation with the angular dependence, computed from ξ_PPGalaxies.
    • $\mathcal{L}_L(\mu)$ is the Legendre polynomial of order $L$
    • $\mathcal{F}(s, \mu)$ is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)
    • $\mathcal{N}$ is the integrated window function norm (check the documentation of WindowFIntegrated)

    The integration over $\mu$ is preformed through the Julia function quadgk from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.

    Inputs

    • cosmo::Cosmology: cosmology to be used in this computation

    • ss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). This is why it is returned also the vector of the "input" values.

    Optional arguments

    This function recall internally ξ_PPGalaxies_multipole, so the kwargs of the latter are valid also for the former; we report them for comfortness:

    • L::Int = 0: order of the Legendre polynomial to be used

    • use_windows::Bool = false: tells if the integrand must consider $\mathcal{F}$ or not.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    • N_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing

    • pr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)

    • b = nothing : galaxy bias value to be considered in the computation; if set to nothing, its value is inferred from the other keyword argument sp;

    • sp::Int64=1 : galaxy type to be considered between the two species stored in cosmo: it can be either 1 or 2, and the corresponding set of galaxy, magnification and evolutionary biases stored in cosmo are considered; in case b is set to a value, this parameter is ignored.

    Returns

    A Tuple{Vector{Float64}, Vector{Float64}}, which has as first element the ss vector and as second one the corresponding ξ value evaluated.

    See also: ξ_PPGalaxies, integrand_ξ_PPGalaxies_multipole, ξ_PPGalaxies_multipole, print_map_ξ_PPGalaxies_multipole WindowFIntegrated, Cosmology,

    source
    GaPSE.print_map_ξ_PPGalaxies_multipoleFunction
    print_map_ξ_PPGalaxies_multipole(
    +    cosmo::Cosmology, out::String,
    +    ss = nothing;
    +    L::Int = 0, use_windows::Bool = true,
    +    atol_quad::Float64 = 0.0,
    +    rtol_quad::Float64 = 1e-2,
    +    enhancer::Float64 = 1e6,
    +    pr::Bool = true,
    +    N_log::Int = 1000,
    +    kwargs...)

    Evaluate the multipole of order L of the Galaxies Two-Point Correlation Function (TPCF) in the Plane Parallel (PP) term for all the comoving distance values stored inside ss, and print the results (with all the options used) in a file named out. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log).

    The function evaluated is then the following $\xi^{\mathrm{pp, g}} (s)$:

    \[ \xi^{\mathrm{pp, g}} (s) = \frac{2 L + 1}{2} \int_{-1}^{+1} \mathrm{d}\mu \; \xi^{\mathrm{pp, g}} \left(s, \mu\right) - \, \mathcal{L}_L(\mu) \, \times + \, \mathcal{L}_L(\mu) \, \times \begin{cases} \frac{1}{\mathcal{N}}\mathcal{F}(s, \mu) \quad \mathrm{use\_windows == true} \\ 1 \quad\quad \mathrm{use\_windows == false} - \end{cases}\]

    where:

    • $\xi^{\mathrm{pp, g}}(s,\mu)$ is the TPCF of the Galaxies in the PP approximation with the angular dependence, computed from ξ_PPGalaxies.
    • $\mathcal{L}_L(\mu)$ is the Legendre polynomial of order $L$
    • $\mathcal{F}(s, \mu)$ is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)
    • $\mathcal{N}$ is the integrated window function norm (check the documentation of WindowFIntegrated)

    The integration over $\mu$ is preformed through the Julia function quadgk from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.

    Inputs

    • cosmo::Cosmology: cosmology to be used in this computation

    • out::String : name of the file where the results must be stored.

    • ss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). This is why it is returned also the vector of the "input" values.

    Optional arguments

    This function recall internally map_ξ_PPGalaxies_multipole, so the kwargs of the latter are valid also for the former; we report them for comfortness:

    • L::Int = 0: order of the Legendre polynomial to be used

    • use_windows::Bool = false: tells if the integrand must consider $\mathcal{F}$ or not.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    • N_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing

    • pr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)

    See also: ξ_PPGalaxies, integrand_ξ_PPGalaxies_multipole, ξ_PPGalaxies_multipole, map_ξ_PPGalaxies_multipole WindowFIntegrated, Cosmology,

    source
    + \end{cases}\]

    where:

    • $\xi^{\mathrm{pp, g}}(s,\mu)$ is the TPCF of the Galaxies in the PP approximation with the angular dependence, computed from ξ_PPGalaxies.
    • $\mathcal{L}_L(\mu)$ is the Legendre polynomial of order $L$
    • $\mathcal{F}(s, \mu)$ is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)
    • $\mathcal{N}$ is the integrated window function norm (check the documentation of WindowFIntegrated)

    The integration over $\mu$ is preformed through the Julia function quadgk from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.

    Inputs

    • cosmo::Cosmology: cosmology to be used in this computation

    • out::String : name of the file where the results must be stored.

    • ss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). This is why it is returned also the vector of the "input" values.

    Optional arguments

    This function recall internally map_ξ_PPGalaxies_multipole, so the kwargs of the latter are valid also for the former; we report them for comfortness:

    • L::Int = 0: order of the Legendre polynomial to be used

    • use_windows::Bool = false: tells if the integrand must consider $\mathcal{F}$ or not.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    • N_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing

    • pr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)

    • b = nothing : galaxy bias value to be considered in the computation; if set to nothing, its value is inferred from the other keyword argument sp;

    • sp::Int64=1 : galaxy type to be considered between the two species stored in cosmo: it can be either 1 or 2, and the corresponding set of galaxy, magnification and evolutionary biases stored in cosmo are considered; in case b is set to a value, this parameter is ignored.

    See also: ξ_PPGalaxies, integrand_ξ_PPGalaxies_multipole, ξ_PPGalaxies_multipole, map_ξ_PPGalaxies_multipole WindowFIntegrated, Cosmology,

    source
    diff --git a/dev/PowerSpectra/index.html b/dev/PowerSpectra/index.html new file mode 100644 index 00000000..e2c21585 --- /dev/null +++ b/dev/PowerSpectra/index.html @@ -0,0 +1,96 @@ + +Calculating Power Spectra · GaPSE.jl

    Fast Fourier Transforms and Power Spectra

    The FFTLog package

    GaPSE.FFTLog._c_windowFunction
    _c_window(N::AbstractArray, NCut::Int)

    Returns the smoothing window function $W(x, N_\mathrm{cut})$ as defined in Eq. (C.1) of McEwen et al. (2016):

    \[W(x) = \begin{cases} + \displaystyle + \frac{x - x_{\mathrm{min}}}{x_{\mathrm{left}} - x_{\mathrm{min}}} - \frac{1}{2\pi}\sin\left( 2\pi \frac{x - x_{\mathrm{min}}}{x_{\mathrm{left}} - x_{\mathrm{min}}}\right) \; , \quad\quad + x < x_{\mathrm{left}}\\[12pt] + \displaystyle + 1 \; , \quad\quad\quad\quad\quad\quad\quad\quad + \quad\quad\quad\quad\quad\quad\quad\; \, + x_{\mathrm{left}} \leq x \leq x_{\mathrm{right}}\\[8pt] + \displaystyle + \frac{x_{\mathrm{max}} - x}{x_{\mathrm{max}} - x_{\mathrm{right}}} - + \frac{1}{2\pi}\sin\left( + 2\pi \frac{x_{\mathrm{max}} - x}{x_{\mathrm{max}} - x_{\mathrm{right}}} + \right) \; , \quad x > x_{\mathrm{right}} +\end{cases}\]

    source
    GaPSE.FFTLog._logextrapFunction
    _logextrap(x::Vector, 
    +    n_extrap_low::Int, n_extrap_high::Int) ::Vector

    Given an input LOGARITHMICALLY SPACED vector of values x, expands that vector adding n_extrap_low point on the left and n_extrap_high on the right. Consequently, for an input x of N values, it returns a vector X with length N + n_extrap_low + n_extrap_right.

    It is not assumed that the spacing is the same in the two edges of the data.

    source
    GaPSE.FFTLog._zeropadFunction
    _zeropad(x::Vector, n_pad::Int)::Vector

    Concatenates n_pad zeros both on the left and on the right of the input vector x. Consequently, for an input x of N values, it returns a vector X with length N + 2 * n_pad.

    source
    GaPSE.FFTLog._eval_cm!Function
    _eval_cm!(plan::AbstractPlan, fx)

    Given a plan::AbstractPlan, compute the power-law expansion coefficients $c_m$ of the input data vector fx. It is assumed that fx contains the y-axis values corresponding to the x-axis ones plan.x, and consequently their length must be the same. The computed cm vector is stored in plan.cm, and nothing is returned.

    For a function f evaluated the N x-axis values x, the c_m coefficients are

    \[c_m = W_m \sum_{q=0}^{N-1} \frac{f(x_q)}{x_q^\nu} e^{-\frac{2\pi}{N}i m q}\]

    where $W_m$ is the smoothing window function computed via _c_window and $\nu$ is the bias parameter stored in plan.ν

    See also: _c_window, AbstractPlan

    source
    GaPSE.FFTLog._eval_ηm!Function
    _eval_ηm!(plan::AbstractPlan)

    Given an input plan::AbstractPlan, compute all the $\eta_m$ coefficients, defined as follows:

    \[\eta_m = \frac{2 \pi m}{N \, \Delta_{\ln x}} \, \]

    where $N$, $\Delta_{\ln x}$ and the $m$ vector are respectively plan.N, plan.d_ln_x and plan.m.

    The computed ηm vector is stored in plan.cm, and nothing is returned.

    See also: AbstractPlan

    source
    GaPSE.FFTLog.SingleBesselPlanType
    mutable struct SingleBesselPlan{T,C} <: AbstractPlan

    This struct contains all the elements necessary to evaluate the integral with one Bessel function. All the arguments of this struct are keyword arguments. Here we show the compelte list and their default values:

    • x::Vector{T} : the LOGARITHMICALLY SPACED vector of x-axis values. You need always to provide this vector.

    • y::Matrix{T} = zeros(10, 10) : the logarithmically spaced vector of the values where the transformed function will be evaluated. It has the same length of x

    • fy::Matrix{T} = zeros(10, 10) : the y-axis of the transformed function; it is a vector if only one Bessel function order is provided in the functions

    • hm::Matrix{C} = zeros(ComplexF64, 10, 10) : matrix of the coefficients $h_m = c_m \, h_{m, \mathrm{corr}} \, g_\ell$, where $c_m$s, $h_{m, \mathrm{corr}}$s and $g_\ell$ are respectively stored in plan.cm, plan.hm_corr and plan.gl. Each column contains all the $h_m$s for a given spherical Bessel order $\ell$.

    • hm_corr::Matrix{C} = zeros(ComplexF64, 10, 10) : matrix of the coefficients $h_{m, \mathrm{corr}} = (x_0 y_0)^{- i \eta_m}$, where $\eta_m = \frac{2 \pi m}{N \, \Delta_{\ln x}}$ and $x_0$ and $y_0$ are the smallest values of plan.x and plan.y, respectively. Each column contains all the $h_{m, \mathrm{corr}}$s for a given spherical Bessel order $\ell$.

    • d_ln_x::T = log(x[2] / x[1]) : the spacing between the x elements.

    • fy_corr::Matrix{T} = zeros(10, 10) : matrix of the coefficients $K(y) = \frac{\sqrt{\pi}}{4 y^{\nu}}$, where $\nu$ is the bias paremeter stored in plan.ν. Each column contains all the $h_{m, \mathrm{corr}}$s for a given spherical Bessel order $\ell$.

    • original_length::Int = length(x) : the original inpout length of the x vector; it is stored because, for numerical stability purposes, during the computation this vector is expanded at the edged, and so the input function ones.

    • gl::Matrix{C} = zeros(ComplexF64, 100, 100) : vector with the $g_\ell$ values for all the input spherical Bessel order.

    • ν::T = 1.01 : bias parameter.

    • n_extrap_low::Int = 0 : number of points to concatenate on the left of x, logarithmically distributed with the same ratio of the left-edge elements of x

    • n_extrap_high::Int = 0 : number of points to concatenate on the right of x, logarithmically distributed with the same ratio of the right-edge elements of x

    • c_window_width::T = 0.25 : position where the tapering by the window function begins; by default c_window_width= 0.25, so is begins when $m = \pm 0.75 \times N/2$, where $N$ is the size of the input array.

    • n_pad::Int = 0 : number of zeros to be concatenated both on the left and on the right of the input function.

    • n::Int = 0 : the derivative order for the spherical Bessel function.

    • N::Int = original_length + n_extrap_low + n_extrap_high + 2 * n_pad : number of points where the input function is known; are considered both the "true values" and the fake ones, added for a more numerically stable fft.

    • m::Vector{T} = zeros(N) : vector with all the indexes that will be used for the power-law expansion of the input function

    • cm::Vector{C} = zeros(ComplexF64, N) : vector containing all the input function power-law exapnsion $c_m$ coefficients.

    • ηm::Vector{T} = zeros(N) : vector of all the $\eta_m = \frac{2 \pi m}{N \, \Delta_{\ln x}}$ coefficients.

    • plan_rfft::FFTW.rFFTWPlan = plan_rfft(randn(1024)) : a random initialized fft plan of FFTW

    • plan_irfft = plan_irfft( randn(Complex{Float64}, 2, Int(floor((original_length + n_extrap_low + n_extrap_high + 2 * n_pad)) / 2) + 1), original_length + n_extrap_low + n_extrap_high + 2 * n_pad, 2 ) :

    See also: AbstractPlan

    source
    GaPSE.FFTLog._eval_glFunction
    _eval_gl(ell, z::Vector, n::Int )::Vector

    Evaluate the $g_{\ell}$ coefficients, defined as

    \[g_{\ell}^{(n)}(z) = (-1)^n \, 2^{z-n} \, \frac{ + \Gamma\left(\frac{\ell + z - n}{2}\right) + }{ + \Gamma\left(\frac{3 + \ell + n - z}{2}\right) + }\]

    source
    GaPSE.FFTLog._eval_y!Function
    _eval_y!(plan::Union{SingleBesselPlan, HankelPlan}, ell::Vector)

    Given an input plan::Union{SingleBesselPlan, HankelPlan}, compute the y values where the output function will be evaluated and the coefficient $K(y)$ outside the IFFT. They are, respectively:

    \[y = \frac{\ell + 1}{x} \; , \quad\quad K(y) = \frac{\sqrt{\pi}}{4 y^{\nu}}\]

    The vector of their values are stored respectively in plan.y and plan.fy_corr, and nothing is returned.

    See also: SingleBesselPlan, HankelPlan

    source
    GaPSE.FFTLog._eval_gl_hm!Function
    _eval_gl_hm!(plan::Union{SingleBesselPlan, HankelPlan}, ell::Vector)

    Given an input plan::Union{SingleBesselPlan, HankelPlan}, compute the $g_{\ell}$ values and the $h_{m, \mathrm{corr}}$ coefficents inside the IFFT. They are, respectively:

    \[g_{\ell}^{(n)}(z) = (-1)^n \, 2^{z-n} \, \frac{ + \Gamma\left(\frac{\ell + z - n}{2}\right) + }{ + \Gamma\left(\frac{3 + \ell + n - z}{2}\right) + } \; , \quad\quad +h_{m, \mathrm{corr}} = (x_0 y_0)^{- i \eta_m}\]

    where $\eta_m = \frac{2 \pi m}{N \, \Delta_{\ln x}}$, and $x_0$ $y_0$ are the smallest values of plan.x and plan.y, respectively.

    The vector of their values are stored in plan.gl and plan.hy_corr, and nothing is returned.

    See also: SingleBesselPlan, HankelPlan

    source
    GaPSE.FFTLog.prepare_FFTLog!Function
    prepare_FFTLog!(plan::Union{SingleBesselPlan, HankelPlan}, ell::Vector)

    Given an input plan::Union{SingleBesselPlan, HankelPlan}, pre-plan an optimized real-input FFT for all the Bessel function orders stored in the vector ell. In other words, it computes:

    • the y vector of values where the transformed will be evaluated (stored in plan.y).
    • the corresponding gl vector of $g_{\ell}$ values (stored in plan.gl).
    • the m vector of indexes for the $c_m$ coefficents (stored in plan.m).
    • the corresponding ηm and hm_corr vector of $\eta_m$ and $h_{m, \mathrm{corr}}$ values (stored in plan.ηm and plan.hm_corr).

    See also: SingleBesselPlan, HankelPlan

    source
    GaPSE.FFTLog.prepare_Hankel!Function
    prepare_Hankel!(plan::HankelPlan, ell::Vector)

    Given an input plan::HankelPlan, pre-plan an optimized real-input FFT for all the Bessel function orders stored in the vector ell concerning an Hankel transform. Same as prepare_FFTLog, checks its documentation for more information.

    See also: HankelPlan, prepare_FFTLog!

    source
    GaPSE.FFTLog.evaluate_FFTLogFunction
    evaluate_FFTLog(plan::AbstractPlan, fx)::Union{Vector, Matrix}

    Given an input plan::AbstractPlan, evaluate the FFT fy of the fx y-axis data on the basis of the parameters stored in plan. The result is both stored in plan.fy and retuned as output.

    See also: AbstractPlan

    source
    evaluate_FFTLog(plan::Union{SingleBesselPlan, HankelPlan}, fx)::Union{Vector, Matrix}

    Given an input plan::Union{SingleBesselPlan, HankelPlan}, evaluate the FFT fy of the fx y-axis data on the basis of the parameters stored in plan. The result is both stored in plan.fy and retuned as output.

    See also: SingleBesselPlan,HankelPlan

    source
    GaPSE.FFTLog.evaluate_HankelFunction
    evaluate_Hankel(plan::HankelPlan, fx)::Union{Vector, Matrix}

    Given an input plan::HankelPlan, evaluate the FFT fy of the fx y-axis data on the basis of the parameters stored in plan for an Hankel transform. The result is both stored in plan.fy and retuned as output.

    See also: HankelPlan

    source
    GaPSE.FFTLog.evaluate_Hankel!Function
    evaluate_Hankel!(fy, plan::HankelPlan, fx)

    Given an input plan::HankelPlan, evaluate the FFT fy of the fx y-axis data on the basis of the parameters stored in plan for an Hankel transform. The result is stored both in plan.fy and in the input fy.

    See also: HankelPlan

    source

    The Power Spectrum with FFTLog

    GaPSE.FFTLog_PS_multipoleFunction
    FFTLog_PS_multipole(ss, xis;
    +    pr::Bool=true,
    +    L::Int=0, ν::Union{Float64,Nothing}=nothing,
    +    n_extrap_low::Int=500,
    +    n_extrap_high::Int=500, n_pad::Int=500,
    +    )

    Computes the Power Spectrum through the FFTLog algorithm. More precisely, it computes the L-order PS multipole through the following Fast Fourier Transform and the effective redshift approximation

    \[P_L(k) = \frac{2 L + 1}{A^{'}} (-i)^L \, \phi(s_\mathrm{eff}) \int_0^\infty + \mathrm{d} s \; s^2 \, j_L(ks) \, f_\mathrm{in}(s) \; , + \quad \; A^{'} = \frac{1}{4\,\pi}\]

    where $f_\mathrm{in}$ is the function samples by ss and xis.

    Optional arguments

    • pr::Bool=true : want to print the automatic messages to the screen?
    • L::Int=0 : which multipole order should I use for this computation? IT MUST MATCH THE MULTIPOLE ORDER OF THE INPUT TPCF!
    • ν::Union{Float64,Nothing} = nothing : bias parameter, i.e. exponent used to "balance" the curve; if nothing, will be set automatically to 1.5
    • n_extrap_low::Int = 500 and n_extrap_high::Int = 500 : number of points to concatenate on the left/right of the input x-axis ss vector, logarithmically distributed with the same ratio of the left/right-edge elements of ss.
    • n_pad::Int = 500 : number of zeros to be concatenated both on the left and on the right of the input function. They stabilize a lot the algorithm.

    See also: PS_multipole

    source
    GaPSE.FFTLog_all_PS_multipoleFunction
    FFTLog_all_PS_multipole(input::String,
    +    group::String=VALID_GROUPS[end];
    +    L::Int=0, pr::Bool=true,
    +    ν::Union{Float64,Nothing,Vector{Float64}}=nothing,
    +    n_extrap_low::Int=500,
    +    n_extrap_high::Int=500, n_pad::Int=500
    +)

    Computes the Power Spectrum through the FFTLog algorithm for a set of TPCFs. More precisely, it read the input file input, taking the first column as the x-axis ss vector and the following columns as the y-axis ones, and computes the L-order PS multipole through the following Fast Fourier Transform and the effective redshift approximation

    \[P_L(k) = \frac{2 L + 1}{A^{'}} (-i)^L \, \phi(s_\mathrm{eff}) \int_0^\infty + \mathrm{d} s \; s^2 \, j_L(ks) \, f_\mathrm{in}(s) \; , + \quad \; A^{'} = \frac{1}{4\,\pi}\]

    where $f_\mathrm{in}$ is the function samples by ss and each y-axis xis.

    The group::String=VALID_GROUPS[end] argument allow you to specify the group of the input TPCF, if they were computed through GAPSE. The allowed values for this argument are: LD , GNC , GNCxLD , LDxGNC , generic ,

    If you choose a group pay attention that the number of input TPCF must match the group number (16, 25, 20 and 20 respectively). The last group name (which is also the default value) is used in case the input xis do not belog to a specific group (and so no predefined number is expected).

    Optional arguments

    • L::Int=0 : which multipole order should I use for this computation? IT MUST MATCH THE MULTIPOLE ORDER OF THE INPUT TPCF!
    • pr::Bool=true : want to print the automatic messages to the screen?
    • ν::Union{Float64,Nothing} = nothing : bias parameter, i.e. exponent used to "balance" the curve; if nothing, will be set automatically to 1.5
    • n_extrap_low::Int = 500 and n_extrap_high::Int = 500 : number of points to concatenate on the left/right of the input x-axis ss vector, logarithmically distributed with the same ratio of the left/right-edge elements of ss.
    • n_pad::Int = 500 : number of zeros to be concatenated both on the left and on the right of the input function. They stabilize a lot the algorithm.
    • cut_first_n::Int=0 and cut_last_n::Int=0 : you can cout the first and/or last n elements of the input data, if they are highly irregular.

    See also: FFTLog_PS_multipole, PS_multipole

    source

    The Power Spectrum with TwoFAST

    GaPSE.TwoFAST_PS_multipoleFunction
    TwoFAST_PS_multipole(f_in;
    +    int_s_min::Float64 = 1e-1, int_s_max::Float64 = 1e3,
    +    L::Int = 0, N::Int = 1024, pr::Bool = true,
    +    k0::Union{Nothing,Float64} = nothing,
    +    right::Union{Float64,Nothing} = nothing
    +) ::Tuple{Vector{Float64}, Vector{Float64}}

    Computes the Power Spectrum from the input spline f_in through the TwoFAST xicalc function of the TwoFAST Julia package. More precisely, it computes the L-order PS multipole through the following Fast Fourier Transform and the effective redshift approximation

    \[P_L(k) = \frac{2 L + 1}{A^{'}} (-i)^L \, \phi(s_\mathrm{eff}) \int_0^\infty + \mathrm{d} s \; s^2 \, j_L(ks) \, f_\mathrm{in}(s) \; , + \quad \; A^{'} = \frac{1}{4\,\pi}\]

    where $f_\mathrm{in}$ is the inpunt spline.

    Optional arguments

    • pr::Bool=true : want to print the automatic messages to the screen?
    • L::Int=0 : which multipole order should I use for this computation? IT MUST MATCH THE MULTIPOLE ORDER OF THE INPUT TPCF!
    • N::Int = 1024 : number of points to be used in Fourier transform
    • int_s_min::Float64 = 1e-1 and int_s_max::Float64 = 1e3: extremes of integration
    • k0::Union{Nothing,Float64} = nothing : starting point for the xicalc function; if nothing, it will be set k0 = 1.0 / int_s_max
    • right::Union{Float64,Nothing} = nothing : do you want to cut the output elements with ks .> right? if set to nothing, no cut will be done.

    See also: PS_multipole

    source
    TwoFAST_PS_multipole(ss, fs;
    +    int_s_min::Float64 = 1e-1, int_s_max::Float64 = 1e3,
    +    epl::Bool = true, pr::Bool = true, L::Int = 0,
    +    N_left::Int = 12, N_right::Int = 12,
    +    p0_left = [-2.0, 1.0], p0_right = [-2.0, 1.0],
    +    k0::Union{Nothing,Float64} = nothing
    +) ::Tuple{Vector{Float64}, Vector{Float64}}

    Takes the input data vector ss and fs and creates a spline from them, passing it as input tho the other TwoFAST_PS_multipole method. Depending on the options, it may create also a power law epansions on the edges.

    Optional arguments

    • pr::Bool=true : want to print the automatic messages to the screen?
    • L::Int=0 : which multipole order should I use for this computation? IT MUST MATCH THE MULTIPOLE ORDER OF THE INPUT TPCF!
    • epl::Bool=true : do you want to extend the edges of the input vectors using two fitted power-laws (obtained from EPLs)
    • N_left::Int = 12 and N_right::Int = 12 : number of points from left right edges to be used for the power law fitting in EPLs. They matters only if in the given input file ξ is not defined until the extremes of integration int_s_min and int_s_max.
    • int_s_min::Float64 = 1e-1 and int_s_max::Float64 = 1e3: extremes of integration; if epl is set to false, their values will be automatically set to min(ss...) and max(ss...) respectively. Their values do matter only if epl=true.
    • p0_left=[-2.0, 1.0] and p0_right=[-2.0, 1.0]: vectors with the initial values for the left/right power-law fitting of EPLs; the power-law is in the form $y = f(x) = b * x^s$, so the first vector value is the initial value of $s$ (and of course the second is the one of $b$).
    • k0::Union{Nothing,Float64} = nothing : starting point for the xicalc function; if nothing, it will be set k0 = 1.0 / max(ss...)
    • right::Union{Float64,Nothing} = nothing : do you want to cut the output elements with ks .> right? if set to nothing, no cut will be done.
    • N::Int = 1024 : number of points to be used in Fourier transform
    • cut_first_n::Int=0 and cut_last_n::Int=0 : you can cout the first and/or last n elements of the input data, if they are highly irregular.

    See also: PS_multipole

    source
    GaPSE.TwoFAST_all_PS_multipoleFunction
    TwoFAST_all_PS_multipole(input::String,
    +    group::String=VALID_GROUPS[end];
    +    L::Int = 0, pr::Bool = true, 
    +    kwargs...)

    Computes the Power Spectrum through the TwoFAST xicalc function of the TwoFAST Julia package for a set of TPCFs. More precisely, it read the input file input, taking the first column as the x-axis ss vector and the following columns as the y-axis ones, and computes the L-order PS multipole through the following Fast Fourier Transform and the effective redshift approximation

    \[P_L(k) = \frac{2 L + 1}{A^{'}} (-i)^L \, \phi(s_\mathrm{eff}) \int_0^\infty + \mathrm{d} s \; s^2 \, j_L(ks) \, f_\mathrm{in}(s) \; , + \quad \; A^{'} = \frac{1}{4\,\pi}\]

    where $f_\mathrm{in}$ is the function samples by ss and each y-axis xis.

    The group::String=VALID_GROUPS[end] argument allow you to specify the group of the input TPCF, if they were computed through GAPSE. The allowed values for this argument are: LD , GNC , GNCxLD , LDxGNC , generic ,

    If you choose a group pay attention that the number of input TPCF must match the group number (16, 25, 20 and 20 respectively). The last group name (which is also the default value) is used in case the input xis do not belog to a specific group (and so no predefined number is expected).

    Optional arguments

    • pr::Bool=true : want to print the automatic messages to the screen?
    • L::Int=0 : which multipole order should I use for this computation? IT MUST MATCH THE MULTIPOLE ORDER OF THE INPUT TPCF!
    • epl::Bool=true : do you want to extend the edges of the input vectors using two fitted power-laws (obtained from EPLs)
    • N_left::Int = 12 and N_right::Int = 12 : number of points from left right edges to be used for the power law fitting in EPLs. They matters only if in the given input file ξ is not defined until the extremes of integration int_s_min and int_s_max.
    • int_s_min::Float64 = 1e-1 and int_s_max::Float64 = 1e3: extremes of integration; if epl is set to false, their values will be automatically set to min(ss...) and max(ss...) respectively. Their values do matter only if epl=true.
    • p0_left=[-2.0, 1.0] and p0_right=[-2.0, 1.0]: vectors with the initial values for the left/right power-law fitting of EPLs; the power-law is in the form $y = f(x) = b * x^s$, so the first vector value is the initial value of $s$ (and of course the second is the one of $b$).
    • k0::Union{Nothing,Float64} = nothing : starting point for the xicalc function; if nothing, it will be set k0 = 1.0 / max(ss...)
    • right::Union{Float64,Nothing} = nothing : do you want to cut the output elements with ks .> right? if set to nothing, no cut will be done.
    • N::Int = 1024 : number of points to be used in Fourier transform
    • cut_first_n::Int=0 and cut_last_n::Int=0 : you can cout the first and/or last n elements of the input data, if they are highly irregular.

    See also: TwoFAST_PS_multipole, PS_multipole

    source

    The Power Spectrum multipole computation

    GaPSE.PS_multipoleFunction
    PS_multipole(ss, fs; 
    +    pr::Bool = true, L::Int = 0, 
    +    alg::Symbol = :fftlog, 
    +    cut_first_n::Int = 0, cut_last_n::Int = 0, 
    +    kwargs...
    +    ) ::Tuple{Vector{Float64}, Vector{Float64}}
    +
    +PS_multipole(input::String; 
    +    kwargs...)

    Return the L-order PS multipole through the following Fast Fourier Transform and the effective redshift approximation:

    \[P_L(k) = \frac{2 L + 1}{A^{'}} (-i)^L \, \phi(s_\mathrm{eff}) \int_0^\infty + \mathrm{d} s \; s^2 \, j_L(ks) \, f_\mathrm{in}(s) \; , + \quad \; A^{'} = \frac{1}{4\,\pi}\]

    The second method reads the input file, takes the first column as ss and the second as fs and recalls the first method.

    Currenlty, there are two algorithms you can choose in order to perform the computation; you can choose which one to use through the keyword value alg:

    • alg = :fftlog (default and recommended option) will employ the FFTLog algorithm.
    • alg = :twofast will employ the TwoFAST xicalc function of the TwoFAST Julia package. Note that in the computation the integration range $0\leq s \leq \infty$ is reduced to int_s_min ≤ s ≤ int_s_max. This alogrithm is not the ideal choise, because TwoFAST is conceived for the direction PS -> TPCF, while is not 100% trustworthy for the other way round.

    IMPORTANT: no matter which algorithm you choose, you will need to give the input data in a LOGARITHMICALLY DISTRIBUTED scale. A linear distribution does not fit for the algorithms to apply.

    Optional arguments

    Depending on the algorithm you choose, the options would change. The options in common are:

    • pr::Bool=true : want to print the automatic messages to the screen?
    • L::Int=0 : which multipole order should I use for this computation? IT MUST MATCH THE MULTIPOLE ORDER OF THE INPUT TPCF!
    • cut_first_n::Int=0 and cut_last_n::Int=0 : you can cout the first and/or last n elements of the input data, if they are highly irregular.

    The specific ones for alg = :fftlog are:

    • ν::Union{Float64,Nothing} = nothing : bias parameter, i.e. exponent used to "balance" the curve; if nothing, will be set automatically to 1.5
    • n_extrap_low::Int = 500 and n_extrap_high::Int = 500 : number of points to concatenate on the left/right of the input x-axis ss vector, logarithmically distributed with the same ratio of the left/right-edge elements of ss.
    • n_pad::Int = 500 : number of zeros to be concatenated both on the left and on the right of the input function. They stabilize a lot the algorithm.

    The specific ones for alg = :twofast are:

    • epl::Bool=true : do you want to extend the edges of the input vectors using two fitted power-laws (obtained from EPLs)
    • N_left::Int = 12 and N_right::Int = 12 : number of points from left right edges to be used for the power law fitting in EPLs. They matters only if in the given input file ξ is not defined until the extremes of integration int_s_min and int_s_max.
    • int_s_min::Float64 = 1e-1 and int_s_max::Float64 = 1e3: extremes of integration; if epl is set to false, their values will be automatically set to min(ss...) and max(ss...) respectively. Their values do matter only if epl=true.
    • p0_left=[-2.0, 1.0] and p0_right=[-2.0, 1.0]: vectors with the initial values for the left/right power-law fitting of EPLs; the power-law is in the form $y = f(x) = b * x^s$, so the first vector value is the initial value of $s$ (and of course the second is the one of $b$).
    • k0::Union{Nothing,Float64} = nothing : starting point for the xicalc function; if nothing, it will be set k0 = 1.0 / max(ss...)
    • right::Union{Float64,Nothing} = nothing : do you want to cut the output elements with ks .> right? if set to nothing, no cut will be done.
    • N::Int = 1024 : number of points to be used in Fourier transform

    Analytical derivation

    The analytical expression previously showed can be easily obtained from the standard one:

    \[\begin{split} + P_L(k) = &\frac{2 L + 1}{A} (-i)^L \, + \int_0^\infty \mathrm{d} s_1 \; s_1^2 + \int_0^\infty \mathrm{d} s \; s^2 + \int_{-1}^{+1} \mathrm{d} \mu \; + j_L(ks) \, \xi(s_1, s, \mu) \, \phi(s_1) \, \phi(s_2) \, + \mathcal{L}_L(\mu) F\left(\frac{s}{s_1}, \mu \right) \\ + &\mathrm{with} \; \;s_2 = s_2(s_1, s, μ) = \sqrt{s_1^2 + s^2 + 2s_1s\mu} + \; + , \quad A(s_\mathrm{max}, s_\mathrm{min}, \theta_\mathrm{max}) + \frac{ + V(s_\mathrm{max}, s_\mathrm{min}, \theta_\mathrm{max}) + }{4 \, \pi^2} +\end{split}\]

    with the definition

    \[f_\mathrm{in}(s_1, s) = \int_{-1}^{+1} \mathrm{d} \mu \; + \xi(s_1, s, \mu) \, \phi(s_2) \, + \mathcal{L}_L(\mu) \, F\left(\frac{s}{s_1}, \mu \right)\]

    and the application of the effective redshift approximation.

    Returns

    A Tuple{Vector{Float64}, Vector{Float64}} with:

    • the k values vector as first element;
    • the correspoding PS pk values vector as second one.

    See also: V_survey, A, A_prime, EPLs, print_PS_multipole

    source
    GaPSE.print_PS_multipoleFunction
    print_PS_multipole(ss, fs, out::String;
    +    L::Int=0, pr::Bool=true, alg::Symbol=:fftlog, kwargs...)
    +print_PS_multipole(input::String, out::String;
    +    kwargs...)

    Takes in input a filename input where is stored a TPCF multipole, calculate the L-order PS multipole through the following Fast Fourier Transform and the effective redshift approximation

    \[P_L(k) = \frac{2 L + 1}{A^{'}} (-i)^L \, \phi(s_\mathrm{eff}) \int_0^\infty + \mathrm{d} s \; s^2 \, j_L(ks) \, f_\mathrm{in}(s) \; , + \quad \; A^{'} = \frac{1}{4\,\pi}\]

    where $f_\mathrm{in}$ is the function samples by ss and xis, and save it in the file out, together with the options used for the computation.

    The second method reads the input file, takes the first column as ss and the second as fs and recalls the first method.

    Optional arguments

    Depending on the algorithm you choose, the options would change. The options in common are:

    • pr::Bool=true : want to print the automatic messages to the screen?
    • L::Int=0 : which multipole order should I use for this computation? IT MUST MATCH THE MULTIPOLE ORDER OF THE INPUT TPCF!
    • cut_first_n::Int=0 and cut_last_n::Int=0 : you can cout the first and/or last n elements of the input data, if they are highly irregular.
    • alg::Symbol = :fftlog : algorithm to be used for the computation. Currenlty, there are two algorithms you can coose in order to perform the computation:
      • alg = :fftlog (default and recommended option) will employ the FFTLog algorithm.
      • alg = :twofast will employ the TwoFAST xicalc function of the TwoFAST Julia package. Note that in the computation the integration range $0\leq s \leq \infty$ is reduced to int_s_min ≤ s ≤ int_s_max. This alogrithm is not the ideal choise, because TwoFAST is conceived for the direction PS -> TPCF, while is not 100% trustworthy for the other way round.

    The specific ones for alg = :fftlog are:

    • ν::Union{Float64,Nothing} = nothing : bias parameter, i.e. exponent used to "balance" the curve; if nothing, will be set automatically to 1.5
    • n_extrap_low::Int = 500 and n_extrap_high::Int = 500 : number of points to concatenate on the left/right of the input x-axis ss vector, logarithmically distributed with the same ratio of the left/right-edge elements of ss.
    • n_pad::Int = 500 : number of zeros to be concatenated both on the left and on the right of the input function. They stabilize a lot the algorithm.

    The specific ones for alg = :twofast are:

    • epl::Bool=true : do you want to extend the edges of the input vectors using two fitted power-laws (obtained from EPLs)
    • N_left::Int = 12 and N_right::Int = 12 : number of points from left right edges to be used for the power law fitting in EPLs. They matters only if in the given input file ξ is not defined until the extremes of integration int_s_min and int_s_max.
    • int_s_min::Float64 = 1e-1 and int_s_max::Float64 = 1e3: extremes of integration; if epl is set to false, their values will be automatically set to min(ss...) and max(ss...) respectively. Their values do matter only if epl=true.
    • p0_left=[-2.0, 1.0] and p0_right=[-2.0, 1.0]: vectors with the initial values for the left/right power-law fitting of EPLs; the power-law is in the form $y = f(x) = b * x^s$, so the first vector value is the initial value of $s$ (and of course the second is the one of $b$).
    • k0::Union{Nothing,Float64} = nothing : starting point for the xicalc function; if nothing, it will be set k0 = 1.0 / max(ss...)
    • right::Union{Float64,Nothing} = nothing : do you want to cut the output elements with ks .> right? if set to nothing, no cut will be done.
    • N::Int = 1024 : number of points to be used in Fourier transform

    See also: V_survey, A, A_prime, EPLs, PS_multipole

    source
    GaPSE.all_PS_multipoleFunction
    function all_PS_multipole(input::String,
    +    group::String=VALID_GROUPS[end];
    +    L::Int = 0, pr::Bool = true, 
    +    alg::Symbol=:fftlog, kwargs...
    +    ) ::Tuple{Vector{Float64}, Vector{Vector{Float64}}}

    Given an input file where the first column is the x-axis data one and all the following columns are the corresponding y-data ones, this function computes all the Power Spectra of each y-data column and return a Tuple containing

    • as first element, the ks values, common to all the PS
    • as second element, a vector where in each position there is the Power Spectra corresponding to the associated inputy y-data.

    The group::String=VALID_GROUPS[end] argument allow you to specify the group of the input TPCF, if they were computed through GAPSE. The allowed values for this argument are: LD , GNC , GNCxLD , LDxGNC , generic ,

    If you choose a group pay attention that the number of input TPCF must match the group number (16, 25, 20 and 20 respectively). The last group name (which is also the default value) is used in case the input xis do not belog to a specific group (and so no predefined number is expected).

    Optional arguments

    Depending on the algorithm you choose, the options would change. The options in common are:

    • pr::Bool=true : want to print the automatic messages to the screen?
    • L::Int=0 : which multipole order should I use for this computation? IT MUST MATCH THE MULTIPOLE ORDER OF THE INPUT TPCF!
    • cut_first_n::Int=0 and cut_last_n::Int=0 : you can cout the first and/or last n elements of the input data, if they are highly irregular.
    • alg::Symbol = :fftlog : algorithm to be used for the computation. Currenlty, there are two algorithms you can coose in order to perform the computation:
      • alg = :fftlog (default and recommended option) will employ the FFTLog algorithm.
      • alg = :twofast will employ the TwoFAST xicalc function of the TwoFAST Julia package. Note that in the computation the integration range $0\leq s \leq \infty$ is reduced to int_s_min ≤ s ≤ int_s_max. This alogrithm is not the ideal choise, because TwoFAST is conceived for the direction PS -> TPCF, while is not 100% trustworthy for the other way round.

    The specific ones for alg = :fftlog are:

    • ν::Union{Float64,Nothing} = nothing : bias parameter, i.e. exponent used to "balance" the curve; if nothing, will be set automatically to 1.5
    • n_extrap_low::Int = 500 and n_extrap_high::Int = 500 : number of points to concatenate on the left/right of the input x-axis ss vector, logarithmically distributed with the same ratio of the left/right-edge elements of ss.
    • n_pad::Int = 500 : number of zeros to be concatenated both on the left and on the right of the input function. They stabilize a lot the algorithm.

    The specific ones for alg = :twofast are:

    • epl::Bool=true : do you want to extend the edges of the input vectors using two fitted power-laws (obtained from EPLs)
    • N_left::Int = 12 and N_right::Int = 12 : number of points from left right edges to be used for the power law fitting in EPLs. They matters only if in the given input file ξ is not defined until the extremes of integration int_s_min and int_s_max.
    • int_s_min::Float64 = 1e-1 and int_s_max::Float64 = 1e3: extremes of integration; if epl is set to false, their values will be automatically set to min(ss...) and max(ss...) respectively. Their values do matter only if epl=true.
    • p0_left=[-2.0, 1.0] and p0_right=[-2.0, 1.0]: vectors with the initial values for the left/right power-law fitting of EPLs; the power-law is in the form $y = f(x) = b * x^s$, so the first vector value is the initial value of $s$ (and of course the second is the one of $b$).
    • k0::Union{Nothing,Float64} = nothing : starting point for the xicalc function; if nothing, it will be set k0 = 1.0 / max(ss...)
    • right::Union{Float64,Nothing} = nothing : do you want to cut the output elements with ks .> right? if set to nothing, no cut will be done.
    • N::Int = 1024 : number of points to be used in Fourier transform

    See also: EPLs, PS_multipole

    source
    GaPSE.print_all_PS_multipoleFunction
    print_all_PS_multipole(input::String, out::String,
    +    group::String = VALID_GROUPS[end]; 
    +    L::Int = 0, pr::Bool = true, 
    +    alg::Symbol = :fftlog,
    +    kwargs...)

    Given an inputfile where the first column is the x-axis data one and all the following columns are the corresponding y-data ones, this function computes all the Power Spectra of each y-data column and print in a file namedout`

    • as first column, the ks values, common to all the PS
    • as folowing columns, a vector where in each position there is the Power Spectra corresponding to the associated inputy y-data.

    The group::String=VALID_GROUPS[end] argument allow you to specify the group of the input TPCF, if they were computed through GAPSE. The allowed values for this argument are: LD , GNC , GNCxLD , LDxGNC , generic ,

    If you choose a group pay attention that the number of input TPCF must match the group number (16, 25, 20 and 20 respectively). The last group name (which is also the default value) is used in case the input xis do not belog to a specific group (and so no predefined number is expected).

    Optional arguments

    Depending on the algorithm you choose, the options would change. The options in common are:

    • pr::Bool=true : want to print the automatic messages to the screen?
    • L::Int=0 : which multipole order should I use for this computation? IT MUST MATCH THE MULTIPOLE ORDER OF THE INPUT TPCF!
    • cut_first_n::Int=0 and cut_last_n::Int=0 : you can cout the first and/or last n elements of the input data, if they are highly irregular.
    • alg::Symbol = :fftlog : algorithm to be used for the computation. Currenlty, there are two algorithms you can coose in order to perform the computation:
      • alg = :fftlog (default and recommended option) will employ the FFTLog algorithm.
      • alg = :twofast will employ the TwoFAST xicalc function of the TwoFAST Julia package. Note that in the computation the integration range $0\leq s \leq \infty$ is reduced to int_s_min ≤ s ≤ int_s_max. This alogrithm is not the ideal choise, because TwoFAST is conceived for the direction PS -> TPCF, while is not 100% trustworthy for the other way round.

    The specific ones for alg = :fftlog are:

    • ν::Union{Float64,Nothing} = nothing : bias parameter, i.e. exponent used to "balance" the curve; if nothing, will be set automatically to 1.5
    • n_extrap_low::Int = 500 and n_extrap_high::Int = 500 : number of points to concatenate on the left/right of the input x-axis ss vector, logarithmically distributed with the same ratio of the left/right-edge elements of ss.
    • n_pad::Int = 500 : number of zeros to be concatenated both on the left and on the right of the input function. They stabilize a lot the algorithm.

    The specific ones for alg = :twofast are:

    • epl::Bool=true : do you want to extend the edges of the input vectors using two fitted power-laws (obtained from EPLs)
    • N_left::Int = 12 and N_right::Int = 12 : number of points from left right edges to be used for the power law fitting in EPLs. They matters only if in the given input file ξ is not defined until the extremes of integration int_s_min and int_s_max.
    • int_s_min::Float64 = 1e-1 and int_s_max::Float64 = 1e3: extremes of integration; if epl is set to false, their values will be automatically set to min(ss...) and max(ss...) respectively. Their values do matter only if epl=true.
    • p0_left=[-2.0, 1.0] and p0_right=[-2.0, 1.0]: vectors with the initial values for the left/right power-law fitting of EPLs; the power-law is in the form $y = f(x) = b * x^s$, so the first vector value is the initial value of $s$ (and of course the second is the one of $b$).
    • k0::Union{Nothing,Float64} = nothing : starting point for the xicalc function; if nothing, it will be set k0 = 1.0 / max(ss...)
    • right::Union{Float64,Nothing} = nothing : do you want to cut the output elements with ks .> right? if set to nothing, no cut will be done.
    • N::Int = 1024 : number of points to be used in Fourier transform

    See also: EPLs, PS_multipole

    source
    diff --git a/dev/PowerSpectraGenWin/index.html b/dev/PowerSpectraGenWin/index.html new file mode 100644 index 00000000..0fe9ba06 --- /dev/null +++ b/dev/PowerSpectraGenWin/index.html @@ -0,0 +1,116 @@ + +Power Spectra for a generic window · GaPSE.jl

    Power Spectrum for a generic window fuction

    Multipoles Q_l1 of the toy-model window function

    GaPSE.WindowFIntegrated_multipoleFunction
    WindowFIntegrated_multipole(
    +        s, windowfint::GaPSE.WindowFIntegrated;
    +        s_min, s_max,
    +        L::Int=0, alg::Symbol=:lobatto,
    +        N_lob::Int=100, N_trap::Int=200,
    +        atol_quad::Float64=0.0, rtol_quad::Float64=1e-2,
    +        enhancer::Float64=1e6,
    +        )

    Evaluate the multipole of order L of the input Integrated Window Function windowfint in the input comoving distance s. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    The analytical expression of the Integrated Window Function multipole $Q_{\ell_1}$ is the following:

    \[Q_{\ell_1}(s) = + \int_{-1}^{1} \mathrm{d}\mu \; \mathcal{L}_{\ell_1}(\mu) + \; \mathcal{F}(s, \mu)\]

    where $\mathcal{L}_{\ell_1}$ is the Legendre polynomial of order $\ell_1$, $\mu$ the cosine angle,

    \[\mathcal{F}(s, \mu) = + \int_0^\infty \mathrm{d}s_1 \, \phi(s_1) \, + \phi\left(\sqrt{s_1^2 + s^2 + 2 \, s_1 \, s \, \mu}\right) + \, F\left(\frac{s}{s_1}, \mu \right)\]

    the integrated window function associated to the window function $F\left(\frac{s}{s_1}, \mu \right)$ (check the docstring of WindowF for its definition) and $\phi$ the radial window function, obtained by ϕ.

    Optional arguments

    • s_min and s_max (mandatory keyword arguments) : min and max comoving distance of the survey; their values will be internally used by

    • L::Int = 0: order of the Legendre polynomial to be used

    • alg::Symbol = :lobatto : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):

      • :quad -> the integration over $\mu$ will be preformed through the Julia function quadgk

      from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.

      • :trap -> the integration over $\mu$ will be preformed through the Julia function trapz

      from the Trapz.jl Julia package, that uses the simple trapezoidal rulae.

      • :lobatto -> the integration over $\mu$ will be preformed through the Julia function gausslobatto

      from the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature.

    • N_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • N_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    See also: WindowFIntegrated, WindowF, ϕ

    source
    GaPSE.print_map_WindowFIntegrated_multipoleFunction
    print_map_WindowFIntegrated_multipole(
    +    ss::Vector{Float64},
    +    windowFint::Union{String,GaPSE.WindowFIntegrated}, out::String;
    +    s_min, s_max,
    +    pr::Bool=true, L_max::Int=4, alg::Symbol=:lobatto,
    +    N_lob::Int=100, N_trap::Int=200,
    +    atol_quad::Float64=0.0, rtol_quad::Float64=1e-2,
    +    enhancer::Float64=1e6)
    +
    +print_map_WindowFIntegrated_multipole(
    +    s_zs::Vector{Float64},
    +    windowFint::Union{String,GaPSE.WindowFIntegrated}, out::String,
    +    file_data::String; z_min, z_max,
    +    names_bg=GaPSE.NAMES_BACKGROUND, h_0=0.7, kwargs...))
    +
    +print_map_WindowFIntegrated_multipole(
    +    windowFint::Union{String,GaPSE.WindowFIntegrated}, out::String,
    +    file_data::String; z_min, z_max,
    +    names_bg=GaPSE.NAMES_BACKGROUND, h_0=0.7, N::Int=100, 
    +    m::Float64=2.1, st::Float64=0.0, kwargs...)

    Evaluate the integrated window function multipoles $Q_{\ell_1}(s)$ in a vector of $s$ values for all the multipoles $0 \leq \ell_1 \leq L_\mathrm{max}$, and print the results in the out file. The computation of the multipole is performed through WindowFIntegrated_multipole.

    The first method takes as input:

    • ss::Vector{Float64} : the vector of s points where to sample the integrated window function multipoles $Q_{\ell_1}$.ss must be a float vector of increasing comoving distance values (so each element must be ≥ 0); the first and last values ARE NOT RELATED to s_min and s_max.
    • windowFint::Union{String,WindowFIntegrated}, i.e. the integrated window function itself; it can be passed as the namefile where the integrated window is stored in (that will be opened with WindowFIntegrated) or as a WindowFIntegrated struct directly.
    • out::String : the name of the output file
    • s_min and s_max (keyword arguments) : min and max comoving distance of the survey; their values will be internally used by

    The second method takes as input the min and max redshifts of the survey (z_minand z_max), the vector of redshifts zs::Vector{Float64} for the integrated window function sampling, windowFint as before and the file_data where can be found the association $z \rightarrow s(z)$. Such file must have the structure of the background data produced by the CLASS (link: https://github.com/lesgourg/class_public) code. Note that also zs musyt be a float vector of increasing redshift values (so each element must be ≥ 0). This method internally recalls the first one, so the other kwargs... are in common.

    The third method takes as input the min and max redshifts of the survey (z_minand z_max) and the same input as the second method (windowF, out and file_data) but NOT THE REDSHIFT SAMPLING VECTOR zs. The sampling will be internally made linearly from $s = \mathrm{st}$(where st::Float64 = 0.0 is a keyword argument) to $s = m \, s_{\mathrm{max}}$, where s_max is the comoving distance associated to z_max (for the data stored in file_data) and m::Float64 = 2.1 a coefficient that we suggest to set equals to 2 < m < 3. N::Int = 100 is the number of s values used for the sampling in the interval $[0, m \, s_{\mathrm{max}}]$. This method internally recalls the first one, so the other kwargs... are in common.

    The analytical expression for the integrated window function is the following:

    \[Q_{\ell_1}(s) = + \int_{-1}^{1} \mathrm{d}\mu \; \mathcal{L}_{\ell_1}(\mu) + \; \mathcal{F}(s, \mu)\]

    where $s$ is the comoving distance, $\mu$ the cosine angle, $\mathcal{L}_{\ell_1}$ the Legendre polynomial of order $\ell_1$ and $\mathcal{F}(x, μ)$ the integrated window function. Check the documentation of WindowFIntegrated for its definition. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    Example

    julia> windowfint = GaPSE.WindowFIntegrated(PATHTOGAPSE"data/IntegrFREFERENCEpi2z115.txt"); julia> GaPSE.printmapWindowFIntegratedmultipole(windowfint, "myQlmultipoles.txt", PATHTOGAPSE"data/WideAZAbackground.dat"; zmin = 1.0, zmax=1.5, st = 1.0, N=500, pr=false) julia> run(head -n 20 $(DIR*"my_Ql_multipoles.txt")) ###############

    GaPSE

    ###############

    This is an integration map of the Q{l1} multipoles, defined as:

    Q{l1}(s1, s \mu) = \int{-1}^{+1} \mathrm{d}\mu \mathcal{L}{l1}(\mu) \mathcal{F}(s, \mu)

    \mathcal{F}(s, \mu) = \int0^{\infty} \mathrm{d}s1 s1^2 \phi(s1) \phi(\sqrt(s1^2 + s^2 + 2 s1 s \mu)) F(s/s_1, \mu)

    where \mathcal{L}{l1}(\mu) is tre Legendre polynomial if order l1 and

    F(x, \mu) is the window function considered (for its analytical definition, check the code).

    Time needed for this computation [in s]: 27.256186962127686

    The keyword arguments were:

    s [h0^{-1} Mpc] Q{l1=0} Q{l1=1} Q{l1=2} Q{l1=3} Q{l_1=4}

    1.0 4.1857800000750543e11 -4.377435879373042e7 -5.084259164821501e8 1.2380785453994218e6 -3.641597411371149e8 13.852533751787348 4.1473071900503394e11 -6.063857839848524e8 -1.342493986435839e9 1.7150523594728626e7 -2.0225033264194965e8 ... ... ... ... ... ...

    Optional arguments

    As optional arguments of the first method:

    • s_min and s_max (mandatory keyword arguments) : min and max comoving distance of the survey; their values will be internally used by

    • pr::Bool = true : do you want to see the progress-bar of the computation?

    • L_max::Int64 = 4 : maximum multipole order to be computed

    • alg::Symbol = :lobatto : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):

      • :quad -> the integration over $\mu$ will be preformed through the Julia function quadgk

      from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.

      • :trap -> the integration over $\mu$ will be preformed through the Julia function trapz

      from the Trapz.jl Julia package, that uses the simple trapezoidal rulae.

      • :lobatto -> the integration over $\mu$ will be preformed through the Julia function gausslobatto

      from the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature.

    • N_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • N_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.

    • atol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.

    • enhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.

    The optional arguments given to the second method will be directly given to the first one. The only two exceptions are:

    • s_min and s_max (mandatory keyword arguments) : min and max redshift of the survey; their values will be internally coverted to comoving distances and passed to the first method

    • names = NAMES_BACKGROUND : the column names of the file_data. If the colum order change from the default one NAMES_BACKGROUND, you must set as input the vector of string with the correct one, with the SAME names. They are, with the default order:

      ["z", "proper time [Gyr]", "conf. time [Mpc]", "H [1/Mpc]", "comov. dist.", "ang.diam.dist.", "lum. dist.", "comov.snd.hrz.", "(.)rhog", "(.)rhob", "(.)rhocdm", "(.)rholambda", "(.)rhour", "(.)rhocrit", "gr.fac. D", "gr.fac. f"]

    • h = 0.7 : the adimensional hubble constant. By default, CLASS background data are measured with it numerically expressed (so distances are measured in Mpc, for example), while this code works with h in the unit of measure (so distances are measured in Mpc/h, for example). Change this value to 1.0 if the input data do not have this issue, or to your value of interest (0.67, 0.5, ...).

    The optional arguments given to the third method will be directly given to the first one again. The only two exceptions are:

    • names_bg=GaPSE.NAMES_BACKGROUND and h_0=0.7 : same as for the second method

    • N::Int=100 : number of points to be used in the liearly spaced comoving distance vector

    • st::Float64=0.0 : starting comoving distance of the vector

    • m:Float64 = 2.1 : coefficient that set the maximum comoving distance of the vector, equals to $m * s_max$, where s_max is the comoving distance associated to the redhsift z_max

    See also: WindowFIntegrated_multipole, WindowFIntegrated, WindowF, ϕ, BackgroundData

    source

    Creating a XiMultipole struct

    GaPSE.XiMultipolesType
    XiMultipoles(
    +    comdist::Vector{Float64}
    +    multipoles::Vector{Vector{Float64}}
    +)

    Stores the multipoles of a generic Two-Point Correlation Function.

    Constructors

    XiMultipoles(file::String; comments::Bool=true, xdt::DataType=Float64, ydt::DataType=Float64)

    Read the file file and create a XiMultipoles struct having

    • as first element the comoving distances stored in the first column (with the input type xdt)
    • as second element a vector that contains all the following columns (with the input type ydt), which are the multipoles L=0,1,2,... of the TPCF considered

    If the file start with comments (lines starting with #), set comments = true.

    source
    GaPSE.create_file_for_XiMultipolesFunction
    create_file_for_XiMultipoles(out::String, names::Vector{String}, 
    +    effect::Union{String, Integer}, group::String="GNC"; 
    +    comments::Bool=true, xdt::DataType=Float64, ydt::DataType=Float64)

    Read the column number effect (if is an Integer) or the one corresponding to the GR effect effect for the input group group (if is a String) from all the filenames stored in the Vector names, and save them in a file named out.

    The first column of out will be the same as the first column of the first filename in names; it is however checked internally if the first column of all the other files coincides with this one. The following columns of out follow the order in names. Note that effect, if passed as Integer, must be > 1 (because 1 is the index of the first column, used as x-axis).

    group must be one among the following: ["LD", "GNC", "GNCxLD", "LDxGNC", "generic"] If group=generic, then effect must be an integer (because you are not selecting a specific effect in one of the native GaPSE groups).

    xdt and ydt are the data types to be used for respectively the first column and the 2-3-4-... columns of out. Set comments=true if the files in names start with a header that must be skipped (its lines must start with #, otherwise they will not be recognised as comments).

    Example

    julia> run(cat file_1.txt)

    Generic comment line

    of the file_1.txt

    1.0 0.999999 0.34545 0.00991 ... ... ... ...

    julia> run(cat file_2.txt)

    same, for file_2.txt

    1.0 0.58244 0.12123 0.000154 ... ... ... ...

    julia> createfileforXiMultipoles("mix.txt", ["file1.txt", "file_2.txt"], 3, "generic"); julia> run(cat mix.txt) ###############

    GaPSE

    ###############

    This is a table containing the multipoles of the Two-Point Correlation Function (TPCF)

    for a generic group effect [not given, provied only the index 2] taken from the files:

    - L = 0 : file_1.txt

    - L = 1 : file_2.txt

    s [Mpc/h0] xi{L=0} xi_{L=1}

    1.0 0.34545 0.12123 ... ... ...

    source

    The Power Spectrum for a GenWin

    GaPSE.GenericWindowType
    GenericWindow(
    +    comdist::Vector{Float64}
    +    multipoles::Vector{Vector{Float64}}
    +    splines::Vector{Dierckx.Spline1D}
    +)

    Stores the multipoles of a generic window function, computed as:

    \[ Q_{\ell_1} = \int_0^{\infty} \mathrm{d}s_1 \, s_1^2 \, \phi(s_1) \, F_{\ell_1}(s_1,s)\]

    with some FFT algorithm. See Eq. (2.13) of Castorina, Di Dio (2021) for more details.

    Constructors

    GenericWindow(file::String; comments::Bool=true, xdt::DataType=Float64, ydt::DataType=Float64)

    Read the file file and create a GenericWindow struct having

    • as first element the comoving distances stored in the first column (with the input type xdt)
    • as second element a vector that contains all the following columns (with the input type ydt), which are the multipoles L=0,1,2,... of the Window FUnction considered
    • as second element a vector that contains all the splines of that multipoles

    If the file start with comments (lines starting with #), set comments = true.

    source
    GaPSE.PS_multipole_GenWinFunction
    PS_multipole_GenWin(
    +    ximult::Union{XiMultipoles,String}, genwin::Union{GenericWindow,String};
    +    alg::Symbol=:fftlog, L::Int=0,
    +    cut_first_n::Int=0, cut_last_n::Int=0,
    +    kwargs...)

    Return the L-order Power Spectrum (PS) multipole for a generic window function, through the following Fast Fourier Transform and the effective redshift approximation:

    \[ \left\langle \hat{P}_L(k) \right\rangle = + \frac{2 L + 1}{A} (-i)^L + \sum_{\ell=0}^{\infty} + \sum_{\ell_1=0}^{\infty} + \begin{pmatrix} + L & \ell & \ell_1 \\ + 0 & 0 & 0 + \end{pmatrix}^2 + \int_0^{\infty}\!\mathrm{d} s \, s^2 \, \xi_\ell(s, s_{\rm eff}) \, + j_L(k s) \, Q_{\ell_1}(s) \, ,\]

    where:

    • $\left\langle \hat{P}_L(k) \right\rangle$ is the order $L$ Power Spectrum of the effect we are interested in; we are basing this expression on the Yamamoto estimator (see Yamamoto (2000) and Yamamoto (2006))
    • $A$ is a normalization constant
    • the 2x3 matrix represents the Wigner-3j symbols
    • $\xi_\ell$ is the order $\ell$ multipole of the Two-Point Correlation Function (TPCF)
    • $j_L$ is the spherical Bessel function of order $L$
    • $s_{\mathrm{eff}}$ is the comoving distance associated with the effective redshift (see the TUTORIAL.ipynb notebook)

    $Q_{\ell_1}$ can be easily estimated with FFT methods:

    \[\begin{split} + Q_{\ell_1}(s) &:= \int_0^{\infty}\mathrm{d}s_1 \; s_1^2 \; + \phi(s_1) \; F_{\ell_1}(s_1, s) \\ + F_{\ell_1} (s_1 , s) &:= + \int_{4\pi} \mathrm{d}\Omega_{\mathbf{\hat{s}}} \, + \int_{4\pi} \mathrm{d}\Omega_{\mathbf{\hat{s}}_1} \, + \phi(s_2) \, W(\mathbf{\hat{s}}_1) \, W(\mathbf{\hat{s}}_2) \, + \mathcal{L}_{\ell_1}(\mathbf{\hat{s}} \cdot \mathbf{\hat{s}}_1) \, . +\end{split}\]

    where:

    • $\mathcal{L}_{\ell_1}$ is the Legendre polynomial of order $\ell_1$
    • $\mathrm{d}\Omega_{\mathbf{\hat{s}}}$ is the infinitesimal solid angle pointing in the direction of the versor $\mathbf{\hat{s}}$
    • $\phi(s)$ and $W(\mathbf{\hat{s}})$ are respectively the radial and angular part of your window function (we remember that we assumed that such separability of the window function is possible)

    Check Eq.(2.13) of Castorina, Di Dio for the theoretical explanation of this formula.

    Currenlty, there are two algorithms you can choose in order to perform the computation; you can choose which one to use through the keyword value alg:

    • alg = :fftlog (default and recommended option) will employ the FFTLog algorithm.
    • alg = :twofast will employ the TwoFAST xicalc function of the TwoFAST Julia package. Note that in the computation the integration range $0\leq s \leq \infty$ is reduced to int_s_min ≤ s ≤ int_s_max. This alogrithm is not the ideal choise, because TwoFAST is conceived for the direction PS -> TPCF, while is not 100% trustworthy for the other way round.

    IMPORTANT: no matter which algorithm you choose, you will need to give the input data in a LOGARITHMICALLY DISTRIBUTED scale. A linear distribution does not fit for the algorithms to apply.

    Inputs

    • ximult::Union{XiMultipoles,String} : Two-Point Correlation functions to be used in the computation. You can provide either a XiMultipoles struct containing them or the String filename where they are stored (that will be internally open with XiMultipoles too). The file must have a structure analogous to the genwin one (see the next Inputs item). You can use create_file_for_XiMultipoles to produce such a file.

    • genwin::Union{GenericWindow,String} : multipoles $Q_{\ell_1}$ of the generic window function you want to consider. You can provide either a GenericWindow struct containing them or the String filename where they are stored (that will be internally open with GenericWindow too). The file must have the following structure

        $ cat Ql_multipoles.txt 
      +  # Any comment line in the file must start with a #
      +  # you can have how many comment lines you want in the header; they 
      +  # will be all skipped.
      +  # Then you must provide in blank space separated columns:
      +  # - as first column, the comoving distance values, measured in Mpc/h_0
      +  # - from the second column onwards, all the Q_{ll_1} multipoles you want;
      +  #   they must be ordered followinf the ascending multipole order (so ll_1 = 0
      +  #   must be the 2 column), and you can go as further as you want in the multipole
      +  #   order
      +  # 
      +  # s [Mpc/h_0]      Q_{l1=0}      Q_{l1=1}      Q_{l1=2}      ...
      +  1.0     0.9999999999999999      1.445269850978461e-7      0.000011917268941324522    ...
      +  21.0    0.9832914433168294      -0.0025537781362117177  -0.0033199998619560947        ...
      +  41.0    0.9669175943095181      -0.004923364937797496      -0.006463561496567318        ...     
      +  ...     ...                  ...                      ...

    Optional arguments

    Depending on the algorithm you choose, the options would change. The options in common are:

    • pr::Bool=true : want to print the automatic messages to the screen?
    • L::Int=0 : which multipole order should I use for this computation? IT MUST MATCH THE MULTIPOLE ORDER OF THE INPUT TPCF!
    • cut_first_n::Int=0 and cut_last_n::Int=0 : you can cout the first and/or last n elements of the input data, if they are highly irregular.

    The specific ones for alg = :fftlog are:

    • ν::Union{Float64,Nothing} = nothing : bias parameter, i.e. exponent used to "balance" the curve; if nothing, will be set automatically to 1.5
    • n_extrap_low::Int = 500 and n_extrap_high::Int = 500 : number of points to concatenate on the left/right of the input x-axis ss vector, logarithmically distributed with the same ratio of the left/right-edge elements of ss.
    • n_pad::Int = 500 : number of zeros to be concatenated both on the left and on the right of the input function. They stabilize a lot the algorithm.

    The specific ones for alg = :twofast are:

    • epl::Bool=true : do you want to extend the edges of the input vectors using two fitted power-laws (obtained from EPLs)
    • N_left::Int = 12 and N_right::Int = 12 : number of points from left right edges to be used for the power law fitting in EPLs. They matters only if in the given input file ξ is not defined until the extremes of integration int_s_min and int_s_max.
    • int_s_min::Float64 = 1e-1 and int_s_max::Float64 = 1e3: extremes of integration; if epl is set to false, their values will be automatically set to min(ss...) and max(ss...) respectively. Their values do matter only if epl=true.
    • p0_left=[-2.0, 1.0] and p0_right=[-2.0, 1.0]: vectors with the initial values for the left/right power-law fitting of EPLs; the power-law is in the form $y = f(x) = b * x^s$, so the first vector value is the initial value of $s$ (and of course the second is the one of $b$).
    • k0::Union{Nothing,Float64} = nothing : starting point for the xicalc function; if nothing, it will be set k0 = 1.0 / max(ss...)
    • right::Union{Float64,Nothing} = nothing : do you want to cut the output elements with ks .> right? if set to nothing, no cut will be done.
    • N::Int = 1024 : number of points to be used in Fourier transform

    Returns

    A Tuple{Vector{Float64}, Vector{Float64}} with:

    • the k values vector as first element;
    • the correspoding PS pk values vector as second one.

    See also: create_file_for_XiMultipoles, XiMultipoles, GenericWindow, V_survey, A, A_prime, EPLs, print_PS_multipole

    source
    GaPSE.print_PS_multipole_GenWinFunction
    print_PS_multipole_GenWin(
    +    ximult::Union{XiMultipoles,String}, genwin::Union{GenericWindow,String},
    +    out::String; alg::Symbol=:fftlog, L::Int=0, 
    +    cut_first_n::Int=0, cut_last_n::Int=0,
    +    kwargs...)

    Compute and save in the file out the L-order Power Spectrum (PS) multipole for a generic window function, through the following Fast Fourier Transform and the effective redshift approximation:

    \[ \left\langle \hat{P}_L(k) \right\rangle = + \frac{2 L + 1}{A} (-i)^L + \sum_{\ell=0}^{\infty} + \sum_{\ell_1=0}^{\infty} + \begin{pmatrix} + L & \ell & \ell_1 \\ + 0 & 0 & 0 + \end{pmatrix}^2 + \int_0^{\infty}\!\mathrm{d} s \, s^2 \, \xi_\ell(s, s_{\rm eff}) \, + j_L(k s) \, Q_{\ell_1}(s) \, ,\]

    where:

    • $\left\langle \hat{P}_L(k) \right\rangle$ is the order $L$ Power Spectrum of the effect we are interested in; we are basing this expression on the Yamamoto estimator (see Yamamoto (2000) and Yamamoto (2006))
    • $A$ is a normalization constant
    • the 2x3 matrix represents the Wigner-3j symbols
    • $\xi_\ell$ is the order $\ell$ multipole of the Two-Point Correlation Function (TPCF)
    • $j_L$ is the spherical Bessel function of order $L$
    • $s_{\mathrm{eff}}$ is the comoving distance associated with the effective redshift (see the TUTORIAL.ipynb notebook)

    $Q_{\ell_1}$ can be easily estimated with FFT methods:

    \[\begin{split} + Q_{\ell_1}(s) &:= \int_0^{\infty}\mathrm{d}s_1 \; s_1^2 \; + \phi(s_1) \; F_{\ell_1}(s_1, s) \\ + F_{\ell_1} (s_1 , s) &:= + \int_{4\pi} \mathrm{d}\Omega_{\mathbf{\hat{s}}} \, + \int_{4\pi} \mathrm{d}\Omega_{\mathbf{\hat{s}}_1} \, + \phi(s_2) \, W(\mathbf{\hat{s}}_1) \, W(\mathbf{\hat{s}}_2) \, + \mathcal{L}_{\ell_1}(\mathbf{\hat{s}} \cdot \mathbf{\hat{s}}_1) \, . +\end{split}\]

    where:

    • $\mathcal{L}_{\ell_1}$ is the Legendre polynomial of order $\ell_1$
    • $\mathrm{d}\Omega_{\mathbf{\hat{s}}}$ is the infinitesimal solid angle pointing in the direction of the versor $\mathbf{\hat{s}}$
    • $\phi(s)$ and $W(\mathbf{\hat{s}})$ are respectively the radial and angular part of your window function (we remember that we assumed that such separability of the window function is possible)

    Check Eq.(2.13) of Castorina, Di Dio for the theoretical explanation of this formula.

    Currenlty, there are two algorithms you can choose in order to perform the computation; you can choose which one to use through the keyword value alg:

    • alg = :fftlog (default and recommended option) will employ the FFTLog algorithm.
    • alg = :twofast will employ the TwoFAST xicalc function of the TwoFAST Julia package. Note that in the computation the integration range $0\leq s \leq \infty$ is reduced to int_s_min ≤ s ≤ int_s_max. This alogrithm is not the ideal choise, because TwoFAST is conceived for the direction PS -> TPCF, while is not 100% trustworthy for the other way round.

    IMPORTANT: no matter which algorithm you choose, you will need to give the input data in a LOGARITHMICALLY DISTRIBUTED scale. A linear distribution does not fit for the algorithms to apply.

    Inputs

    • ximult::Union{XiMultipoles,String} : Two-Point Correlation functions to be used in the computation. You can provide either a XiMultipoles struct containing them or the String filename where they are stored (that will be internally open with XiMultipoles too). The file must have a structure analogous to the genwin one (see the next Inputs item). You can use create_file_for_XiMultipoles to produce such a file.

    • genwin::Union{GenericWindow,String} : multipoles $Q_{\ell_1}$ of the generic window function you want to consider. You can provide either a GenericWindow struct containing them or the String filename where they are stored (that will be internally open with GenericWindow too). The file must have the following structure

        $ cat Ql_multipoles.txt 
      +  # Any comment line in the file must start with a #
      +  # you can have how many comment lines you want in the header; they 
      +  # will be all skipped.
      +  # Then you must provide in blank space separated columns:
      +  # - as first column, the comoving distance values, measured in Mpc/h_0
      +  # - from the second column onwards, all the Q_{ll_1} multipoles you want;
      +  #   they must be ordered followinf the ascending multipole order (so ll_1 = 0
      +  #   must be the 2 column), and you can go as further as you want in the multipole
      +  #   order
      +  # 
      +  # s [Mpc/h_0]      Q_{l1=0}      Q_{l1=1}      Q_{l1=2}      ...
      +  1.0     0.9999999999999999      1.445269850978461e-7      0.000011917268941324522    ...
      +  21.0    0.9832914433168294      -0.0025537781362117177  -0.0033199998619560947        ...
      +  41.0    0.9669175943095181      -0.004923364937797496      -0.006463561496567318        ...     
      +  ...     ...                  ...                      ...
    • out::String : name of the file where the results must be stored.

    Optional arguments

    Depending on the algorithm you choose, the options would change. The options in common are:

    • pr::Bool=true : want to print the automatic messages to the screen?
    • L::Int=0 : which multipole order should I use for this computation? IT MUST MATCH THE MULTIPOLE ORDER OF THE INPUT TPCF!
    • cut_first_n::Int=0 and cut_last_n::Int=0 : you can cout the first and/or last n elements of the input data, if they are highly irregular.

    The specific ones for alg = :fftlog are:

    • ν::Union{Float64,Nothing} = nothing : bias parameter, i.e. exponent used to "balance" the curve; if nothing, will be set automatically to 1.5
    • n_extrap_low::Int = 500 and n_extrap_high::Int = 500 : number of points to concatenate on the left/right of the input x-axis ss vector, logarithmically distributed with the same ratio of the left/right-edge elements of ss.
    • n_pad::Int = 500 : number of zeros to be concatenated both on the left and on the right of the input function. They stabilize a lot the algorithm.

    The specific ones for alg = :twofast are:

    • epl::Bool=true : do you want to extend the edges of the input vectors using two fitted power-laws (obtained from EPLs)
    • N_left::Int = 12 and N_right::Int = 12 : number of points from left right edges to be used for the power law fitting in EPLs. They matters only if in the given input file ξ is not defined until the extremes of integration int_s_min and int_s_max.
    • int_s_min::Float64 = 1e-1 and int_s_max::Float64 = 1e3: extremes of integration; if epl is set to false, their values will be automatically set to min(ss...) and max(ss...) respectively. Their values do matter only if epl=true.
    • p0_left=[-2.0, 1.0] and p0_right=[-2.0, 1.0]: vectors with the initial values for the left/right power-law fitting of EPLs; the power-law is in the form $y = f(x) = b * x^s$, so the first vector value is the initial value of $s$ (and of course the second is the one of $b$).
    • k0::Union{Nothing,Float64} = nothing : starting point for the xicalc function; if nothing, it will be set k0 = 1.0 / max(ss...)
    • right::Union{Float64,Nothing} = nothing : do you want to cut the output elements with ks .> right? if set to nothing, no cut will be done.
    • N::Int = 1024 : number of points to be used in Fourier transform

    See also: create_file_for_XiMultipoles, XiMultipoles, GenericWindow, V_survey, A, A_prime, EPLs, print_PS_multipole, PS_multipole_GenWin

    source
    diff --git a/dev/PowerSpectrum/index.html b/dev/PowerSpectrum/index.html deleted file mode 100644 index 404eafe3..00000000 --- a/dev/PowerSpectrum/index.html +++ /dev/null @@ -1,96 +0,0 @@ - -Calculating Power Spectra · GaPSE.jl

    Fast Fourier Transforms and Power Spectra

    The FFTLog package

    GaPSE.FFTLog._c_windowFunction
     _c_window(N::AbstractArray, NCut::Int)

    Returns the smoothing window function $W(x, N_\mathrm{cut})$ as defined in Eq. (C.1) of McEwen et al. (2016):

    \[W(x) = \begin{cases} - \displaystyle - \frac{x - x_{\mathrm{min}}}{x_{\mathrm{left}} - x_{\mathrm{min}}} - \frac{1}{2\pi}\sin\left( 2\pi \frac{x - x_{\mathrm{min}}}{x_{\mathrm{left}} - x_{\mathrm{min}}}\right) \; , \quad\quad - x < x_{\mathrm{left}}\\[12pt] - \displaystyle - 1 \; , \quad\quad\quad\quad\quad\quad\quad\quad - \quad\quad\quad\quad\quad\quad\quad\; \, - x_{\mathrm{left}} \leq x \leq x_{\mathrm{right}}\\[8pt] - \displaystyle - \frac{x_{\mathrm{max}} - x}{x_{\mathrm{max}} - x_{\mathrm{right}}} - - \frac{1}{2\pi}\sin\left( - 2\pi \frac{x_{\mathrm{max}} - x}{x_{\mathrm{max}} - x_{\mathrm{right}}} - \right) \; , \quad x > x_{\mathrm{right}} -\end{cases}\]

    source
    GaPSE.FFTLog._logextrapFunction
     _logextrap(x::Vector, 
    -      n_extrap_low::Int, n_extrap_high::Int) ::Vector

    Given an input LOGARITHMICALLY SPACED vector of values x, expands that vector adding n_extrap_low point on the left and n_extrap_high on the right. Consequently, for an input x of N values, it returns a vector X with length N + n_extrap_low + n_extrap_right.

    It is not assumed that the spacing is the same in the two edges of the data.

    source
    GaPSE.FFTLog._zeropadFunction
     _zeropad(x::Vector, n_pad::Int)::Vector

    Concatenates n_pad zeros both on the left and on the right of the input vector x. Consequently, for an input x of N values, it returns a vector X with length N + 2 * n_pad.

    source
    GaPSE.FFTLog._eval_cm!Function
     _eval_cm!(plan::AbstractPlan, fx)

    Given a plan::AbstractPlan, compute the power-law expansion coefficients $c_m$ of the input data vector fx. It is assumed that fx contains the y-axis values corresponding to the x-axis ones plan.x, and consequently their length must be the same. The computed cm vector is stored in plan.cm, and nothing is returned.

    For a function f evaluated the N x-axis values x, the c_m coefficients are

    \[c_m = W_m \sum_{q=0}^{N-1} \frac{f(x_q)}{x_q^\nu} e^{-\frac{2\pi}{N}i m q}\]

    where $W_m$ is the smoothing window function computed via _c_window and $\nu$ is the bias parameter stored in plan.ν

    See also: _c_window, AbstractPlan

    source
    GaPSE.FFTLog._eval_ηm!Function
     _eval_ηm!(plan::AbstractPlan)

    Given an input plan::AbstractPlan, compute all the $\eta_m$ coefficients, defined as follows:

    \[\eta_m = \frac{2 \pi m}{N \, \Delta_{\ln x}} \, \]

    where $N$, $\Delta_{\ln x}$ and the $m$ vector are respectively plan.N, plan.d_ln_x and plan.m.

    The computed ηm vector is stored in plan.cm, and nothing is returned.

    See also: AbstractPlan

    source
    GaPSE.FFTLog.SingleBesselPlanType
     mutable struct SingleBesselPlan{T,C} <: AbstractPlan

    This struct contains all the elements necessary to evaluate the integral with one Bessel function. All the arguments of this struct are keyword arguments. Here we show the compelte list and their default values:

    • x::Vector{T} : the LOGARITHMICALLY SPACED vector of x-axis values. You need always to provide this vector.

    • y::Matrix{T} = zeros(10, 10) : the logarithmically spaced vector of the values where the transformed function will be evaluated. It has the same length of x

    • fy::Matrix{T} = zeros(10, 10) : the y-axis of the transformed function; it is a vector if only one Bessel function order is provided in the functions

    • hm::Matrix{C} = zeros(ComplexF64, 10, 10) : matrix of the coefficients $h_m = c_m \, h_{m, \mathrm{corr}} \, g_\ell$, where $c_m$s, $h_{m, \mathrm{corr}}$s and $g_\ell$ are respectively stored in plan.cm, plan.hm_corr and plan.gl. Each column contains all the $h_m$s for a given spherical Bessel order $\ell$.

    • hm_corr::Matrix{C} = zeros(ComplexF64, 10, 10) : matrix of the coefficients $h_{m, \mathrm{corr}} = (x_0 y_0)^{- i \eta_m}$, where $\eta_m = \frac{2 \pi m}{N \, \Delta_{\ln x}}$ and $x_0$ and $y_0$ are the smallest values of plan.x and plan.y, respectively. Each column contains all the $h_{m, \mathrm{corr}}$s for a given spherical Bessel order $\ell$.

    • d_ln_x::T = log(x[2] / x[1]) : the spacing between the x elements.

    • fy_corr::Matrix{T} = zeros(10, 10) : matrix of the coefficients $K(y) = \frac{\sqrt{\pi}}{4 y^{\nu}}$, where $\nu$ is the bias paremeter stored in plan.ν. Each column contains all the $h_{m, \mathrm{corr}}$s for a given spherical Bessel order $\ell$.

    • original_length::Int = length(x) : the original inpout length of the x vector; it is stored because, for numerical stability purposes, during the computation this vector is expanded at the edged, and so the input function ones.

    • gl::Matrix{C} = zeros(ComplexF64, 100, 100) : vector with the $g_\ell$ values for all the input spherical Bessel order.

    • ν::T = 1.01 : bias parameter.

    • n_extrap_low::Int = 0 : number of points to concatenate on the left of x, logarithmically distributed with the same ratio of the left-edge elements of x

    • n_extrap_high::Int = 0 : number of points to concatenate on the right of x, logarithmically distributed with the same ratio of the right-edge elements of x

    • c_window_width::T = 0.25 : position where the tapering by the window function begins; by default c_window_width= 0.25, so is begins when $m = \pm 0.75 \times N/2$, where $N$ is the size of the input array.

    • n_pad::Int = 0 : number of zeros to be concatenated both on the left and on the right of the input function.

    • n::Int = 0 : the derivative order for the spherical Bessel function.

    • N::Int = original_length + n_extrap_low + n_extrap_high + 2 * n_pad : number of points where the input function is known; are considered both the "true values" and the fake ones, added for a more numerically stable fft.

    • m::Vector{T} = zeros(N) : vector with all the indexes that will be used for the power-law expansion of the input function

    • cm::Vector{C} = zeros(ComplexF64, N) : vector containing all the input function power-law exapnsion $c_m$ coefficients.

    • ηm::Vector{T} = zeros(N) : vector of all the $\eta_m = \frac{2 \pi m}{N \, \Delta_{\ln x}}$ coefficients.

    • plan_rfft::FFTW.rFFTWPlan = plan_rfft(randn(1024)) : a random initialized fft plan of FFTW

    • plan_irfft = plan_irfft( randn(Complex{Float64}, 2, Int((original_length + n_extrap_low + n_extrap_high + 2 * n_pad) / 2) + 1), original_length + n_extrap_low + n_extrap_high + 2 * n_pad, 2 ) :

    See also: AbstractPlan

    source
    GaPSE.FFTLog._eval_glFunction
     _eval_gl(ell, z::Vector, n::Int )::Vector

    Evaluate the $g_{\ell}$ coefficients, defined as

    \[g_{\ell}^{(n)}(z) = (-1)^n \, 2^{z-n} \, \frac{ - \Gamma\left(\frac{\ell + z - n}{2}\right) - }{ - \Gamma\left(\frac{3 + \ell + n - z}{2}\right) - }\]

    source
    GaPSE.FFTLog._eval_y!Function
     _eval_y!(plan::Union{SingleBesselPlan, HankelPlan}, ell::Vector)

    Given an input plan::Union{SingleBesselPlan, HankelPlan}, compute the y values where the output function will be evaluated and the coefficient $K(y)$ outside the IFFT. They are, respectively:

    \[y = \frac{\ell + 1}{x} \; , \quad\quad K(y) = \frac{\sqrt{\pi}}{4 y^{\nu}}\]

    The vector of their values are stored respectively in plan.y and plan.fy_corr, and nothing is returned.

    See also: SingleBesselPlan, HankelPlan

    source
    GaPSE.FFTLog._eval_gl_hm!Function
     _eval_gl_hm!(plan::Union{SingleBesselPlan, HankelPlan}, ell::Vector)

    Given an input plan::Union{SingleBesselPlan, HankelPlan}, compute the $g_{\ell}$ values and the $h_{m, \mathrm{corr}}$ coefficents inside the IFFT. They are, respectively:

    \[g_{\ell}^{(n)}(z) = (-1)^n \, 2^{z-n} \, \frac{ - \Gamma\left(\frac{\ell + z - n}{2}\right) - }{ - \Gamma\left(\frac{3 + \ell + n - z}{2}\right) - } \; , \quad\quad -h_{m, \mathrm{corr}} = (x_0 y_0)^{- i \eta_m}\]

    where $\eta_m = \frac{2 \pi m}{N \, \Delta_{\ln x}}$, and $x_0$ $y_0$ are the smallest values of plan.x and plan.y, respectively.

    The vector of their values are stored in plan.gl and plan.hy_corr, and nothing is returned.

    See also: SingleBesselPlan, HankelPlan

    source
    GaPSE.FFTLog.prepare_FFTLog!Function
     prepare_FFTLog!(plan::Union{SingleBesselPlan, HankelPlan}, ell::Vector)

    Given an input plan::Union{SingleBesselPlan, HankelPlan}, pre-plan an optimized real-input FFT for all the Bessel function orders stored in the vector ell. In other words, it computes:

    • the y vector of values where the transformed will be evaluated (stored in plan.y).
    • the corresponding gl vector of $g_{\ell}$ values (stored in plan.gl).
    • the m vector of indexes for the $c_m$ coefficents (stored in plan.m).
    • the corresponding ηm and hm_corr vector of $\eta_m$ and $h_{m, \mathrm{corr}}$ values (stored in plan.ηm and plan.hm_corr).

    See also: SingleBesselPlan, HankelPlan

    source
    GaPSE.FFTLog.prepare_Hankel!Function
     prepare_Hankel!(plan::HankelPlan, ell::Vector)

    Given an input plan::HankelPlan, pre-plan an optimized real-input FFT for all the Bessel function orders stored in the vector ell concerning an Hankel transform. Same as prepare_FFTLog, checks its documentation for more information.

    See also: HankelPlan, prepare_FFTLog!

    source
    GaPSE.FFTLog.evaluate_FFTLogFunction
    evaluate_FFTLog(plan::AbstractPlan, fx)::Union{Vector, Matrix}

    Given an input plan::AbstractPlan, evaluate the FFT fy of the fx y-axis data on the basis of the parameters stored in plan. The result is both stored in plan.fy and retuned as output.

    See also: AbstractPlan

    source
    evaluate_FFTLog(plan::Union{SingleBesselPlan, HankelPlan}, fx)::Union{Vector, Matrix}

    Given an input plan::Union{SingleBesselPlan, HankelPlan}, evaluate the FFT fy of the fx y-axis data on the basis of the parameters stored in plan. The result is both stored in plan.fy and retuned as output.

    See also: SingleBesselPlan,HankelPlan

    source
    GaPSE.FFTLog.evaluate_HankelFunction
    evaluate_Hankel(plan::HankelPlan, fx)::Union{Vector, Matrix}

    Given an input plan::HankelPlan, evaluate the FFT fy of the fx y-axis data on the basis of the parameters stored in plan for an Hankel transform. The result is both stored in plan.fy and retuned as output.

    See also: HankelPlan

    source
    GaPSE.FFTLog.evaluate_Hankel!Function
    evaluate_Hankel!(fy, plan::HankelPlan, fx)

    Given an input plan::HankelPlan, evaluate the FFT fy of the fx y-axis data on the basis of the parameters stored in plan for an Hankel transform. The result is stored both in plan.fy and in the input fy.

    See also: HankelPlan

    source

    The Power Spectrum with FFTLog

    GaPSE.FFTLog_PS_multipoleFunction
     FFTLog_PS_multipole(ss, xis;
    -      pr::Bool=true,
    -      L::Int=0, ν::Union{Float64,Nothing}=nothing,
    -      n_extrap_low::Int=500,
    -      n_extrap_high::Int=500, n_pad::Int=500,
    -      )

    Computes the Power Spectrum through the FFTLog algorithm. More precisely, it computes the L-order PS multipole through the following Fast Fourier Transform and the effective redshift approximation

    \[P_L(k) = \frac{2 L + 1}{A^{'}} (-i)^L \, \phi(s_\mathrm{eff}) \int_0^\infty - \mathrm{d} s \; s^2 \, j_L(ks) \, f_\mathrm{in}(s) \; , - \quad \; A^{'} = \frac{1}{4\,\pi}\]

    where $f_\mathrm{in}$ is the function samples by ss and xis.

    Optional arguments

    • pr::Bool=true : want to print the automatic messages to the screen?
    • L::Int=0 : which multipole order should I use for this computation? IT MUST MATCH THE MULTIPOLE ORDER OF THE INPUT TPCF!
    • ν::Union{Float64,Nothing} = nothing : bias parameter, i.e. exponent used to "balance" the curve; if nothing, will be set automatically to 1.5
    • n_extrap_low::Int = 500 and n_extrap_high::Int = 500 : number of points to concatenate on the left/right of the input x-axis ss vector, logarithmically distributed with the same ratio of the left/right-edge elements of ss.
    • n_pad::Int = 500 : number of zeros to be concatenated both on the left and on the right of the input function. They stabilize a lot the algorithm.

    See also: PS_multipole

    source
    GaPSE.FFTLog_all_PS_multipoleFunction
     FFTLog_all_PS_multipole(input::String,
    -      group::String=VALID_GROUPS[end];
    -      L::Int=0, pr::Bool=true,
    -      ν::Union{Float64,Nothing,Vector{Float64}}=nothing,
    -      n_extrap_low::Int=500,
    -      n_extrap_high::Int=500, n_pad::Int=500
    - )

    Computes the Power Spectrum through the FFTLog algorithm for a set of TPCFs. More precisely, it read the input file input, taking the first column as the x-axis ss vector and the following columns as the y-axis ones, and computes the L-order PS multipole through the following Fast Fourier Transform and the effective redshift approximation

    \[P_L(k) = \frac{2 L + 1}{A^{'}} (-i)^L \, \phi(s_\mathrm{eff}) \int_0^\infty - \mathrm{d} s \; s^2 \, j_L(ks) \, f_\mathrm{in}(s) \; , - \quad \; A^{'} = \frac{1}{4\,\pi}\]

    where $f_\mathrm{in}$ is the function samples by ss and each y-axis xis.

    The group::String=VALID_GROUPS[end] argument allow you to specify the group of the input TPCF, if they were computed through GAPSE. The allowed values for this argument are: LD , GNC , GNCxLD , LDxGNC , generic ,

    If you choose a group pay attention that the number of input TPCF must match the group number (16, 25, 20 and 20 respectively). The last group name (which is also the default value) is used in case the input xis do not belog to a specific group (and so no predefined number is expected).

    Optional arguments

    • L::Int=0 : which multipole order should I use for this computation? IT MUST MATCH THE MULTIPOLE ORDER OF THE INPUT TPCF!
    • pr::Bool=true : want to print the automatic messages to the screen?
    • ν::Union{Float64,Nothing} = nothing : bias parameter, i.e. exponent used to "balance" the curve; if nothing, will be set automatically to 1.5
    • n_extrap_low::Int = 500 and n_extrap_high::Int = 500 : number of points to concatenate on the left/right of the input x-axis ss vector, logarithmically distributed with the same ratio of the left/right-edge elements of ss.
    • n_pad::Int = 500 : number of zeros to be concatenated both on the left and on the right of the input function. They stabilize a lot the algorithm.
    • cut_first_n::Int=0 and cut_last_n::Int=0 : you can cout the first and/or last n elements of the input data, if they are highly irregular.

    See also: FFTLog_PS_multipole, PS_multipole

    source

    The Power Spectrum with TwoFAST

    GaPSE.TwoFAST_PS_multipoleFunction
     TwoFAST_PS_multipole(f_in;
    -      int_s_min::Float64 = 1e-1, int_s_max::Float64 = 1e3,
    -      L::Int = 0, N::Int = 1024, pr::Bool = true,
    -      k0::Union{Nothing,Float64} = nothing,
    -      right::Union{Float64,Nothing} = nothing
    - ) ::Tuple{Vector{Float64}, Vector{Float64}}

    Computes the Power Spectrum from the input spline f_in through the TwoFAST xicalc function of the TwoFAST Julia package. More precisely, it computes the L-order PS multipole through the following Fast Fourier Transform and the effective redshift approximation

    \[P_L(k) = \frac{2 L + 1}{A^{'}} (-i)^L \, \phi(s_\mathrm{eff}) \int_0^\infty - \mathrm{d} s \; s^2 \, j_L(ks) \, f_\mathrm{in}(s) \; , - \quad \; A^{'} = \frac{1}{4\,\pi}\]

    where $f_\mathrm{in}$ is the inpunt spline.

    Optional arguments

    • pr::Bool=true : want to print the automatic messages to the screen?
    • L::Int=0 : which multipole order should I use for this computation? IT MUST MATCH THE MULTIPOLE ORDER OF THE INPUT TPCF!
    • N::Int = 1024 : number of points to be used in Fourier transform
    • int_s_min::Float64 = 1e-1 and int_s_max::Float64 = 1e3: extremes of integration
    • k0::Union{Nothing,Float64} = nothing : starting point for the xicalc function; if nothing, it will be set k0 = 1.0 / int_s_max
    • right::Union{Float64,Nothing} = nothing : do you want to cut the output elements with ks .> right? if set to nothing, no cut will be done.

    See also: PS_multipole

    source
     TwoFAST_PS_multipole(ss, fs;
    -      int_s_min::Float64 = 1e-1, int_s_max::Float64 = 1e3,
    -      epl::Bool = true, pr::Bool = true, L::Int = 0,
    -      N_left::Int = 12, N_right::Int = 12,
    -      p0_left = [-2.0, 1.0], p0_right = [-2.0, 1.0],
    -      k0::Union{Nothing,Float64} = nothing
    - ) ::Tuple{Vector{Float64}, Vector{Float64}}

    Takes the input data vector ss and fs and creates a spline from them, passing it as input tho the other TwoFAST_PS_multipole method. Depending on the options, it may create also a power law epansions on the edges.

    Optional arguments

    • pr::Bool=true : want to print the automatic messages to the screen?
    • L::Int=0 : which multipole order should I use for this computation? IT MUST MATCH THE MULTIPOLE ORDER OF THE INPUT TPCF!
    • epl::Bool=true : do you want to extend the edges of the input vectors using two fitted power-laws (obtained from EPLs)
    • N_left::Int = 12 and N_right::Int = 12 : number of points from left right edges to be used for the power law fitting in EPLs. They matters only if in the given input file ξ is not defined until the extremes of integration int_s_min and int_s_max.
    • int_s_min::Float64 = 1e-1 and int_s_max::Float64 = 1e3: extremes of integration; if epl is set to false, their values will be automatically set to min(ss...) and max(ss...) respectively. Their values do matter only if epl=true.
    • p0_left=[-2.0, 1.0] and p0_right=[-2.0, 1.0]: vectors with the initial values for the left/right power-law fitting of EPLs; the power-law is in the form $y = f(x) = b * x^s$, so the first vector value is the initial value of $s$ (and of course the second is the one of $b$).
    • k0::Union{Nothing,Float64} = nothing : starting point for the xicalc function; if nothing, it will be set k0 = 1.0 / max(ss...)
    • right::Union{Float64,Nothing} = nothing : do you want to cut the output elements with ks .> right? if set to nothing, no cut will be done.
    • N::Int = 1024 : number of points to be used in Fourier transform
    • cut_first_n::Int=0 and cut_last_n::Int=0 : you can cout the first and/or last n elements of the input data, if they are highly irregular.

    See also: PS_multipole

    source
    GaPSE.TwoFAST_all_PS_multipoleFunction
     TwoFAST_all_PS_multipole(input::String,
    -      group::String=VALID_GROUPS[end];
    -      L::Int = 0, pr::Bool = true, 
    -      kwargs...)

    Computes the Power Spectrum through the TwoFAST xicalc function of the TwoFAST Julia package for a set of TPCFs. More precisely, it read the input file input, taking the first column as the x-axis ss vector and the following columns as the y-axis ones, and computes the L-order PS multipole through the following Fast Fourier Transform and the effective redshift approximation

    \[P_L(k) = \frac{2 L + 1}{A^{'}} (-i)^L \, \phi(s_\mathrm{eff}) \int_0^\infty - \mathrm{d} s \; s^2 \, j_L(ks) \, f_\mathrm{in}(s) \; , - \quad \; A^{'} = \frac{1}{4\,\pi}\]

    where $f_\mathrm{in}$ is the function samples by ss and each y-axis xis.

    The group::String=VALID_GROUPS[end] argument allow you to specify the group of the input TPCF, if they were computed through GAPSE. The allowed values for this argument are: LD , GNC , GNCxLD , LDxGNC , generic ,

    If you choose a group pay attention that the number of input TPCF must match the group number (16, 25, 20 and 20 respectively). The last group name (which is also the default value) is used in case the input xis do not belog to a specific group (and so no predefined number is expected).

    Optional arguments

    • pr::Bool=true : want to print the automatic messages to the screen?
    • L::Int=0 : which multipole order should I use for this computation? IT MUST MATCH THE MULTIPOLE ORDER OF THE INPUT TPCF!
    • epl::Bool=true : do you want to extend the edges of the input vectors using two fitted power-laws (obtained from EPLs)
    • N_left::Int = 12 and N_right::Int = 12 : number of points from left right edges to be used for the power law fitting in EPLs. They matters only if in the given input file ξ is not defined until the extremes of integration int_s_min and int_s_max.
    • int_s_min::Float64 = 1e-1 and int_s_max::Float64 = 1e3: extremes of integration; if epl is set to false, their values will be automatically set to min(ss...) and max(ss...) respectively. Their values do matter only if epl=true.
    • p0_left=[-2.0, 1.0] and p0_right=[-2.0, 1.0]: vectors with the initial values for the left/right power-law fitting of EPLs; the power-law is in the form $y = f(x) = b * x^s$, so the first vector value is the initial value of $s$ (and of course the second is the one of $b$).
    • k0::Union{Nothing,Float64} = nothing : starting point for the xicalc function; if nothing, it will be set k0 = 1.0 / max(ss...)
    • right::Union{Float64,Nothing} = nothing : do you want to cut the output elements with ks .> right? if set to nothing, no cut will be done.
    • N::Int = 1024 : number of points to be used in Fourier transform
    • cut_first_n::Int=0 and cut_last_n::Int=0 : you can cout the first and/or last n elements of the input data, if they are highly irregular.

    See also: TwoFAST_PS_multipole, PS_multipole

    source

    The Power Spectrum multipole computation

    GaPSE.PS_multipoleFunction
     PS_multipole(ss, fs; 
    -      pr::Bool = true, L::Int = 0, 
    -      alg::Symbol = :fftlog, 
    -      cut_first_n::Int = 0, cut_last_n::Int = 0, 
    -      kwargs...
    -      ) ::Tuple{Vector{Float64}, Vector{Float64}}
    -
    - PS_multipole(input::String; 
    -      kwargs...)

    Return the L-order PS multipole through the following Fast Fourier Transform and the effective redshift approximation:

    \[P_L(k) = \frac{2 L + 1}{A^{'}} (-i)^L \, \phi(s_\mathrm{eff}) \int_0^\infty - \mathrm{d} s \; s^2 \, j_L(ks) \, f_\mathrm{in}(s) \; , - \quad \; A^{'} = \frac{1}{4\,\pi}\]

    The second method reads the input file, takes the first column as ss and the second as fs and recalls the first method.

    Currenlty, there are two algorithms you can choose in order to perform the computation; you can choose which one to use through the keyword value alg:

    • alg = :fftlog (default and recommended option) will employ the FFTLog algorithm.
    • alg = :twofast will employ the TwoFAST xicalc function of the TwoFAST Julia package. Note that in the computation the integration range $0\leq s \leq \infty$ is reduced to int_s_min ≤ s ≤ int_s_max. This alogrithm is not the ideal choise, because TwoFAST is conceived for the direction PS -> TPCF, while is not 100% trustworthy for the other way round.

    IMPORTANT: no matter which algorithm you choose, you will need to give the input data in a LOGARITHMICALLY DISTRIBUTED scale. A linear distribution does not fit for the algorithms to apply.

    Optional arguments

    Depending on the algorithm you choose, the options would change. The options in common are:

    • pr::Bool=true : want to print the automatic messages to the screen?
    • L::Int=0 : which multipole order should I use for this computation? IT MUST MATCH THE MULTIPOLE ORDER OF THE INPUT TPCF!
    • cut_first_n::Int=0 and cut_last_n::Int=0 : you can cout the first and/or last n elements of the input data, if they are highly irregular.

    The specific ones for alg = :fftlog are:

    • ν::Union{Float64,Nothing} = nothing : bias parameter, i.e. exponent used to "balance" the curve; if nothing, will be set automatically to 1.5
    • n_extrap_low::Int = 500 and n_extrap_high::Int = 500 : number of points to concatenate on the left/right of the input x-axis ss vector, logarithmically distributed with the same ratio of the left/right-edge elements of ss.
    • n_pad::Int = 500 : number of zeros to be concatenated both on the left and on the right of the input function. They stabilize a lot the algorithm.

    The specific ones for alg = :twofast are:

    • epl::Bool=true : do you want to extend the edges of the input vectors using two fitted power-laws (obtained from EPLs)
    • N_left::Int = 12 and N_right::Int = 12 : number of points from left right edges to be used for the power law fitting in EPLs. They matters only if in the given input file ξ is not defined until the extremes of integration int_s_min and int_s_max.
    • int_s_min::Float64 = 1e-1 and int_s_max::Float64 = 1e3: extremes of integration; if epl is set to false, their values will be automatically set to min(ss...) and max(ss...) respectively. Their values do matter only if epl=true.
    • p0_left=[-2.0, 1.0] and p0_right=[-2.0, 1.0]: vectors with the initial values for the left/right power-law fitting of EPLs; the power-law is in the form $y = f(x) = b * x^s$, so the first vector value is the initial value of $s$ (and of course the second is the one of $b$).
    • k0::Union{Nothing,Float64} = nothing : starting point for the xicalc function; if nothing, it will be set k0 = 1.0 / max(ss...)
    • right::Union{Float64,Nothing} = nothing : do you want to cut the output elements with ks .> right? if set to nothing, no cut will be done.
    • N::Int = 1024 : number of points to be used in Fourier transform

    Analytical derivation

    The analytical expression previously showed can be easily obtained from the standard one:

    \[\begin{split} - P_L(k) = &\frac{2 L + 1}{A} (-i)^L \, - \int_0^\infty \mathrm{d} s_1 \; s_1^2 - \int_0^\infty \mathrm{d} s \; s^2 - \int_{-1}^{+1} \mathrm{d} \mu \; - j_L(ks) \, \xi(s_1, s, \mu) \, \phi(s_1) \, \phi(s_2) \, - \mathcal{L}_L(\mu) F\left(\frac{s}{s_1}, \mu \right) \\ - &\mathrm{with} \; \;s_2 = s_2(s_1, s, μ) = \sqrt{s_1^2 + s^2 + 2s_1s\mu} - \; - , \quad A(s_\mathrm{max}, s_\mathrm{min}, \theta_\mathrm{max}) - \frac{ - V(s_\mathrm{max}, s_\mathrm{min}, \theta_\mathrm{max}) - }{4 \, \pi^2} -\end{split}\]

    with the definition

    \[f_\mathrm{in}(s_1, s) = \int_{-1}^{+1} \mathrm{d} \mu \; - \xi(s_1, s, \mu) \, \phi(s_2) \, - \mathcal{L}_L(\mu) \, F\left(\frac{s}{s_1}, \mu \right)\]

    and the application of the effective redshift approximation.

    Returns

    A Tuple{Vector{Float64}, Vector{Float64}} with:

    • the k values vector as first element;
    • the correspoding PS pk values vector as second one.

    See also: V_survey, A, A_prime, EPLs, print_PS_multipole

    source
    GaPSE.print_PS_multipoleFunction
     print_PS_multipole(ss, fs, out::String;
    -      L::Int=0, pr::Bool=true, alg::Symbol=:fftlog, kwargs...)
    - print_PS_multipole(input::String, out::String;
    -      kwargs...)

    Takes in input a filename input where is stored a TPCF multipole, calculate the L-order PS multipole through the following Fast Fourier Transform and the effective redshift approximation

    \[P_L(k) = \frac{2 L + 1}{A^{'}} (-i)^L \, \phi(s_\mathrm{eff}) \int_0^\infty - \mathrm{d} s \; s^2 \, j_L(ks) \, f_\mathrm{in}(s) \; , - \quad \; A^{'} = \frac{1}{4\,\pi}\]

    where $f_\mathrm{in}$ is the function samples by ss and xis, and save it in the file out, together with the options used for the computation.

    The second method reads the input file, takes the first column as ss and the second as fs and recalls the first method.

    Optional arguments

    Depending on the algorithm you choose, the options would change. The options in common are:

    • pr::Bool=true : want to print the automatic messages to the screen?
    • L::Int=0 : which multipole order should I use for this computation? IT MUST MATCH THE MULTIPOLE ORDER OF THE INPUT TPCF!
    • cut_first_n::Int=0 and cut_last_n::Int=0 : you can cout the first and/or last n elements of the input data, if they are highly irregular.
    • alg::Symbol = :fftlog : algorithm to be used for the computation. Currenlty, there are two algorithms you can coose in order to perform the computation:
      • alg = :fftlog (default and recommended option) will employ the FFTLog algorithm.
      • alg = :twofast will employ the TwoFAST xicalc function of the TwoFAST Julia package. Note that in the computation the integration range $0\leq s \leq \infty$ is reduced to int_s_min ≤ s ≤ int_s_max. This alogrithm is not the ideal choise, because TwoFAST is conceived for the direction PS -> TPCF, while is not 100% trustworthy for the other way round.

    The specific ones for alg = :fftlog are:

    • ν::Union{Float64,Nothing} = nothing : bias parameter, i.e. exponent used to "balance" the curve; if nothing, will be set automatically to 1.5
    • n_extrap_low::Int = 500 and n_extrap_high::Int = 500 : number of points to concatenate on the left/right of the input x-axis ss vector, logarithmically distributed with the same ratio of the left/right-edge elements of ss.
    • n_pad::Int = 500 : number of zeros to be concatenated both on the left and on the right of the input function. They stabilize a lot the algorithm.

    The specific ones for alg = :twofast are:

    • epl::Bool=true : do you want to extend the edges of the input vectors using two fitted power-laws (obtained from EPLs)
    • N_left::Int = 12 and N_right::Int = 12 : number of points from left right edges to be used for the power law fitting in EPLs. They matters only if in the given input file ξ is not defined until the extremes of integration int_s_min and int_s_max.
    • int_s_min::Float64 = 1e-1 and int_s_max::Float64 = 1e3: extremes of integration; if epl is set to false, their values will be automatically set to min(ss...) and max(ss...) respectively. Their values do matter only if epl=true.
    • p0_left=[-2.0, 1.0] and p0_right=[-2.0, 1.0]: vectors with the initial values for the left/right power-law fitting of EPLs; the power-law is in the form $y = f(x) = b * x^s$, so the first vector value is the initial value of $s$ (and of course the second is the one of $b$).
    • k0::Union{Nothing,Float64} = nothing : starting point for the xicalc function; if nothing, it will be set k0 = 1.0 / max(ss...)
    • right::Union{Float64,Nothing} = nothing : do you want to cut the output elements with ks .> right? if set to nothing, no cut will be done.
    • N::Int = 1024 : number of points to be used in Fourier transform

    See also: V_survey, A, A_prime, EPLs, PS_multipole

    source
    GaPSE.all_PS_multipoleFunction
     function all_PS_multipole(input::String,
    -      group::String=VALID_GROUPS[end];
    -      L::Int = 0, pr::Bool = true, 
    -      alg::Symbol=:fftlog, kwargs...
    -      ) ::Tuple{Vector{Float64}, Vector{Vector{Float64}}}

    Given an input file where the first column is the x-axis data one and all the following columns are the corresponding y-data ones, this function computes all the Power Spectra of each y-data column and return a Tuple containing

    • as first element, the ks values, common to all the PS
    • as second element, a vector where in each position there is the Power Spectra corresponding to the associated inputy y-data.

    The group::String=VALID_GROUPS[end] argument allow you to specify the group of the input TPCF, if they were computed through GAPSE. The allowed values for this argument are: LD , GNC , GNCxLD , LDxGNC , generic ,

    If you choose a group pay attention that the number of input TPCF must match the group number (16, 25, 20 and 20 respectively). The last group name (which is also the default value) is used in case the input xis do not belog to a specific group (and so no predefined number is expected).

    Optional arguments

    Depending on the algorithm you choose, the options would change. The options in common are:

    • pr::Bool=true : want to print the automatic messages to the screen?
    • L::Int=0 : which multipole order should I use for this computation? IT MUST MATCH THE MULTIPOLE ORDER OF THE INPUT TPCF!
    • cut_first_n::Int=0 and cut_last_n::Int=0 : you can cout the first and/or last n elements of the input data, if they are highly irregular.
    • alg::Symbol = :fftlog : algorithm to be used for the computation. Currenlty, there are two algorithms you can coose in order to perform the computation:
      • alg = :fftlog (default and recommended option) will employ the FFTLog algorithm.
      • alg = :twofast will employ the TwoFAST xicalc function of the TwoFAST Julia package. Note that in the computation the integration range $0\leq s \leq \infty$ is reduced to int_s_min ≤ s ≤ int_s_max. This alogrithm is not the ideal choise, because TwoFAST is conceived for the direction PS -> TPCF, while is not 100% trustworthy for the other way round.

    The specific ones for alg = :fftlog are:

    • ν::Union{Float64,Nothing} = nothing : bias parameter, i.e. exponent used to "balance" the curve; if nothing, will be set automatically to 1.5
    • n_extrap_low::Int = 500 and n_extrap_high::Int = 500 : number of points to concatenate on the left/right of the input x-axis ss vector, logarithmically distributed with the same ratio of the left/right-edge elements of ss.
    • n_pad::Int = 500 : number of zeros to be concatenated both on the left and on the right of the input function. They stabilize a lot the algorithm.

    The specific ones for alg = :twofast are:

    • epl::Bool=true : do you want to extend the edges of the input vectors using two fitted power-laws (obtained from EPLs)
    • N_left::Int = 12 and N_right::Int = 12 : number of points from left right edges to be used for the power law fitting in EPLs. They matters only if in the given input file ξ is not defined until the extremes of integration int_s_min and int_s_max.
    • int_s_min::Float64 = 1e-1 and int_s_max::Float64 = 1e3: extremes of integration; if epl is set to false, their values will be automatically set to min(ss...) and max(ss...) respectively. Their values do matter only if epl=true.
    • p0_left=[-2.0, 1.0] and p0_right=[-2.0, 1.0]: vectors with the initial values for the left/right power-law fitting of EPLs; the power-law is in the form $y = f(x) = b * x^s$, so the first vector value is the initial value of $s$ (and of course the second is the one of $b$).
    • k0::Union{Nothing,Float64} = nothing : starting point for the xicalc function; if nothing, it will be set k0 = 1.0 / max(ss...)
    • right::Union{Float64,Nothing} = nothing : do you want to cut the output elements with ks .> right? if set to nothing, no cut will be done.
    • N::Int = 1024 : number of points to be used in Fourier transform

    See also: EPLs, PS_multipole

    source
    GaPSE.print_all_PS_multipoleFunction
     print_all_PS_multipole(input::String, out::String,
    -      group::String = VALID_GROUPS[end]; 
    -      L::Int = 0, pr::Bool = true, 
    -      alg::Symbol = :fftlog,
    -      kwargs...)

    Given an inputfile where the first column is the x-axis data one and all the following columns are the corresponding y-data ones, this function computes all the Power Spectra of each y-data column and print in a file namedout`

    • as first column, the ks values, common to all the PS
    • as folowing columns, a vector where in each position there is the Power Spectra corresponding to the associated inputy y-data.

    The group::String=VALID_GROUPS[end] argument allow you to specify the group of the input TPCF, if they were computed through GAPSE. The allowed values for this argument are: LD , GNC , GNCxLD , LDxGNC , generic ,

    If you choose a group pay attention that the number of input TPCF must match the group number (16, 25, 20 and 20 respectively). The last group name (which is also the default value) is used in case the input xis do not belog to a specific group (and so no predefined number is expected).

    Optional arguments

    Depending on the algorithm you choose, the options would change. The options in common are:

    • pr::Bool=true : want to print the automatic messages to the screen?
    • L::Int=0 : which multipole order should I use for this computation? IT MUST MATCH THE MULTIPOLE ORDER OF THE INPUT TPCF!
    • cut_first_n::Int=0 and cut_last_n::Int=0 : you can cout the first and/or last n elements of the input data, if they are highly irregular.
    • alg::Symbol = :fftlog : algorithm to be used for the computation. Currenlty, there are two algorithms you can coose in order to perform the computation:
      • alg = :fftlog (default and recommended option) will employ the FFTLog algorithm.
      • alg = :twofast will employ the TwoFAST xicalc function of the TwoFAST Julia package. Note that in the computation the integration range $0\leq s \leq \infty$ is reduced to int_s_min ≤ s ≤ int_s_max. This alogrithm is not the ideal choise, because TwoFAST is conceived for the direction PS -> TPCF, while is not 100% trustworthy for the other way round.

    The specific ones for alg = :fftlog are:

    • ν::Union{Float64,Nothing} = nothing : bias parameter, i.e. exponent used to "balance" the curve; if nothing, will be set automatically to 1.5
    • n_extrap_low::Int = 500 and n_extrap_high::Int = 500 : number of points to concatenate on the left/right of the input x-axis ss vector, logarithmically distributed with the same ratio of the left/right-edge elements of ss.
    • n_pad::Int = 500 : number of zeros to be concatenated both on the left and on the right of the input function. They stabilize a lot the algorithm.

    The specific ones for alg = :twofast are:

    • epl::Bool=true : do you want to extend the edges of the input vectors using two fitted power-laws (obtained from EPLs)
    • N_left::Int = 12 and N_right::Int = 12 : number of points from left right edges to be used for the power law fitting in EPLs. They matters only if in the given input file ξ is not defined until the extremes of integration int_s_min and int_s_max.
    • int_s_min::Float64 = 1e-1 and int_s_max::Float64 = 1e3: extremes of integration; if epl is set to false, their values will be automatically set to min(ss...) and max(ss...) respectively. Their values do matter only if epl=true.
    • p0_left=[-2.0, 1.0] and p0_right=[-2.0, 1.0]: vectors with the initial values for the left/right power-law fitting of EPLs; the power-law is in the form $y = f(x) = b * x^s$, so the first vector value is the initial value of $s$ (and of course the second is the one of $b$).
    • k0::Union{Nothing,Float64} = nothing : starting point for the xicalc function; if nothing, it will be set k0 = 1.0 / max(ss...)
    • right::Union{Float64,Nothing} = nothing : do you want to cut the output elements with ks .> right? if set to nothing, no cut will be done.
    • N::Int = 1024 : number of points to be used in Fourier transform

    See also: EPLs, PS_multipole

    source
    diff --git a/dev/WindowF/index.html b/dev/WindowF/index.html index a148cf59..3792792c 100644 --- a/dev/WindowF/index.html +++ b/dev/WindowF/index.html @@ -1,17 +1,17 @@ -Window F · GaPSE.jl

    The Window Function F

    GaPSE.DEFAULT_FMAP_OPTS_hcubConstant
     DEFAULT_FMAP_OPTS_hcub = Dict(
    -      :θ_max => π / 2.0::Float64, 
    -      :tolerance => 1e-10::Float64, 
    -      :rtol => 1e-2::Float64, 
    -      :atol => 1e-3::Float64,
    -      :pr => true::Bool,
    - )

    The default values to be used for the F function when you want to perform the computation with hcubature.

    See also: integrand_F, F_hcub, print_map_F

    source
    GaPSE.DEFAULT_FMAP_OPTS_trapConstant
     DEFAULT_FMAP_OPTS_trap = Dict(
    -      :θ_max => π / 2.0::Float64, 
    -      :tolerance => 1e-10::Float64, 
    -      :N => 300::Int64, 
    -      :en => 1.0::Float64,
    -      :pr => true::Bool,
    - )

    The default values to be used for the F function when you want to perform the computation with trap.

    See also: integrand_F, F_trap, print_map_F

    source
    GaPSE.integrand_FFunction
    integrand_F(θ_1, θ, x, μ, θ_max; tolerance=1e-8) ::Float64

    Return the integrand of the function $F(x,\mu; \theta_\mathrm{max})$, i.e the function $f(x,\mu, \theta, \theta_1; \theta_\mathrm{max})$:

    \[\begin{split} +Window F · GaPSE.jl

    The Window Function F

    GaPSE.DEFAULT_FMAP_OPTS_hcubConstant
    DEFAULT_FMAP_OPTS_hcub = Dict(
    +    :θ_max => π / 2.0::Float64, 
    +    :tolerance => 1e-10::Float64, 
    +    :rtol => 1e-2::Float64, 
    +    :atol => 1e-3::Float64,
    +    :pr => true::Bool,
    +)

    The default values to be used for the F function when you want to perform the computation with hcubature.

    See also: integrand_F, F_hcub, print_map_F

    source
    GaPSE.DEFAULT_FMAP_OPTS_trapConstant
    DEFAULT_FMAP_OPTS_trap = Dict(
    +    :θ_max => π / 2.0::Float64, 
    +    :tolerance => 1e-10::Float64, 
    +    :N => 300::Int64, 
    +    :en => 1.0::Float64,
    +    :pr => true::Bool,
    +)

    The default values to be used for the F function when you want to perform the computation with trap.

    See also: integrand_F, F_trap, print_map_F

    source
    GaPSE.integrand_FFunction
    integrand_F(θ_1, θ, x, μ, θ_max; tolerance=1e-8) ::Float64

    Return the integrand of the function $F(x,\mu; \theta_\mathrm{max})$, i.e the function $f(x,\mu, \theta, \theta_1; \theta_\mathrm{max})$:

    \[\begin{split} f(x,\mu, \theta, \theta_1; \theta_\mathrm{max}) = \; &\Theta\left( \frac {x \cos \theta + \cos \theta_1}{\sqrt{x^1+2+2x\mu}} - @@ -25,9 +25,9 @@ F(x,\mu; \theta_\mathrm{max}) = \int_0^{\theta_\mathrm{max}} \mathrm{d}\theta_1 \int_0^\pi \mathrm{d} \theta \; f(x,\mu, \theta, \theta_1; \theta_\mathrm{max}) -\end{equation}\]

    tolerance is a parameter needed in case of small negative denominator: the Heaviside theta function mathematically prevent that $\mathrm{den}=(\sin\theta\sin\theta_1)^2-(\cos\theta\cos\theta_1-\mu)^2$ becomes negative, but computationally might happen that $\mathrm{den}$ results as a very small negative number (for instance -1.2368946523-18); in this case tolerance solve the problem, returning 0 if $0<-\mathrm{den}< \mathrm{tolerance}$

    See also: F, print_map_F

    source
    GaPSE.F_hcubFunction
     F_hcub(x, μ; θ_max = π/2, tolerance = 1e-10, 
    -      atol = 1e-2, rtol = 1e-5, 
    -      kwargs...) ::Tuple{Float64, Float64}

    Computes with hcubature the value of $F(x,\mu; \theta_\mathrm{max})$, defined as follows:

    \[\begin{split} +\end{equation}\]

    tolerance is a parameter needed in case of small negative denominator: the Heaviside theta function mathematically prevent that $\mathrm{den}=(\sin\theta\sin\theta_1)^2-(\cos\theta\cos\theta_1-\mu)^2$ becomes negative, but computationally might happen that $\mathrm{den}$ results as a very small negative number (for instance -1.2368946523-18); in this case tolerance solve the problem, returning 0 if $0<-\mathrm{den}< \mathrm{tolerance}$

    See also: print_map_F

    source
    GaPSE.F_hcubFunction
    F_hcub(x, μ; θ_max = π/2, tolerance = 1e-10, 
    +    atol = 1e-2, rtol = 1e-5, 
    +    kwargs...) ::Tuple{Float64, Float64}

    Computes with hcubature the value of $F(x,\mu; \theta_\mathrm{max})$, defined as follows:

    \[\begin{split} F(x,\mu; \theta_\mathrm{max}) = & \;4\pi \int_0^{\theta_\mathrm{max}} \mathrm{d}\theta_1 \int_0^\pi \mathrm{d} \theta \; \, \Theta\left(\frac @@ -38,9 +38,9 @@ &\Theta(\cos(\theta - \theta_1)-\mu) \; \frac{\sin\theta\sin\theta_1} {\sqrt{(\sin\theta\sin\theta_1)^2-(\cos\theta\cos\theta_1-\mu)^2}} -\end{split}\]

    tolerance is a parameter needed in case of small negative denominator: the Heaviside theta function mathematically prevent that $\mathrm{den}=(\sin\theta\sin\theta_1)^2-(\cos\theta\cos\theta_1-\mu)^2$ becomes negative, but computationally might happen that $\mathrm{den}$ results as a very small negative number (for instance -1.2368946523-18); in this case tolerance solve the problem, returning 0 if $0<-\mathrm{den}< \mathrm{tolerance}$.

    The double integral is performed with hcubature function from the Julia Package HCubature; rtol, atol and all the kwargs insert into F are directly transferred to hcubature.

    The output of this function is a Tuple{Float64, Float64}, containing respectively the value of the integral ad its error.

    PAY ATTENTION: do not set too small atol and rtol, or the computation can easily become overwhelming!

    NOTE: for computational efficiency and stability, it is highly recommended to use the other functionF_trap, based on the trapezoidal rule, in order to compute this function.

    See also: F_trap, print_map_F, integrand_F, check_compatible_dicts

    source
    GaPSE.F_trapFunction
     F_trap(x, μ; θ_max = π/2, tolerance = 1e-10, 
    -      atol = 1e-2, rtol = 1e-5, 
    -      kwargs...) ::Float64

    Computes with trap the value of $F(x,\mu; \theta_\mathrm{max})$, defined as follows:

    \[\begin{split} +\end{split}\]

    tolerance is a parameter needed in case of small negative denominator: the Heaviside theta function mathematically prevent that $\mathrm{den}=(\sin\theta\sin\theta_1)^2-(\cos\theta\cos\theta_1-\mu)^2$ becomes negative, but computationally might happen that $\mathrm{den}$ results as a very small negative number (for instance -1.2368946523-18); in this case tolerance solve the problem, returning 0 if $0<-\mathrm{den}< \mathrm{tolerance}$.

    The double integral is performed with hcubature() function from the Julia Package HCubature.jl; rtol, atol and all the kwargs insert into F are directly transferred to hcubature.

    The output of this function is a Tuple{Float64, Float64}, containing respectively the value of the integral ad its error.

    PAY ATTENTION: do not set too small atol and rtol, or the computation can easily become overwhelming!

    NOTE: for computational efficiency and stability, it is highly recommended to use the other functionF_trap, based on the trapezoidal rule, in order to compute this function.

    See also: F_trap, print_map_F, integrand_F, check_compatible_dicts

    source
    GaPSE.F_trapFunction
    F_trap(x, μ; θ_max = π/2, tolerance = 1e-10, 
    +    atol = 1e-2, rtol = 1e-5, 
    +    kwargs...) ::Float64

    Computes with trap the value of $F(x,\mu; \theta_\mathrm{max})$, defined as follows:

    \[\begin{split} F(x,\mu; \theta_\mathrm{max}) = & \;4\pi \int_0^{\theta_\mathrm{max}} \mathrm{d}\theta_1 \int_0^\pi \mathrm{d} \theta \; \, \Theta\left(\frac @@ -51,14 +51,14 @@ &\Theta(\cos(\theta - \theta_1)-\mu) \; \frac{\sin\theta\sin\theta_1} {\sqrt{(\sin\theta\sin\theta_1)^2-(\cos\theta\cos\theta_1-\mu)^2}} -\end{split}\]

    tolerance is a parameter needed in case of small negative denominator: the Heaviside theta function mathematically prevent that $\mathrm{den}=(\sin\theta\sin\theta_1)^2-(\cos\theta\cos\theta_1-\mu)^2$ becomes negative, but computationally might happen that $\mathrm{den}$ results as a very small negative number (for instance -1.2368946523-18); in this case tolerance solve the problem, returning 0 if $0<-\mathrm{den}< \mathrm{tolerance}$.

    The double integral is performed with trapz function from the Julia Package Trapz, that is based on the trapezoidal rule. N is the number of point to be used to sample INDIPENDENTLY θ_1 and θ, so consider that there is a N^2 time dependence. It's recommended to set 100 < N < 1000.

    NOTE: there is another function, called F_hcub, that performs this calculus. Nevertheless, for computational efficiency and stability, it is highly recommended to use to use this one.

    See also: F_hcub, print_map_F, integrand_F, check_compatible_dicts

    source
    GaPSE.print_map_FFunction
     print_map_F(out::String, x_step::Float64 = 0.01, μ_step::Float64 = 0.01;
    -      alg::Symbol = :trap, x1 = 0, x2 = 3, μ1 = -1, μ2 = 1, 
    -      Fmap_opts::Dict = Dict{Symbol,Any}(), 
    -      kwargs...)
    +\end{split}\]

    tolerance is a parameter needed in case of small negative denominator: the Heaviside theta function mathematically prevent that $\mathrm{den}=(\sin\theta\sin\theta_1)^2-(\cos\theta\cos\theta_1-\mu)^2$ becomes negative, but computationally might happen that $\mathrm{den}$ results as a very small negative number (for instance -1.2368946523-18); in this case tolerance solve the problem, returning 0 if $0<-\mathrm{den}< \mathrm{tolerance}$.

    The double integral is performed with trapz() function from the Julia Package Trapz.jl, that is based on the trapezoidal rule. N is the number of point to be used to sample INDIPENDENTLY θ_1 and θ, so consider that there is a N^2 time dependence. It's recommended to set 100 < N < 1000.

    NOTE: there is another function, called F_hcub, that performs this calculus. Nevertheless, for computational efficiency and stability, it is highly recommended to use to use this one.

    See also: F_hcub, print_map_F, integrand_F, check_compatible_dicts

    source
    GaPSE.print_map_FFunction
    print_map_F(out::String, x_step::Float64 = 0.01, μ_step::Float64 = 0.01;
    +    alg::Symbol = :trap, x1 = 0, x2 = 3, μ1 = -1, μ2 = 1, 
    +    Fmap_opts::Dict = Dict{Symbol,Any}(), 
    +    kwargs...)
     
    - print_map_F(out::String, xs::Vector{Float64}, μs::Vector{Float64};
    -      alg::Symbol = :trap, Fmap_opts::Dict = Dict{Symbol,Any}(),
    -      kwargs...)

    Evaluate the window function $F(x,\mu; \theta_\mathrm{max})$ in a rectangual grid of $\mu$ and $x$ values, and print the results in the out file.

    In the first method you have to specify manually, both for x and μ, start (x1 and μ1), stop (x2 and μ2), and step (x_step and μ_step). In the second one, you need to pass the values you want to calculate the function in, through the vectors xs and μs.

    The Symbol keyword argument alg tells if you want to perform the computation of F with F_trap (if alg = :trap) or with F_hcub (if alg = :hcub). Other symbols will lead to an AssertionError. Both for computational efficiency and stability, it's highly recommended to use the former (i.e. the default one).

    Fmap_opts is instead the way you should exploit in order to pass to F_trap/F_hcub other options you are interested in. You may pass only the key and the value you are focused on, and all the other default ones will be considered. A common key to both the algortithm is :pr => true or :pr => false, that tells if you want to se the progress-bar of the computation.

    For example, if you set trap == false and:

    Fmap_opts = Dict(:tolerance => 1e-5, :θ_max => 2.0)

    then the dictionary with all the options that will be passed to F will be:

    Fmap_dict = merge(DEFAULT_FMAP_OPTS_hcub, Fmap_opts) = :θ_max => 2.0, # CHANGED VALUE :tolerance => 1e-5, # CHANGED VALUE :rtol => 1e-2, # default :atol => 1e-3, # default :pr => true, # default )

    Check the documentation of DEFAULT_FMAP_OPTS_hcub and DEFAULT_FMAP_OPTS_trap for more information about these default values.

    See also: DEFAULT_FMAP_OPTS_hcub, DEFAULT_FMAP_OPTS_trap F_trap, F_hcub, integrand_F

    source
    GaPSE.WindowFType
    WindowF(
    +print_map_F(out::String, xs::Vector{Float64}, μs::Vector{Float64};
    +    alg::Symbol = :trap, Fmap_opts::Dict = Dict{Symbol,Any}(),
    +    kwargs...)

    Evaluate the window function $F(x,\mu; \theta_\mathrm{max})$ in a rectangual grid of $\mu$ and $x$ values, and print the results in the out file.

    In the first method you have to specify manually, both for x and μ, start (x1 and μ1), stop (x2 and μ2), and step (x_step and μ_step). In the second one, you need to pass the values you want to calculate the function in, through the vectors xs and μs.

    The Symbol keyword argument alg tells if you want to perform the computation of F with F_trap (if alg = :trap) or with F_hcub (if alg = :hcub). Other symbols will lead to an AssertionError. Both for computational efficiency and stability, it's highly recommended to use the former (i.e. the default one).

    Fmap_opts is instead the way you should exploit in order to pass to F_trap/F_hcub other options you are interested in. You may pass only the key and the value you are focused on, and all the other default ones will be considered. A common key to both the algortithm is :pr => true or :pr => false, that tells if you want to se the progress-bar of the computation.

    For example, if you set trap == false and:

    Fmap_opts = Dict(:tolerance => 1e-5, :θ_max => 2.0)

    then the dictionary with all the options that will be passed to F will be:

    Fmap_dict = merge(DEFAULT_FMAP_OPTS_hcub, Fmap_opts) = :θ_max => 2.0, # CHANGED VALUE :tolerance => 1e-5, # CHANGED VALUE :rtol => 1e-2, # default :atol => 1e-3, # default :pr => true, # default )

    Check the documentation of DEFAULT_FMAP_OPTS_hcub and DEFAULT_FMAP_OPTS_trap for more information about these default values.

    See also: DEFAULT_FMAP_OPTS_hcub, DEFAULT_FMAP_OPTS_trap F_trap, F_hcub, integrand_F

    source
    GaPSE.WindowFType
    WindowF(
         xs::Vector{Float64}
         μs::Vector{Float64}
         Fs::Matrix{Float64}
    @@ -81,4 +81,4 @@
     0.0       -1.0       ...
     0.1       -1.0       ...
     0.2       -1.0       ...
    -...       ...      ...

    because the constructor will recognise it. What does matter is the columns order: xs first, then μs and finally Fs.

    See also: print_map_F, F_trap, spline_F

    source
    GaPSE.spline_FFunction
     spline_F(x, μ, str::WindowF)) ::Float64

    Return the 2-dim spline value of $F$ in the given (x,μ), where $F$ is defined in the input WindowF. The spline is obtained through the interpolate function of the GridInterpolations Julia package.

    See also: WindowF

    source
    +... ... ...

    because the constructor will recognise it. What does matter is the columns order: xs first, then μs and finally Fs.

    See also: print_map_F, F_trap, spline_F

    source
    GaPSE.spline_FFunction
    spline_F(x, μ, str::WindowF)) ::Float64

    Return the 2-dim spline value of $F$ in the given (x,μ), where $F$ is defined in the input WindowF. The spline is obtained through the interpolate function of the GridInterpolations Julia package.

    See also: WindowF

    source
    diff --git a/dev/WindowFIntegrated/index.html b/dev/WindowFIntegrated/index.html index 28801552..26f7da56 100644 --- a/dev/WindowFIntegrated/index.html +++ b/dev/WindowFIntegrated/index.html @@ -1,40 +1,40 @@ -Integrated Window F · GaPSE.jl

    The Integrated Window Function

    GaPSE.integrated_F_quadgkFunction
     integrated_F_quadgk(s, μ, s_min, s_max, windowF::WindowF;
    -      llim=0.0, rlim=Inf, rtol=1e-2, atol=0.0)

    Computes the Integrated Window Function fron the input Window Function windowF, through the quadgk function of the QuadGK Julia pagkage, in the point (s,μ) (where s is the comoving distance and μ the angle cosine). s_min and s_max are the min and max value for the radial part of the survey window function.

    The analytical expression of the Integrated window function is the following:

    \[\mathcal{F}(s, \mu) = +Integrated Window F · GaPSE.jl

    The Integrated Window Function

    GaPSE.integrated_F_quadgkFunction
    integrated_F_quadgk(s, μ, s_min, s_max, windowF::WindowF;
    +    llim=0.0, rlim=Inf, rtol=1e-2, atol=0.0)

    Computes the Integrated Window Function fron the input Window Function windowF, through the quadgk function of the QuadGK Julia pagkage, in the point (s,μ) (where s is the comoving distance and μ the angle cosine). s_min and s_max are the min and max value for the radial part of the survey window function.

    The analytical expression of the Integrated window function is the following:

    \[\mathcal{F}(s, \mu) = \int_0^\infty \mathrm{d}s_1 \, \phi(s_1) \, \phi\left(\sqrt{s_1^2 + s^2 + 2 \, s_1 \, s \, \mu}\right) - \, F\left(\frac{s}{s_1}, \mu \right)\]

    where $s$ is the comoving distance, $\mu$ the cosine angle, $\phi$ is the angular part of the survey window function and $F(x, μ)$ is the window function. Check the documentation of WindowF for its definition. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    Optional arguments

    • llim=nothing and rlim=nothing : integration limits for quadgk; if llim=nothing it will be set to 0.95 * s_min; if rlim=nothing, it will be set to 1.05*s_max, while if rlim=Inf it will be set to 3 * s_max
    • rtol=1e-2 and atol=0.0 : relative and absoute tolerance for quadgk

    See also: [WindowF], ϕ

    source
    GaPSE.integrated_F_trapzFunction
     integrated_F_trapz(s, μ, s_min, s_max, windowF::WindowF;
    -      llim=nothing, rlim=nothing, N::Int=1000)

    Computes the Integrated Window Function fron the input Window Function windowF, through the trapz function of the Trapz Julia pagkage, in the point (s,μ) (where s is the comoving distance and μ the angle cosine). s_min and s_max are the min and max value for the radial part of the survey window function.

    The analytical expression of the Integrated window function is the following:

    \[\mathcal{F}(s, \mu) = + \, F\left(\frac{s}{s_1}, \mu \right)\]

    where $s$ is the comoving distance, $\mu$ the cosine angle, $\phi$ is the angular part of the survey window function and $F(x, μ)$ is the window function. Check the documentation of WindowF for its definition. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    Optional arguments

    • llim=nothing and rlim=nothing : integration limits for quadgk; if llim=nothing it will be set to 0.95 * s_min; if rlim=nothing, it will be set to 1.05*s_max, while if rlim=Inf it will be set to 3 * s_max
    • rtol=1e-2 and atol=0.0 : relative and absoute tolerance for quadgk

    See also: [WindowF], ϕ

    source
    GaPSE.integrated_F_trapzFunction
    integrated_F_trapz(s, μ, s_min, s_max, windowF::WindowF;
    +    llim=nothing, rlim=nothing, N::Int=1000)

    Computes the Integrated Window Function fron the input Window Function windowF, through the trapz function of the Trapz Julia pagkage, in the point (s,μ) (where s is the comoving distance and μ the angle cosine). s_min and s_max are the min and max value for the radial part of the survey window function.

    The analytical expression of the Integrated window function is the following:

    \[\mathcal{F}(s, \mu) = \int_0^\infty \mathrm{d}s_1 \, \phi(s_1) \, \phi\left(\sqrt{s_1^2 + s^2 + 2 \, s_1 \, s \, \mu}\right) - \, F\left(\frac{s}{s_1}, \mu \right)\]

    where $s$ is the comoving distance, $\mu$ the cosine angle, $\phi$ is the angular part of the survey window function and $F(x, μ)$ is the window function. Check the documentation of WindowF for its definition. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    Optional arguments

    • llim=nothing and rlim=nothing : limits of the sampling interval to be used for trapz; if llim=nothing it will be set to 0.95 * s_min; if rlim=nothing, it will be set to 1.05*s_max, while if rlim=Inf it will be set to 3 * s_max
    • N::Int = 1000 : number of points to be used for the sampling

    See also: [WindowF], ϕ

    source
    GaPSE.print_map_IntegratedFFunction
     print_map_IntegratedF(
    -      s_min, s_max, 
    -      ss::Vector{Float64}, μs::Vector{Float64}, 
    -      windowF::Union{String,WindowF}, out::String;
    -      alg::Symbol=:trap, llim=nothing, rlim=nothing,
    -      rtol=1e-2, atol=0.0, N::Int=1000, pr::Bool=true)
    +    \, F\left(\frac{s}{s_1}, \mu \right)\]

    where $s$ is the comoving distance, $\mu$ the cosine angle, $\phi$ is the angular part of the survey window function and $F(x, μ)$ is the window function. Check the documentation of WindowF for its definition. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    Optional arguments

    • llim=nothing and rlim=nothing : limits of the sampling interval to be used for trapz; if llim=nothing it will be set to 0.95 * s_min; if rlim=nothing, it will be set to 1.05*s_max, while if rlim=Inf it will be set to 3 * s_max
    • N::Int = 1000 : number of points to be used for the sampling

    See also: [WindowF], ϕ

    source
    GaPSE.print_map_IntegratedFFunction
    print_map_IntegratedF(
    +    s_min, s_max, 
    +    ss::Vector{Float64}, μs::Vector{Float64}, 
    +    windowF::Union{String,WindowF}, out::String;
    +    alg::Symbol=:trap, llim=nothing, rlim=nothing,
    +    rtol=1e-2, atol=0.0, N::Int=1000, pr::Bool=true)
     
    - print_map_IntegratedF(
    -      z_min, z_max, 
    -      zs::Vector{Float64}, μs::Vector{Float64}, 
    -      windowF::Union{String,WindowF}, out::String,
    -      file_data::String; 
    -      names_bg = NAMES_BACKGROUND, h_0 = 0.7, kwargs...)
    +print_map_IntegratedF(
    +    z_min, z_max, 
    +    zs::Vector{Float64}, μs::Vector{Float64}, 
    +    windowF::Union{String,WindowF}, out::String,
    +    file_data::String; 
    +    names_bg = NAMES_BACKGROUND, h_0 = 0.7, kwargs...)
     
    - print_map_IntegratedF(
    -      z_min, z_max,
    -      μs::Vector{Float64}, 
    -      windowF::Union{String,WindowF}, out::String,
    -      file_data::String;
    -      names_bg = NAMES_BACKGROUND, h_0 = 0.7, N_ss::Int = 100, 
    -      m::Float64 = 2.1, kwargs...)

    Evaluate the integrated window function $\mathcal{F}(s,\mu)$ in a rectangual grid of $\mu$ and $s$ values, and print the results in the out file.

    The first method takes as input:

    • s_min and s_max : min and max comoving distance of the survey; their values will be internally used by the radial function ϕ

    • ss::Vector{Float64} and μs::Vector{Float64} : the vector of s and μ points where to sample the integrated window function $\mathcal{F}$. They must be a float vector of increasing values; more precisely:

      • ss must be a float vector of increasing comoving distance values (so each element must be ≥ 0); the first and last values ARE NOT RELATED to s_min and s_max.
      • μs must be a float vector of increasing cosine values (so each element x must be -1 ≤ x ≤ 1).
    • windowF::Union{String,WindowF}, i.e. the window function itself; it can be passed as the namefile where the window is stored in (that will be opened with WindowF) or as a WindowF struct directly.

    • out::String : the name of the output file

    The second method takes as input the min and max redshifts of the survey (z_minand z_max), the vector of redshifts zs::Vector{Float64} for the integrated window function sampling, μs and windowF as before and the file_data where can be found the association $z \rightarrow s(z)$. Such file must have the structure of the background data produced by the CLASS code. Note that also zs musyt be a float vector of increasing redshift values (so each element must be ≥ 0). This method internally recalls the first one, so the other kwargs... are in common.

    The third method takes as input the min and max redshifts of the survey (z_minand z_max) and the same input as the second method (μs, widnowF, out and file_data) but NOT THE REDSHIFT SAMPLING VECTOR zs. The sampling will be internally made linearly from $s = 0$ to $s = m \, s_{\mathrm{max}}$, where s_max is the comoving distance associated to z_max (for the data stored in file_data) and m::Float64 = 2.1 a coefficient that we suggest to set equals to 2 < m < 3. N_ss::Int = 100 is the number of s values used for the sampling in the interval $[0, m \, s_{\mathrm{max}}]$. This method internally recalls the first one, so the other kwargs... are in common.

    The analytical expression for the integrated window function is the following:

    \[\mathcal{F}(s, \mu) = +print_map_IntegratedF( + z_min, z_max, + μs::Vector{Float64}, + windowF::Union{String,WindowF}, out::String, + file_data::String; + names_bg = NAMES_BACKGROUND, h_0 = 0.7, N_ss::Int = 100, + m::Float64 = 2.1, kwargs...)

    Evaluate the integrated window function $\mathcal{F}(s,\mu)$ in a rectangual grid of $\mu$ and $s$ values, and print the results in the out file.

    The first method takes as input:

    • s_min and s_max : min and max comoving distance of the survey; their values will be internally used by the radial function ϕ

    • ss::Vector{Float64} and μs::Vector{Float64} : the vector of s and μ points where to sample the integrated window function $\mathcal{F}$. They must be a float vector of increasing values; more precisely:

      • ss must be a float vector of increasing comoving distance values (so each element must be ≥ 0); the first and last values ARE NOT RELATED to s_min and s_max.
      • μs must be a float vector of increasing cosine values (so each element x must be -1 ≤ x ≤ 1).
    • windowF::Union{String,WindowF}, i.e. the window function itself; it can be passed as the namefile where the window is stored in (that will be opened with WindowF) or as a WindowF struct directly.

    • out::String : the name of the output file

    The second method takes as input the min and max redshifts of the survey (z_minand z_max), the vector of redshifts zs::Vector{Float64} for the integrated window function sampling, μs and windowF as before and the file_data where can be found the association $z \rightarrow s(z)$. Such file must have the structure of the background data produced by the CLASS (link: https://github.com/lesgourg/class_public) code. Note that also zs musyt be a float vector of increasing redshift values (so each element must be ≥ 0). This method internally recalls the first one, so the other kwargs... are in common.

    The third method takes as input the min and max redshifts of the survey (z_minand z_max) and the same input as the second method (μs, widnowF, out and file_data) but NOT THE REDSHIFT SAMPLING VECTOR zs. The sampling will be internally made linearly from $s = 0$ to $s = m \, s_{\mathrm{max}}$, where s_max is the comoving distance associated to z_max (for the data stored in file_data) and m::Float64 = 2.1 a coefficient that we suggest to set equals to 2 < m < 3. N_ss::Int = 100 is the number of s values used for the sampling in the interval $[0, m \, s_{\mathrm{max}}]$. This method internally recalls the first one, so the other kwargs... are in common.

    The analytical expression for the integrated window function is the following:

    \[\mathcal{F}(s, \mu) = \int_0^\infty \mathrm{d}s_1 \, \phi(s_1) \, \phi\left(\sqrt{s_1^2 + s^2 + 2 \, s_1 \, s \, \mu}\right) - \, F\left(\frac{s}{s_1}, \mu \right)\]

    where $s$ is the comoving distance, $\mu$ the cosine angle, $\phi$ is the angular part of the survey window function and $F(x, μ)$ is the window function. Check the documentation of WindowF for its definition. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    Optional arguments

    As optional arguments of the first method:

    • alg::Symbol = :trap : algorithm to be used for the integration; the valid options are :quad (that will recall integrated_F_quadgk) and :trap (that will recall integrated_F_trapz); other values will lead to AssertionError
    • llim=nothing and rlim=nothing : integration limits for quad/trap; if llim=nothing it will be set to 0.95 * s_min; if rlim=nothing, it will be set to 1.05*s_max, while if rlim=Inf it will be set to 3 * s_max.
    • N::Int = 1000 : number of points to be used for the sampling of trapz; it's useless if you set alg = :quad;
    • rtol=1e-2 and atol=0.0 : relative and absoute tolerance for quadgk; they are useless if you set alg = :trap;
    • pr::Bool = true : do you want to see the progress-bar of the computation?

    The optional arguments given to the second method will be directly given to the first one. The only two exceptions are options relative to the background data, managed internally by the struct BackgroundData:

    • names = NAMES_BACKGROUND : the column names of the file_data. If the colum order change from the default one NAMES_BACKGROUND, you must set as input the vector of string with the correct one, with the SAME names. They are, with the default order:

      ["z", "proper time [Gyr]", "conf. time [Mpc]", "H [1/Mpc]", "comov. dist.", "ang.diam.dist.", "lum. dist.", "comov.snd.hrz.", "(.)rhog", "(.)rhob", "(.)rhocdm", "(.)rholambda", "(.)rhour", "(.)rhocrit", "gr.fac. D", "gr.fac. f"]

    • h = 0.7 : the adimensional hubble constant. By default, CLASS background data are measured with it numerically expressed (so distances are measured in Mpc, for example), while this code works with h in the unit of measure (so distances are measured in Mpc/h, for example). Change this value to 1.0 if the input data do not have this issue, or to your value of interest (0.67, 0.5, ...).

    See also: integrated_F_quadgk, integrated_F_trapz, ϕ, WindowF, WindowFIntegrated, BackgroundData

    source
    GaPSE.WindowFIntegratedType
     WindowFIntegrated(
    -      ss::Vector{Float64}
    -      μs::Vector{Float64}
    -      IFs::Matrix{Float64}
    -      )

    Struct containing ss, μs and IFs values of the integrated window function $\mathcal{F}(s, μ)$. ss and μs are 1D vectors containing each value only once, while IFs values are contained in a matrix of size (length(ss), length(μs)), so:

    • along a fixed column the changing value is s
    • along a fixed row the changing value is μ

    The analytical expression for the integrated window function is the following:

    \[\mathcal{F}(s, \mu) = + \, F\left(\frac{s}{s_1}, \mu \right)\]

    where $s$ is the comoving distance, $\mu$ the cosine angle, $\phi$ is the angular part of the survey window function and $F(x, μ)$ is the window function. Check the documentation of WindowF for its definition. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    Optional arguments

    As optional arguments of the first method:

    • alg::Symbol = :trap : algorithm to be used for the integration; the valid options are :quad (that will recall integrated_F_quadgk) and :trap (that will recall integrated_F_trapz); other values will lead to AssertionError
    • llim=nothing and rlim=nothing : integration limits for quad/trap; if llim=nothing it will be set to 0.95 * s_min; if rlim=nothing, it will be set to 1.05*s_max, while if rlim=Inf it will be set to 3 * s_max.
    • N::Int = 1000 : number of points to be used for the sampling of trapz; it's useless if you set alg = :quad;
    • rtol=1e-2 and atol=0.0 : relative and absoute tolerance for quadgk; they are useless if you set alg = :trap;
    • pr::Bool = true : do you want to see the progress-bar of the computation?

    The optional arguments given to the second method will be directly given to the first one. The only two exceptions are options relative to the background data, managed internally by the struct BackgroundData:

    • names = NAMES_BACKGROUND : the column names of the file_data. If the colum order change from the default one NAMES_BACKGROUND, you must set as input the vector of string with the correct one, with the SAME names. They are, with the default order:

      ["z", "proper time [Gyr]", "conf. time [Mpc]", "H [1/Mpc]", "comov. dist.", "ang.diam.dist.", "lum. dist.", "comov.snd.hrz.", "(.)rhog", "(.)rhob", "(.)rhocdm", "(.)rholambda", "(.)rhour", "(.)rhocrit", "gr.fac. D", "gr.fac. f"]

    • h = 0.7 : the adimensional hubble constant. By default, CLASS background data are measured with it numerically expressed (so distances are measured in Mpc, for example), while this code works with h in the unit of measure (so distances are measured in Mpc/h, for example). Change this value to 1.0 if the input data do not have this issue, or to your value of interest (0.67, 0.5, ...).

    The optional arguments given to the third method will be directly given to the first one again. The only two exceptions are:

    • names_bg=GaPSE.NAMES_BACKGROUND and h_0=0.7 : same as for the second method

    • N_ss::Int=100 : number of points to be used in the liearly spaced comoving distance vector

    • st::Float64=0.0 : starting comoving distance of the vector

    • m:Float64 = 2.1 : coefficient that set the maximum comoving distance of the vector, equals to $m * s_max$, where s_max is the comoving distance associated to the redhsift z_max

    See also: integrated_F_quadgk, integrated_F_trapz, ϕ, WindowF, WindowFIntegrated, BackgroundData

    source
    GaPSE.WindowFIntegratedType
    WindowFIntegrated(
    +    ss::Vector{Float64}
    +    μs::Vector{Float64}
    +    IFs::Matrix{Float64}
    +    )

    Struct containing ss, μs and IFs values of the integrated window function $\mathcal{F}(s, μ)$. ss and μs are 1D vectors containing each value only once, while IFs values are contained in a matrix of size (length(ss), length(μs)), so:

    • along a fixed column the changing value is s
    • along a fixed row the changing value is μ

    The analytical expression for the integrated window function is the following:

    \[\mathcal{F}(s, \mu) = \int_0^\infty \mathrm{d}s_1 \, \phi(s_1) \, \phi\left(\sqrt{s_1^2 + s^2 + 2 \, s_1 \, s \, \mu}\right) \, F\left(\frac{s}{s_1}, \mu \right)\]

    where $s$ is the comoving distance, $\mu$ the cosine angle, $\phi$ is the angular part of the survey window function and $F(x, μ)$ is the window function. Check the documentation of WindowF for its definition. We remember that all the distances are measured in $h_0^{-1}\mathrm{Mpc}$.

    Constructors

     WindowFIntegrated(file::String)

    Read the IF map from the file file. Such a file might be produced by print_map_IntegratedF, check its docstring.

    It does not matter if the pattern is

    # ss      μs      IFs
    @@ -45,4 +45,4 @@
     0.0       -1.0       ...
     0.1       -1.0       ...
     0.2       -1.0       ...
    -...       ...      ...

    because the constructor will recognise it. What does matter is the columns order: ss first, then μs and finally IFs.

    See also: integrated_F_trapz, integrated_F_quadgk, spline_integrF, WindowF, ϕ, print_map_IntegratedF

    source
    GaPSE.spline_integrFFunction
     spline_integrF(s, μ, str::WindowFIntegrated)::Float64

    Return the 2-dim spline value of $\mathcal{F}$ in the given (s,μ), where $\mathcal{F}$ is defined in the input WindowFIntegrated. The spline is obtained through the interpolate function of the GridInterpolations Julia package.

    See also: WindowFIntegrated

    source
    +... ... ...

    because the constructor will recognise it. What does matter is the columns order: ss first, then μs and finally IFs.

    See also: integrated_F_trapz, integrated_F_quadgk, spline_integrF, WindowF, ϕ, print_map_IntegratedF

    source
    GaPSE.spline_integrFFunction
    spline_integrF(s, μ, str::WindowFIntegrated)::Float64

    Return the 2-dim spline value of $\mathcal{F}$ in the given (s,μ), where $\mathcal{F}$ is defined in the input WindowFIntegrated. The spline is obtained through the interpolate function of the GridInterpolations Julia package.

    See also: WindowFIntegrated

    source
    diff --git a/dev/assets/documenter.js b/dev/assets/documenter.js index 6adfbbbf..f5311607 100644 --- a/dev/assets/documenter.js +++ b/dev/assets/documenter.js @@ -1,15 +1,16 @@ // Generated by Documenter.jl requirejs.config({ paths: { - 'highlight-julia': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia.min', + 'highlight-julia': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/julia.min', 'headroom': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/headroom.min', - 'jqueryui': 'https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min', - 'katex-auto-render': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/contrib/auto-render.min', - 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + 'jqueryui': 'https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.13.2/jquery-ui.min', + 'minisearch': 'https://cdn.jsdelivr.net/npm/minisearch@6.1.0/dist/umd/index.min', + 'katex-auto-render': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.8/contrib/auto-render.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.0/jquery.min', 'headroom-jquery': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/jQuery.headroom.min', - 'katex': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/katex.min', - 'highlight': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/highlight.min', - 'highlight-julia-repl': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia-repl.min', + 'katex': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.8/katex.min', + 'highlight': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/highlight.min', + 'highlight-julia-repl': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/julia-repl.min', }, shim: { "highlight-julia": { @@ -70,13 +71,90 @@ $(document).ready(function() { hljs.highlightAll(); }) +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +let timer = 0; +var isExpanded = true; + +$(document).on("click", ".docstring header", function () { + let articleToggleTitle = "Expand docstring"; + + debounce(() => { + if ($(this).siblings("section").is(":visible")) { + $(this) + .find(".docstring-article-toggle-button") + .removeClass("fa-chevron-down") + .addClass("fa-chevron-right"); + } else { + $(this) + .find(".docstring-article-toggle-button") + .removeClass("fa-chevron-right") + .addClass("fa-chevron-down"); + + articleToggleTitle = "Collapse docstring"; + } + + $(this) + .find(".docstring-article-toggle-button") + .prop("title", articleToggleTitle); + $(this).siblings("section").slideToggle(); + }); +}); + +$(document).on("click", ".docs-article-toggle-button", function () { + let articleToggleTitle = "Expand docstring"; + let navArticleToggleTitle = "Expand all docstrings"; + + debounce(() => { + if (isExpanded) { + $(this).removeClass("fa-chevron-up").addClass("fa-chevron-down"); + $(".docstring-article-toggle-button") + .removeClass("fa-chevron-down") + .addClass("fa-chevron-right"); + + isExpanded = false; + + $(".docstring section").slideUp(); + } else { + $(this).removeClass("fa-chevron-down").addClass("fa-chevron-up"); + $(".docstring-article-toggle-button") + .removeClass("fa-chevron-right") + .addClass("fa-chevron-down"); + + isExpanded = true; + articleToggleTitle = "Collapse docstring"; + navArticleToggleTitle = "Collapse all docstrings"; + + $(".docstring section").slideDown(); + } + + $(this).prop("title", navArticleToggleTitle); + $(".docstring-article-toggle-button").prop("title", articleToggleTitle); + }); +}); + +function debounce(callback, timeout = 300) { + if (Date.now() - timer > timeout) { + callback(); + } + + clearTimeout(timer); + + timer = Date.now(); +} + }) //////////////////////////////////////////////////////////////////////////////// require([], function() { function addCopyButtonCallbacks() { for (const el of document.getElementsByTagName("pre")) { const button = document.createElement("button"); - button.classList.add("copy-button", "fas", "fa-copy"); + button.classList.add("copy-button", "fa-solid", "fa-copy"); + button.setAttribute("aria-label", "Copy this code block"); + button.setAttribute("title", "Copy"); + el.appendChild(button); const success = function () { @@ -85,7 +163,7 @@ function addCopyButtonCallbacks() { }; const failure = function () { - button.classList.add("error", "fa-times"); + button.classList.add("error", "fa-xmark"); button.classList.remove("fa-copy"); }; @@ -94,7 +172,7 @@ function addCopyButtonCallbacks() { setTimeout(function () { button.classList.add("fa-copy"); - button.classList.remove("success", "fa-check", "fa-times"); + button.classList.remove("success", "fa-check", "fa-xmark"); }, 5000); }); } @@ -138,29 +216,418 @@ require(['jquery', 'headroom', 'headroom-jquery'], function($, Headroom) { // Manages the top navigation bar (hides it when the user starts scrolling down on the // mobile). window.Headroom = Headroom; // work around buggy module loading? -$(document).ready(function() { - $('#documenter .docs-navbar').headroom({ - "tolerance": {"up": 10, "down": 10}, +$(document).ready(function () { + $("#documenter .docs-navbar").headroom({ + tolerance: { up: 10, down: 10 }, }); +}); + }) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'minisearch'], function($, minisearch) { + +// In general, most search related things will have "search" as a prefix. +// To get an in-depth about the thought process you can refer: https://hetarth02.hashnode.dev/series/gsoc + +let results = []; +let timer = undefined; + +let data = documenterSearchIndex["docs"].map((x, key) => { + x["id"] = key; // minisearch requires a unique for each object + return x; +}); + +// list below is the lunr 2.1.3 list minus the intersect with names(Base) +// (all, any, get, in, is, only, which) and (do, else, for, let, where, while, with) +// ideally we'd just filter the original list but it's not available as a variable +const stopWords = new Set([ + "a", + "able", + "about", + "across", + "after", + "almost", + "also", + "am", + "among", + "an", + "and", + "are", + "as", + "at", + "be", + "because", + "been", + "but", + "by", + "can", + "cannot", + "could", + "dear", + "did", + "does", + "either", + "ever", + "every", + "from", + "got", + "had", + "has", + "have", + "he", + "her", + "hers", + "him", + "his", + "how", + "however", + "i", + "if", + "into", + "it", + "its", + "just", + "least", + "like", + "likely", + "may", + "me", + "might", + "most", + "must", + "my", + "neither", + "no", + "nor", + "not", + "of", + "off", + "often", + "on", + "or", + "other", + "our", + "own", + "rather", + "said", + "say", + "says", + "she", + "should", + "since", + "so", + "some", + "than", + "that", + "the", + "their", + "them", + "then", + "there", + "these", + "they", + "this", + "tis", + "to", + "too", + "twas", + "us", + "wants", + "was", + "we", + "were", + "what", + "when", + "who", + "whom", + "why", + "will", + "would", + "yet", + "you", + "your", +]); + +let index = new minisearch({ + fields: ["title", "text"], // fields to index for full-text search + storeFields: ["location", "title", "text", "category", "page"], // fields to return with search results + processTerm: (term) => { + let word = stopWords.has(term) ? null : term; + if (word) { + // custom trimmer that doesn't strip @ and !, which are used in julia macro and function names + word = word + .replace(/^[^a-zA-Z0-9@!]+/, "") + .replace(/[^a-zA-Z0-9@!]+$/, ""); + } + + return word ?? null; + }, + // add . as a separator, because otherwise "title": "Documenter.Anchors.add!", would not find anything if searching for "add!", only for the entire qualification + tokenize: (string) => string.split(/[\s\-\.]+/), + // options which will be applied during the search + searchOptions: { + boost: { title: 100 }, + fuzzy: 2, + processTerm: (term) => { + let word = stopWords.has(term) ? null : term; + if (word) { + word = word + .replace(/^[^a-zA-Z0-9@!]+/, "") + .replace(/[^a-zA-Z0-9@!]+$/, ""); + } + + return word ?? null; + }, + tokenize: (string) => string.split(/[\s\-\.]+/), + }, +}); + +index.addAll(data); + +let filters = [...new Set(data.map((x) => x.category))]; +var modal_filters = make_modal_body_filters(filters); +var filter_results = []; + +$(document).on("keyup", ".documenter-search-input", function (event) { + // Adding a debounce to prevent disruptions from super-speed typing! + debounce(() => update_search(filter_results), 300); +}); + +$(document).on("click", ".search-filter", function () { + if ($(this).hasClass("search-filter-selected")) { + $(this).removeClass("search-filter-selected"); + } else { + $(this).addClass("search-filter-selected"); + } + + // Adding a debounce to prevent disruptions from crazy clicking! + debounce(() => get_filters(), 300); +}); + +/** + * A debounce function, takes a function and an optional timeout in milliseconds + * + * @function callback + * @param {number} timeout + */ +function debounce(callback, timeout = 300) { + clearTimeout(timer); + timer = setTimeout(callback, timeout); +} + +/** + * Make/Update the search component + * + * @param {string[]} selected_filters + */ +function update_search(selected_filters = []) { + let initial_search_body = ` +
    Type something to get started!
    + `; + + let querystring = $(".documenter-search-input").val(); + + if (querystring.trim()) { + results = index.search(querystring, { + filter: (result) => { + // Filtering results + if (selected_filters.length === 0) { + return result.score >= 1; + } else { + return ( + result.score >= 1 && selected_filters.includes(result.category) + ); + } + }, + }); + + let search_result_container = ``; + let search_divider = `
    `; + + if (results.length) { + let links = []; + let count = 0; + let search_results = ""; + + results.forEach(function (result) { + if (result.location) { + // Checking for duplication of results for the same page + if (!links.includes(result.location)) { + search_results += make_search_result(result, querystring); + count++; + } + + links.push(result.location); + } + }); + + let result_count = `
    ${count} result(s)
    `; + + search_result_container = ` +
    + ${modal_filters} + ${search_divider} + ${result_count} +
    + ${search_results} +
    +
    + `; + } else { + search_result_container = ` +
    + ${modal_filters} + ${search_divider} +
    0 result(s)
    +
    +
    No result found!
    + `; + } + + if ($(".search-modal-card-body").hasClass("is-justify-content-center")) { + $(".search-modal-card-body").removeClass("is-justify-content-center"); + } + + $(".search-modal-card-body").html(search_result_container); + } else { + filter_results = []; + modal_filters = make_modal_body_filters(filters, filter_results); + + if (!$(".search-modal-card-body").hasClass("is-justify-content-center")) { + $(".search-modal-card-body").addClass("is-justify-content-center"); + } + + $(".search-modal-card-body").html(initial_search_body); + } +} + +/** + * Make the modal filter html + * + * @param {string[]} filters + * @param {string[]} selected_filters + * @returns string + */ +function make_modal_body_filters(filters, selected_filters = []) { + let str = ``; + + filters.forEach((val) => { + if (selected_filters.includes(val)) { + str += `${val}`; + } else { + str += `${val}`; + } + }); + + let filter_html = ` +
    + Filters: + ${str} +
    + `; + + return filter_html; +} + +/** + * Make the result component given a minisearch result data object and the value of the search input as queryString. + * To view the result object structure, refer: https://lucaong.github.io/minisearch/modules/_minisearch_.html#searchresult + * + * @param {object} result + * @param {string} querystring + * @returns string + */ +function make_search_result(result, querystring) { + let search_divider = `
    `; + let display_link = + result.location.slice(Math.max(0), Math.min(50, result.location.length)) + + (result.location.length > 30 ? "..." : ""); // To cut-off the link because it messes with the overflow of the whole div + + if (result.page !== "") { + display_link += ` (${result.page})`; + } + + let textindex = new RegExp(`\\b${querystring}\\b`, "i").exec(result.text); + let text = + textindex !== null + ? result.text.slice( + Math.max(textindex.index - 100, 0), + Math.min( + textindex.index + querystring.length + 100, + result.text.length + ) + ) + : ""; // cut-off text before and after from the match + + let display_result = text.length + ? "..." + + text.replace( + new RegExp(`\\b${querystring}\\b`, "i"), // For first occurrence + '$&' + ) + + "..." + : ""; // highlights the match + + let in_code = false; + if (!["page", "section"].includes(result.category.toLowerCase())) { + in_code = true; + } + + // We encode the full url to escape some special characters which can lead to broken links + let result_div = ` + +
    +
    ${result.title}
    +
    ${result.category}
    +
    +

    + ${display_result} +

    +
    + ${display_link} +
    +
    + ${search_divider} + `; + + return result_div; +} + +/** + * Get selected filters, remake the filter html and lastly update the search modal + */ +function get_filters() { + let ele = $(".search-filters .search-filter-selected").get(); + filter_results = ele.map((x) => $(x).text().toLowerCase()); + modal_filters = make_modal_body_filters(filters, filter_results); + update_search(filter_results); +} }) //////////////////////////////////////////////////////////////////////////////// require(['jquery'], function($) { // Modal settings dialog -$(document).ready(function() { - var settings = $('#documenter-settings'); - $('#documenter-settings-button').click(function(){ - settings.toggleClass('is-active'); +$(document).ready(function () { + var settings = $("#documenter-settings"); + $("#documenter-settings-button").click(function () { + settings.toggleClass("is-active"); }); // Close the dialog if X is clicked - $('#documenter-settings button.delete').click(function(){ - settings.removeClass('is-active'); + $("#documenter-settings button.delete").click(function () { + settings.removeClass("is-active"); }); // Close dialog if ESC is pressed - $(document).keyup(function(e) { - if (e.keyCode == 27) settings.removeClass('is-active'); + $(document).keyup(function (e) { + if (e.keyCode == 27) settings.removeClass("is-active"); }); }); @@ -168,151 +635,242 @@ $(document).ready(function() { //////////////////////////////////////////////////////////////////////////////// require(['jquery'], function($) { +let search_modal_header = ` + +`; + +let initial_search_body = ` +
    Type something to get started!
    +`; + +let search_modal_footer = ` +
    + + Ctrl + + / to search + + esc to close +
    +`; + +$(document.body).append( + ` + + ` +); + +document.querySelector(".docs-search-query").addEventListener("click", () => { + openModal(); +}); + +document.querySelector(".close-search-modal").addEventListener("click", () => { + closeModal(); +}); + +$(document).on("click", ".search-result-link", function () { + closeModal(); +}); + +document.addEventListener("keydown", (event) => { + if ((event.ctrlKey || event.metaKey) && event.key === "/") { + openModal(); + } else if (event.key === "Escape") { + closeModal(); + } + + return false; +}); + +// Functions to open and close a modal +function openModal() { + let searchModal = document.querySelector("#search-modal"); + + searchModal.classList.add("is-active"); + document.querySelector(".documenter-search-input").focus(); +} + +function closeModal() { + let searchModal = document.querySelector("#search-modal"); + let initial_search_body = ` +
    Type something to get started!
    + `; + + searchModal.classList.remove("is-active"); + document.querySelector(".documenter-search-input").blur(); + + if (!$(".search-modal-card-body").hasClass("is-justify-content-center")) { + $(".search-modal-card-body").addClass("is-justify-content-center"); + } + + $(".documenter-search-input").val(""); + $(".search-modal-card-body").html(initial_search_body); +} + +document + .querySelector("#search-modal .modal-background") + .addEventListener("click", () => { + closeModal(); + }); + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + // Manages the showing and hiding of the sidebar. -$(document).ready(function() { +$(document).ready(function () { var sidebar = $("#documenter > .docs-sidebar"); - var sidebar_button = $("#documenter-sidebar-button") - sidebar_button.click(function(ev) { + var sidebar_button = $("#documenter-sidebar-button"); + sidebar_button.click(function (ev) { ev.preventDefault(); - sidebar.toggleClass('visible'); - if (sidebar.hasClass('visible')) { + sidebar.toggleClass("visible"); + if (sidebar.hasClass("visible")) { // Makes sure that the current menu item is visible in the sidebar. $("#documenter .docs-menu a.is-active").focus(); } }); - $("#documenter > .docs-main").bind('click', function(ev) { + $("#documenter > .docs-main").bind("click", function (ev) { if ($(ev.target).is(sidebar_button)) { return; } - if (sidebar.hasClass('visible')) { - sidebar.removeClass('visible'); + if (sidebar.hasClass("visible")) { + sidebar.removeClass("visible"); } }); -}) +}); // Resizes the package name / sitename in the sidebar if it is too wide. // Inspired by: https://github.com/davatron5000/FitText.js -$(document).ready(function() { +$(document).ready(function () { e = $("#documenter .docs-autofit"); function resize() { - var L = parseInt(e.css('max-width'), 10); + var L = parseInt(e.css("max-width"), 10); var L0 = e.width(); - if(L0 > L) { - var h0 = parseInt(e.css('font-size'), 10); - e.css('font-size', L * h0 / L0); + if (L0 > L) { + var h0 = parseInt(e.css("font-size"), 10); + e.css("font-size", (L * h0) / L0); // TODO: make sure it survives resizes? } } // call once and then register events resize(); $(window).resize(resize); - $(window).on('orientationchange', resize); + $(window).on("orientationchange", resize); }); // Scroll the navigation bar to the currently selected menu item -$(document).ready(function() { +$(document).ready(function () { var sidebar = $("#documenter .docs-menu").get(0); var active = $("#documenter .docs-menu .is-active").get(0); - if(typeof active !== 'undefined') { + if (typeof active !== "undefined") { sidebar.scrollTop = active.offsetTop - sidebar.offsetTop - 15; } -}) +}); }) //////////////////////////////////////////////////////////////////////////////// require(['jquery'], function($) { -function set_theme(theme) { - var active = null; - var disabled = []; - for (var i = 0; i < document.styleSheets.length; i++) { - var ss = document.styleSheets[i]; - var themename = ss.ownerNode.getAttribute("data-theme-name"); - if(themename === null) continue; // ignore non-theme stylesheets - // Find the active theme - if(themename === theme) active = ss; - else disabled.push(ss); - } - if(active !== null) { - active.disabled = false; - if(active.ownerNode.getAttribute("data-theme-primary") === null) { - document.getElementsByTagName('html')[0].className = "theme--" + theme; - } else { - document.getElementsByTagName('html')[0].className = ""; - } - disabled.forEach(function(ss){ - ss.disabled = true; - }); - } - - // Store the theme in localStorage - if(typeof(window.localStorage) !== "undefined") { - window.localStorage.setItem("documenter-theme", theme); - } else { - console.error("Browser does not support window.localStorage"); - } -} - // Theme picker setup -$(document).ready(function() { +$(document).ready(function () { // onchange callback - $('#documenter-themepicker').change(function themepick_callback(ev){ - var themename = $('#documenter-themepicker option:selected').attr('value'); - set_theme(themename); + $("#documenter-themepicker").change(function themepick_callback(ev) { + var themename = $("#documenter-themepicker option:selected").attr("value"); + if (themename === "auto") { + // set_theme(window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'); + window.localStorage.removeItem("documenter-theme"); + } else { + // set_theme(themename); + window.localStorage.setItem("documenter-theme", themename); + } + // We re-use the global function from themeswap.js to actually do the swapping. + set_theme_from_local_storage(); }); // Make sure that the themepicker displays the correct theme when the theme is retrieved // from localStorage - if(typeof(window.localStorage) !== "undefined") { - var theme = window.localStorage.getItem("documenter-theme"); - if(theme !== null) { - $('#documenter-themepicker option').each(function(i,e) { - e.selected = (e.value === theme); - }) - } else { - $('#documenter-themepicker option').each(function(i,e) { - e.selected = $("html").hasClass(`theme--${e.value}`); - }) + if (typeof window.localStorage !== "undefined") { + var theme = window.localStorage.getItem("documenter-theme"); + if (theme !== null) { + $("#documenter-themepicker option").each(function (i, e) { + e.selected = e.value === theme; + }); } } -}) +}); }) //////////////////////////////////////////////////////////////////////////////// require(['jquery'], function($) { // update the version selector with info from the siteinfo.js and ../versions.js files -$(document).ready(function() { +$(document).ready(function () { // If the version selector is disabled with DOCUMENTER_VERSION_SELECTOR_DISABLED in the // siteinfo.js file, we just return immediately and not display the version selector. - if (typeof DOCUMENTER_VERSION_SELECTOR_DISABLED === 'boolean' && DOCUMENTER_VERSION_SELECTOR_DISABLED) { + if ( + typeof DOCUMENTER_VERSION_SELECTOR_DISABLED === "boolean" && + DOCUMENTER_VERSION_SELECTOR_DISABLED + ) { return; } var version_selector = $("#documenter .docs-version-selector"); var version_selector_select = $("#documenter .docs-version-selector select"); - version_selector_select.change(function(x) { - target_href = version_selector_select.children("option:selected").get(0).value; + version_selector_select.change(function (x) { + target_href = version_selector_select + .children("option:selected") + .get(0).value; window.location.href = target_href; }); // add the current version to the selector based on siteinfo.js, but only if the selector is empty - if (typeof DOCUMENTER_CURRENT_VERSION !== 'undefined' && $('#version-selector > option').length == 0) { - var option = $(""); + if ( + typeof DOCUMENTER_CURRENT_VERSION !== "undefined" && + $("#version-selector > option").length == 0 + ) { + var option = $( + "" + ); version_selector_select.append(option); } - if (typeof DOC_VERSIONS !== 'undefined') { + if (typeof DOC_VERSIONS !== "undefined") { var existing_versions = version_selector_select.children("option"); - var existing_versions_texts = existing_versions.map(function(i,x){return x.text}); - DOC_VERSIONS.forEach(function(each) { - var version_url = documenterBaseURL + "/../" + each; + var existing_versions_texts = existing_versions.map(function (i, x) { + return x.text; + }); + DOC_VERSIONS.forEach(function (each) { + var version_url = documenterBaseURL + "/../" + each + "/"; var existing_id = $.inArray(each, existing_versions_texts); // if not already in the version selector, add it as a new option, // otherwise update the old option with the URL and enable it if (existing_id == -1) { - var option = $(""); + var option = $( + "" + ); version_selector_select.append(option); } else { var option = existing_versions[existing_id]; @@ -326,6 +884,6 @@ $(document).ready(function() { if (version_selector_select.children("option").length > 0) { version_selector.toggleClass("visible"); } -}) +}); }) diff --git a/dev/assets/search.js b/dev/assets/search.js deleted file mode 100644 index c133f741..00000000 --- a/dev/assets/search.js +++ /dev/null @@ -1,267 +0,0 @@ -// Generated by Documenter.jl -requirejs.config({ - paths: { - 'lunr': 'https://cdnjs.cloudflare.com/ajax/libs/lunr.js/2.3.9/lunr.min', - 'lodash': 'https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min', - 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', - } -}); -//////////////////////////////////////////////////////////////////////////////// -require(['jquery', 'lunr', 'lodash'], function($, lunr, _) { - -$(document).ready(function() { - // parseUri 1.2.2 - // (c) Steven Levithan - // MIT License - function parseUri (str) { - var o = parseUri.options, - m = o.parser[o.strictMode ? "strict" : "loose"].exec(str), - uri = {}, - i = 14; - - while (i--) uri[o.key[i]] = m[i] || ""; - - uri[o.q.name] = {}; - uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) { - if ($1) uri[o.q.name][$1] = $2; - }); - - return uri; - }; - parseUri.options = { - strictMode: false, - key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"], - q: { - name: "queryKey", - parser: /(?:^|&)([^&=]*)=?([^&]*)/g - }, - parser: { - strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/, - loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ - } - }; - - $("#search-form").submit(function(e) { - e.preventDefault() - }) - - // list below is the lunr 2.1.3 list minus the intersect with names(Base) - // (all, any, get, in, is, only, which) and (do, else, for, let, where, while, with) - // ideally we'd just filter the original list but it's not available as a variable - lunr.stopWordFilter = lunr.generateStopWordFilter([ - 'a', - 'able', - 'about', - 'across', - 'after', - 'almost', - 'also', - 'am', - 'among', - 'an', - 'and', - 'are', - 'as', - 'at', - 'be', - 'because', - 'been', - 'but', - 'by', - 'can', - 'cannot', - 'could', - 'dear', - 'did', - 'does', - 'either', - 'ever', - 'every', - 'from', - 'got', - 'had', - 'has', - 'have', - 'he', - 'her', - 'hers', - 'him', - 'his', - 'how', - 'however', - 'i', - 'if', - 'into', - 'it', - 'its', - 'just', - 'least', - 'like', - 'likely', - 'may', - 'me', - 'might', - 'most', - 'must', - 'my', - 'neither', - 'no', - 'nor', - 'not', - 'of', - 'off', - 'often', - 'on', - 'or', - 'other', - 'our', - 'own', - 'rather', - 'said', - 'say', - 'says', - 'she', - 'should', - 'since', - 'so', - 'some', - 'than', - 'that', - 'the', - 'their', - 'them', - 'then', - 'there', - 'these', - 'they', - 'this', - 'tis', - 'to', - 'too', - 'twas', - 'us', - 'wants', - 'was', - 'we', - 'were', - 'what', - 'when', - 'who', - 'whom', - 'why', - 'will', - 'would', - 'yet', - 'you', - 'your' - ]) - - // add . as a separator, because otherwise "title": "Documenter.Anchors.add!" - // would not find anything if searching for "add!", only for the entire qualification - lunr.tokenizer.separator = /[\s\-\.]+/ - - // custom trimmer that doesn't strip @ and !, which are used in julia macro and function names - lunr.trimmer = function (token) { - return token.update(function (s) { - return s.replace(/^[^a-zA-Z0-9@!]+/, '').replace(/[^a-zA-Z0-9@!]+$/, '') - }) - } - - lunr.Pipeline.registerFunction(lunr.stopWordFilter, 'juliaStopWordFilter') - lunr.Pipeline.registerFunction(lunr.trimmer, 'juliaTrimmer') - - var index = lunr(function () { - this.ref('location') - this.field('title',{boost: 100}) - this.field('text') - documenterSearchIndex['docs'].forEach(function(e) { - this.add(e) - }, this) - }) - var store = {} - - documenterSearchIndex['docs'].forEach(function(e) { - store[e.location] = {title: e.title, category: e.category, page: e.page} - }) - - $(function(){ - searchresults = $('#documenter-search-results'); - searchinfo = $('#documenter-search-info'); - searchbox = $('#documenter-search-query'); - searchform = $('.docs-search'); - sidebar = $('.docs-sidebar'); - function update_search(querystring) { - tokens = lunr.tokenizer(querystring) - results = index.query(function (q) { - tokens.forEach(function (t) { - q.term(t.toString(), { - fields: ["title"], - boost: 100, - usePipeline: true, - editDistance: 0, - wildcard: lunr.Query.wildcard.NONE - }) - q.term(t.toString(), { - fields: ["title"], - boost: 10, - usePipeline: true, - editDistance: 2, - wildcard: lunr.Query.wildcard.NONE - }) - q.term(t.toString(), { - fields: ["text"], - boost: 1, - usePipeline: true, - editDistance: 0, - wildcard: lunr.Query.wildcard.NONE - }) - }) - }) - searchinfo.text("Number of results: " + results.length) - searchresults.empty() - results.forEach(function(result) { - data = store[result.ref] - link = $(''+data.title+'') - link.attr('href', documenterBaseURL+'/'+result.ref) - if (data.category != "page"){ - cat = $('('+data.category+', '+data.page+')') - } else { - cat = $('('+data.category+')') - } - li = $('
  • ').append(link).append(" ").append(cat) - searchresults.append(li) - }) - } - - function update_search_box() { - querystring = searchbox.val() - update_search(querystring) - } - - searchbox.keyup(_.debounce(update_search_box, 250)) - searchbox.change(update_search_box) - - // Disable enter-key form submission for the searchbox on the search page - // and just re-run search rather than refresh the whole page. - searchform.keypress( - function(event){ - if (event.which == '13') { - if (sidebar.hasClass('visible')) { - sidebar.removeClass('visible'); - } - update_search_box(); - event.preventDefault(); - } - } - ); - - search_query_uri = parseUri(window.location).queryKey["q"] - if(search_query_uri !== undefined) { - search_query = decodeURIComponent(search_query_uri.replace(/\+/g, '%20')) - searchbox.val(search_query) - } - update_search_box(); - }) -}) - -}) diff --git a/dev/assets/themes/documenter-dark.css b/dev/assets/themes/documenter-dark.css index 0bf1af7d..9f5449f4 100644 --- a/dev/assets/themes/documenter-dark.css +++ b/dev/assets/themes/documenter-dark.css @@ -1,7702 +1,7 @@ -@charset "UTF-8"; -/* Font Awesome 5 mixin. Can be included in any rule that should render Font Awesome icons. */ -@keyframes spinAround { - from { - transform: rotate(0deg); } - to { - transform: rotate(359deg); } } - -html.theme--documenter-dark .tabs, html.theme--documenter-dark .pagination-previous, -html.theme--documenter-dark .pagination-next, -html.theme--documenter-dark .pagination-link, -html.theme--documenter-dark .pagination-ellipsis, html.theme--documenter-dark .breadcrumb, html.theme--documenter-dark .file, html.theme--documenter-dark .button, .is-unselectable, html.theme--documenter-dark .modal-close, html.theme--documenter-dark .delete { - -webkit-touch-callout: none; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; } - -html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after, html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after { - border: 3px solid transparent; - border-radius: 2px; - border-right: 0; - border-top: 0; - content: " "; - display: block; - height: 0.625em; - margin-top: -0.4375em; - pointer-events: none; - position: absolute; - top: 50%; - transform: rotate(-45deg); - transform-origin: center; - width: 0.625em; } - -html.theme--documenter-dark .admonition:not(:last-child), html.theme--documenter-dark .tabs:not(:last-child), html.theme--documenter-dark .message:not(:last-child), html.theme--documenter-dark .list:not(:last-child), html.theme--documenter-dark .level:not(:last-child), html.theme--documenter-dark .breadcrumb:not(:last-child), html.theme--documenter-dark .highlight:not(:last-child), html.theme--documenter-dark .block:not(:last-child), html.theme--documenter-dark .title:not(:last-child), -html.theme--documenter-dark .subtitle:not(:last-child), html.theme--documenter-dark .table-container:not(:last-child), html.theme--documenter-dark .table:not(:last-child), html.theme--documenter-dark .progress:not(:last-child), html.theme--documenter-dark .notification:not(:last-child), html.theme--documenter-dark .content:not(:last-child), html.theme--documenter-dark .box:not(:last-child) { - margin-bottom: 1.5rem; } - -html.theme--documenter-dark .modal-close, html.theme--documenter-dark .delete { - -moz-appearance: none; - -webkit-appearance: none; - background-color: rgba(10, 10, 10, 0.2); - border: none; - border-radius: 290486px; - cursor: pointer; - pointer-events: auto; - display: inline-block; - flex-grow: 0; - flex-shrink: 0; - font-size: 0; - height: 20px; - max-height: 20px; - max-width: 20px; - min-height: 20px; - min-width: 20px; - outline: none; - position: relative; - vertical-align: top; - width: 20px; } - html.theme--documenter-dark .modal-close::before, html.theme--documenter-dark .delete::before, html.theme--documenter-dark .modal-close::after, html.theme--documenter-dark .delete::after { - background-color: white; - content: ""; - display: block; - left: 50%; - position: absolute; - top: 50%; - transform: translateX(-50%) translateY(-50%) rotate(45deg); - transform-origin: center center; } - html.theme--documenter-dark .modal-close::before, html.theme--documenter-dark .delete::before { - height: 2px; - width: 50%; } - html.theme--documenter-dark .modal-close::after, html.theme--documenter-dark .delete::after { - height: 50%; - width: 2px; } - html.theme--documenter-dark .modal-close:hover, html.theme--documenter-dark .delete:hover, html.theme--documenter-dark .modal-close:focus, html.theme--documenter-dark .delete:focus { - background-color: rgba(10, 10, 10, 0.3); } - html.theme--documenter-dark .modal-close:active, html.theme--documenter-dark .delete:active { - background-color: rgba(10, 10, 10, 0.4); } - html.theme--documenter-dark .is-small.modal-close, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.modal-close, html.theme--documenter-dark .is-small.delete, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.delete { - height: 16px; - max-height: 16px; - max-width: 16px; - min-height: 16px; - min-width: 16px; - width: 16px; } - html.theme--documenter-dark .is-medium.modal-close, html.theme--documenter-dark .is-medium.delete { - height: 24px; - max-height: 24px; - max-width: 24px; - min-height: 24px; - min-width: 24px; - width: 24px; } - html.theme--documenter-dark .is-large.modal-close, html.theme--documenter-dark .is-large.delete { - height: 32px; - max-height: 32px; - max-width: 32px; - min-height: 32px; - min-width: 32px; - width: 32px; } - -html.theme--documenter-dark .control.is-loading::after, html.theme--documenter-dark .select.is-loading::after, html.theme--documenter-dark .loader, html.theme--documenter-dark .button.is-loading::after { - animation: spinAround 500ms infinite linear; - border: 2px solid #dbdee0; - border-radius: 290486px; - border-right-color: transparent; - border-top-color: transparent; - content: ""; - display: block; - height: 1em; - position: relative; - width: 1em; } - -html.theme--documenter-dark .hero-video, html.theme--documenter-dark .modal-background, html.theme--documenter-dark .modal, html.theme--documenter-dark .image.is-square img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square img, -html.theme--documenter-dark .image.is-square .has-ratio, -html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, html.theme--documenter-dark .image.is-1by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 img, -html.theme--documenter-dark .image.is-1by1 .has-ratio, -html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, html.theme--documenter-dark .image.is-5by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 img, -html.theme--documenter-dark .image.is-5by4 .has-ratio, -html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, html.theme--documenter-dark .image.is-4by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 img, -html.theme--documenter-dark .image.is-4by3 .has-ratio, -html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, html.theme--documenter-dark .image.is-3by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 img, -html.theme--documenter-dark .image.is-3by2 .has-ratio, -html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, html.theme--documenter-dark .image.is-5by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 img, -html.theme--documenter-dark .image.is-5by3 .has-ratio, -html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, html.theme--documenter-dark .image.is-16by9 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 img, -html.theme--documenter-dark .image.is-16by9 .has-ratio, -html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, html.theme--documenter-dark .image.is-2by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 img, -html.theme--documenter-dark .image.is-2by1 .has-ratio, -html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, html.theme--documenter-dark .image.is-3by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 img, -html.theme--documenter-dark .image.is-3by1 .has-ratio, -html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, html.theme--documenter-dark .image.is-4by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 img, -html.theme--documenter-dark .image.is-4by5 .has-ratio, -html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, html.theme--documenter-dark .image.is-3by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 img, -html.theme--documenter-dark .image.is-3by4 .has-ratio, -html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, html.theme--documenter-dark .image.is-2by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 img, -html.theme--documenter-dark .image.is-2by3 .has-ratio, -html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, html.theme--documenter-dark .image.is-3by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 img, -html.theme--documenter-dark .image.is-3by5 .has-ratio, -html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, html.theme--documenter-dark .image.is-9by16 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 img, -html.theme--documenter-dark .image.is-9by16 .has-ratio, -html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, html.theme--documenter-dark .image.is-1by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 img, -html.theme--documenter-dark .image.is-1by2 .has-ratio, -html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, html.theme--documenter-dark .image.is-1by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 img, -html.theme--documenter-dark .image.is-1by3 .has-ratio, -html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio, .is-overlay { - bottom: 0; - left: 0; - position: absolute; - right: 0; - top: 0; } - -html.theme--documenter-dark .pagination-previous, -html.theme--documenter-dark .pagination-next, -html.theme--documenter-dark .pagination-link, -html.theme--documenter-dark .pagination-ellipsis, html.theme--documenter-dark .file-cta, -html.theme--documenter-dark .file-name, html.theme--documenter-dark .select select, html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark .button { - -moz-appearance: none; - -webkit-appearance: none; - align-items: center; - border: 1px solid transparent; - border-radius: 0.4em; - box-shadow: none; - display: inline-flex; - font-size: 15px; - height: 2.25em; - justify-content: flex-start; - line-height: 1.5; - padding-bottom: calc(0.375em - 1px); - padding-left: calc(0.625em - 1px); - padding-right: calc(0.625em - 1px); - padding-top: calc(0.375em - 1px); - position: relative; - vertical-align: top; } - html.theme--documenter-dark .pagination-previous:focus, - html.theme--documenter-dark .pagination-next:focus, - html.theme--documenter-dark .pagination-link:focus, - html.theme--documenter-dark .pagination-ellipsis:focus, html.theme--documenter-dark .file-cta:focus, - html.theme--documenter-dark .file-name:focus, html.theme--documenter-dark .select select:focus, html.theme--documenter-dark .textarea:focus, html.theme--documenter-dark .input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:focus, html.theme--documenter-dark .button:focus, html.theme--documenter-dark .is-focused.pagination-previous, - html.theme--documenter-dark .is-focused.pagination-next, - html.theme--documenter-dark .is-focused.pagination-link, - html.theme--documenter-dark .is-focused.pagination-ellipsis, html.theme--documenter-dark .is-focused.file-cta, - html.theme--documenter-dark .is-focused.file-name, html.theme--documenter-dark .select select.is-focused, html.theme--documenter-dark .is-focused.textarea, html.theme--documenter-dark .is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-focused.button, html.theme--documenter-dark .pagination-previous:active, - html.theme--documenter-dark .pagination-next:active, - html.theme--documenter-dark .pagination-link:active, - html.theme--documenter-dark .pagination-ellipsis:active, html.theme--documenter-dark .file-cta:active, - html.theme--documenter-dark .file-name:active, html.theme--documenter-dark .select select:active, html.theme--documenter-dark .textarea:active, html.theme--documenter-dark .input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:active, html.theme--documenter-dark .button:active, html.theme--documenter-dark .is-active.pagination-previous, - html.theme--documenter-dark .is-active.pagination-next, - html.theme--documenter-dark .is-active.pagination-link, - html.theme--documenter-dark .is-active.pagination-ellipsis, html.theme--documenter-dark .is-active.file-cta, - html.theme--documenter-dark .is-active.file-name, html.theme--documenter-dark .select select.is-active, html.theme--documenter-dark .is-active.textarea, html.theme--documenter-dark .is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .is-active.button { - outline: none; } - html.theme--documenter-dark .pagination-previous[disabled], - html.theme--documenter-dark .pagination-next[disabled], - html.theme--documenter-dark .pagination-link[disabled], - html.theme--documenter-dark .pagination-ellipsis[disabled], html.theme--documenter-dark .file-cta[disabled], - html.theme--documenter-dark .file-name[disabled], html.theme--documenter-dark .select select[disabled], html.theme--documenter-dark .textarea[disabled], html.theme--documenter-dark .input[disabled], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled], html.theme--documenter-dark .button[disabled], fieldset[disabled] html.theme--documenter-dark .pagination-previous, html.theme--documenter-dark fieldset[disabled] .pagination-previous, - fieldset[disabled] html.theme--documenter-dark .pagination-next, - html.theme--documenter-dark fieldset[disabled] .pagination-next, - fieldset[disabled] html.theme--documenter-dark .pagination-link, - html.theme--documenter-dark fieldset[disabled] .pagination-link, - fieldset[disabled] html.theme--documenter-dark .pagination-ellipsis, - html.theme--documenter-dark fieldset[disabled] .pagination-ellipsis, fieldset[disabled] html.theme--documenter-dark .file-cta, html.theme--documenter-dark fieldset[disabled] .file-cta, - fieldset[disabled] html.theme--documenter-dark .file-name, - html.theme--documenter-dark fieldset[disabled] .file-name, fieldset[disabled] html.theme--documenter-dark .select select, fieldset[disabled] html.theme--documenter-dark .textarea, fieldset[disabled] html.theme--documenter-dark .input, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark fieldset[disabled] .select select, html.theme--documenter-dark .select fieldset[disabled] select, html.theme--documenter-dark fieldset[disabled] .textarea, html.theme--documenter-dark fieldset[disabled] .input, html.theme--documenter-dark fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, fieldset[disabled] html.theme--documenter-dark .button, html.theme--documenter-dark fieldset[disabled] .button { - cursor: not-allowed; } - -/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */ -html, -body, -p, -ol, -ul, -li, -dl, -dt, -dd, -blockquote, -figure, -fieldset, -legend, -textarea, -pre, -iframe, -hr, -h1, -h2, -h3, -h4, -h5, -h6 { - margin: 0; - padding: 0; } - -h1, -h2, -h3, -h4, -h5, -h6 { - font-size: 100%; - font-weight: normal; } - -ul { - list-style: none; } - -button, -input, -select, -textarea { - margin: 0; } - -html { - box-sizing: border-box; } - -*, *::before, *::after { - box-sizing: inherit; } - -img, -embed, -iframe, -object, -video { - height: auto; - max-width: 100%; } - -audio { - max-width: 100%; } - -iframe { - border: 0; } - -table { - border-collapse: collapse; - border-spacing: 0; } - -td, -th { - padding: 0; } - td:not([align]), - th:not([align]) { - text-align: left; } - -.is-clearfix::after { - clear: both; - content: " "; - display: table; } - -.is-pulled-left { - float: left !important; } - -.is-pulled-right { - float: right !important; } - -.is-clipped { - overflow: hidden !important; } - -.is-size-1 { - font-size: 3rem !important; } - -.is-size-2 { - font-size: 2.5rem !important; } - -.is-size-3 { - font-size: 2rem !important; } - -.is-size-4 { - font-size: 1.5rem !important; } - -.is-size-5 { - font-size: 1.25rem !important; } - -.is-size-6 { - font-size: 15px !important; } - -.is-size-7, html.theme--documenter-dark .docstring > section > a.docs-sourcelink { - font-size: 0.85em !important; } - -@media screen and (max-width: 768px) { - .is-size-1-mobile { - font-size: 3rem !important; } - .is-size-2-mobile { - font-size: 2.5rem !important; } - .is-size-3-mobile { - font-size: 2rem !important; } - .is-size-4-mobile { - font-size: 1.5rem !important; } - .is-size-5-mobile { - font-size: 1.25rem !important; } - .is-size-6-mobile { - font-size: 15px !important; } - .is-size-7-mobile { - font-size: 0.85em !important; } } - -@media screen and (min-width: 769px), print { - .is-size-1-tablet { - font-size: 3rem !important; } - .is-size-2-tablet { - font-size: 2.5rem !important; } - .is-size-3-tablet { - font-size: 2rem !important; } - .is-size-4-tablet { - font-size: 1.5rem !important; } - .is-size-5-tablet { - font-size: 1.25rem !important; } - .is-size-6-tablet { - font-size: 15px !important; } - .is-size-7-tablet { - font-size: 0.85em !important; } } - -@media screen and (max-width: 1055px) { - .is-size-1-touch { - font-size: 3rem !important; } - .is-size-2-touch { - font-size: 2.5rem !important; } - .is-size-3-touch { - font-size: 2rem !important; } - .is-size-4-touch { - font-size: 1.5rem !important; } - .is-size-5-touch { - font-size: 1.25rem !important; } - .is-size-6-touch { - font-size: 15px !important; } - .is-size-7-touch { - font-size: 0.85em !important; } } - -@media screen and (min-width: 1056px) { - .is-size-1-desktop { - font-size: 3rem !important; } - .is-size-2-desktop { - font-size: 2.5rem !important; } - .is-size-3-desktop { - font-size: 2rem !important; } - .is-size-4-desktop { - font-size: 1.5rem !important; } - .is-size-5-desktop { - font-size: 1.25rem !important; } - .is-size-6-desktop { - font-size: 15px !important; } - .is-size-7-desktop { - font-size: 0.85em !important; } } - -@media screen and (min-width: 1216px) { - .is-size-1-widescreen { - font-size: 3rem !important; } - .is-size-2-widescreen { - font-size: 2.5rem !important; } - .is-size-3-widescreen { - font-size: 2rem !important; } - .is-size-4-widescreen { - font-size: 1.5rem !important; } - .is-size-5-widescreen { - font-size: 1.25rem !important; } - .is-size-6-widescreen { - font-size: 15px !important; } - .is-size-7-widescreen { - font-size: 0.85em !important; } } - -@media screen and (min-width: 1408px) { - .is-size-1-fullhd { - font-size: 3rem !important; } - .is-size-2-fullhd { - font-size: 2.5rem !important; } - .is-size-3-fullhd { - font-size: 2rem !important; } - .is-size-4-fullhd { - font-size: 1.5rem !important; } - .is-size-5-fullhd { - font-size: 1.25rem !important; } - .is-size-6-fullhd { - font-size: 15px !important; } - .is-size-7-fullhd { - font-size: 0.85em !important; } } - -.has-text-centered { - text-align: center !important; } - -.has-text-justified { - text-align: justify !important; } - -.has-text-left { - text-align: left !important; } - -.has-text-right { - text-align: right !important; } - -@media screen and (max-width: 768px) { - .has-text-centered-mobile { - text-align: center !important; } } - -@media screen and (min-width: 769px), print { - .has-text-centered-tablet { - text-align: center !important; } } - -@media screen and (min-width: 769px) and (max-width: 1055px) { - .has-text-centered-tablet-only { - text-align: center !important; } } - -@media screen and (max-width: 1055px) { - .has-text-centered-touch { - text-align: center !important; } } - -@media screen and (min-width: 1056px) { - .has-text-centered-desktop { - text-align: center !important; } } - -@media screen and (min-width: 1056px) and (max-width: 1215px) { - .has-text-centered-desktop-only { - text-align: center !important; } } - -@media screen and (min-width: 1216px) { - .has-text-centered-widescreen { - text-align: center !important; } } - -@media screen and (min-width: 1216px) and (max-width: 1407px) { - .has-text-centered-widescreen-only { - text-align: center !important; } } - -@media screen and (min-width: 1408px) { - .has-text-centered-fullhd { - text-align: center !important; } } - -@media screen and (max-width: 768px) { - .has-text-justified-mobile { - text-align: justify !important; } } - -@media screen and (min-width: 769px), print { - .has-text-justified-tablet { - text-align: justify !important; } } - -@media screen and (min-width: 769px) and (max-width: 1055px) { - .has-text-justified-tablet-only { - text-align: justify !important; } } - -@media screen and (max-width: 1055px) { - .has-text-justified-touch { - text-align: justify !important; } } - -@media screen and (min-width: 1056px) { - .has-text-justified-desktop { - text-align: justify !important; } } - -@media screen and (min-width: 1056px) and (max-width: 1215px) { - .has-text-justified-desktop-only { - text-align: justify !important; } } - -@media screen and (min-width: 1216px) { - .has-text-justified-widescreen { - text-align: justify !important; } } - -@media screen and (min-width: 1216px) and (max-width: 1407px) { - .has-text-justified-widescreen-only { - text-align: justify !important; } } - -@media screen and (min-width: 1408px) { - .has-text-justified-fullhd { - text-align: justify !important; } } - -@media screen and (max-width: 768px) { - .has-text-left-mobile { - text-align: left !important; } } - -@media screen and (min-width: 769px), print { - .has-text-left-tablet { - text-align: left !important; } } - -@media screen and (min-width: 769px) and (max-width: 1055px) { - .has-text-left-tablet-only { - text-align: left !important; } } - -@media screen and (max-width: 1055px) { - .has-text-left-touch { - text-align: left !important; } } - -@media screen and (min-width: 1056px) { - .has-text-left-desktop { - text-align: left !important; } } - -@media screen and (min-width: 1056px) and (max-width: 1215px) { - .has-text-left-desktop-only { - text-align: left !important; } } - -@media screen and (min-width: 1216px) { - .has-text-left-widescreen { - text-align: left !important; } } - -@media screen and (min-width: 1216px) and (max-width: 1407px) { - .has-text-left-widescreen-only { - text-align: left !important; } } - -@media screen and (min-width: 1408px) { - .has-text-left-fullhd { - text-align: left !important; } } - -@media screen and (max-width: 768px) { - .has-text-right-mobile { - text-align: right !important; } } - -@media screen and (min-width: 769px), print { - .has-text-right-tablet { - text-align: right !important; } } - -@media screen and (min-width: 769px) and (max-width: 1055px) { - .has-text-right-tablet-only { - text-align: right !important; } } - -@media screen and (max-width: 1055px) { - .has-text-right-touch { - text-align: right !important; } } - -@media screen and (min-width: 1056px) { - .has-text-right-desktop { - text-align: right !important; } } - -@media screen and (min-width: 1056px) and (max-width: 1215px) { - .has-text-right-desktop-only { - text-align: right !important; } } - -@media screen and (min-width: 1216px) { - .has-text-right-widescreen { - text-align: right !important; } } - -@media screen and (min-width: 1216px) and (max-width: 1407px) { - .has-text-right-widescreen-only { - text-align: right !important; } } - -@media screen and (min-width: 1408px) { - .has-text-right-fullhd { - text-align: right !important; } } - -.is-capitalized { - text-transform: capitalize !important; } - -.is-lowercase { - text-transform: lowercase !important; } - -.is-uppercase { - text-transform: uppercase !important; } - -.is-italic { - font-style: italic !important; } - -.has-text-white { - color: white !important; } - -a.has-text-white:hover, a.has-text-white:focus { - color: #e6e6e6 !important; } - -.has-background-white { - background-color: white !important; } - -.has-text-black { - color: #0a0a0a !important; } - -a.has-text-black:hover, a.has-text-black:focus { - color: black !important; } - -.has-background-black { - background-color: #0a0a0a !important; } - -.has-text-light { - color: #ecf0f1 !important; } - -a.has-text-light:hover, a.has-text-light:focus { - color: #cfd9db !important; } - -.has-background-light { - background-color: #ecf0f1 !important; } - -.has-text-dark { - color: #282f2f !important; } - -a.has-text-dark:hover, a.has-text-dark:focus { - color: #111414 !important; } - -.has-background-dark { - background-color: #282f2f !important; } - -.has-text-primary { - color: #375a7f !important; } - -a.has-text-primary:hover, a.has-text-primary:focus { - color: #28415b !important; } - -.has-background-primary { - background-color: #375a7f !important; } - -.has-text-link { - color: #1abc9c !important; } - -a.has-text-link:hover, a.has-text-link:focus { - color: #148f77 !important; } - -.has-background-link { - background-color: #1abc9c !important; } - -.has-text-info { - color: #024c7d !important; } - -a.has-text-info:hover, a.has-text-info:focus { - color: #012d4b !important; } - -.has-background-info { - background-color: #024c7d !important; } - -.has-text-success { - color: #008438 !important; } - -a.has-text-success:hover, a.has-text-success:focus { - color: #005122 !important; } - -.has-background-success { - background-color: #008438 !important; } - -.has-text-warning { - color: #ad8100 !important; } - -a.has-text-warning:hover, a.has-text-warning:focus { - color: #7a5b00 !important; } - -.has-background-warning { - background-color: #ad8100 !important; } - -.has-text-danger { - color: #9e1b0d !important; } - -a.has-text-danger:hover, a.has-text-danger:focus { - color: #6f1309 !important; } - -.has-background-danger { - background-color: #9e1b0d !important; } - -.has-text-black-bis { - color: #121212 !important; } - -.has-background-black-bis { - background-color: #121212 !important; } - -.has-text-black-ter { - color: #242424 !important; } - -.has-background-black-ter { - background-color: #242424 !important; } - -.has-text-grey-darker { - color: #282f2f !important; } - -.has-background-grey-darker { - background-color: #282f2f !important; } - -.has-text-grey-dark { - color: #343c3d !important; } - -.has-background-grey-dark { - background-color: #343c3d !important; } - -.has-text-grey { - color: #5e6d6f !important; } - -.has-background-grey { - background-color: #5e6d6f !important; } - -.has-text-grey-light { - color: #8c9b9d !important; } - -.has-background-grey-light { - background-color: #8c9b9d !important; } - -.has-text-grey-lighter { - color: #dbdee0 !important; } - -.has-background-grey-lighter { - background-color: #dbdee0 !important; } - -.has-text-white-ter { - color: #ecf0f1 !important; } - -.has-background-white-ter { - background-color: #ecf0f1 !important; } - -.has-text-white-bis { - color: #fafafa !important; } - -.has-background-white-bis { - background-color: #fafafa !important; } - -.has-text-weight-light { - font-weight: 300 !important; } - -.has-text-weight-normal { - font-weight: 400 !important; } - -.has-text-weight-medium { - font-weight: 500 !important; } - -.has-text-weight-semibold { - font-weight: 600 !important; } - -.has-text-weight-bold { - font-weight: 700 !important; } - -.is-family-primary { - font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } - -.is-family-secondary { - font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } - -.is-family-sans-serif { - font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } - -.is-family-monospace { - font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } - -.is-family-code { - font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } - -.is-block { - display: block !important; } - -@media screen and (max-width: 768px) { - .is-block-mobile { - display: block !important; } } - -@media screen and (min-width: 769px), print { - .is-block-tablet { - display: block !important; } } - -@media screen and (min-width: 769px) and (max-width: 1055px) { - .is-block-tablet-only { - display: block !important; } } - -@media screen and (max-width: 1055px) { - .is-block-touch { - display: block !important; } } - -@media screen and (min-width: 1056px) { - .is-block-desktop { - display: block !important; } } - -@media screen and (min-width: 1056px) and (max-width: 1215px) { - .is-block-desktop-only { - display: block !important; } } - -@media screen and (min-width: 1216px) { - .is-block-widescreen { - display: block !important; } } - -@media screen and (min-width: 1216px) and (max-width: 1407px) { - .is-block-widescreen-only { - display: block !important; } } - -@media screen and (min-width: 1408px) { - .is-block-fullhd { - display: block !important; } } - -.is-flex { - display: flex !important; } - -@media screen and (max-width: 768px) { - .is-flex-mobile { - display: flex !important; } } - -@media screen and (min-width: 769px), print { - .is-flex-tablet { - display: flex !important; } } - -@media screen and (min-width: 769px) and (max-width: 1055px) { - .is-flex-tablet-only { - display: flex !important; } } - -@media screen and (max-width: 1055px) { - .is-flex-touch { - display: flex !important; } } - -@media screen and (min-width: 1056px) { - .is-flex-desktop { - display: flex !important; } } - -@media screen and (min-width: 1056px) and (max-width: 1215px) { - .is-flex-desktop-only { - display: flex !important; } } - -@media screen and (min-width: 1216px) { - .is-flex-widescreen { - display: flex !important; } } - -@media screen and (min-width: 1216px) and (max-width: 1407px) { - .is-flex-widescreen-only { - display: flex !important; } } - -@media screen and (min-width: 1408px) { - .is-flex-fullhd { - display: flex !important; } } - -.is-inline { - display: inline !important; } - -@media screen and (max-width: 768px) { - .is-inline-mobile { - display: inline !important; } } - -@media screen and (min-width: 769px), print { - .is-inline-tablet { - display: inline !important; } } - -@media screen and (min-width: 769px) and (max-width: 1055px) { - .is-inline-tablet-only { - display: inline !important; } } - -@media screen and (max-width: 1055px) { - .is-inline-touch { - display: inline !important; } } - -@media screen and (min-width: 1056px) { - .is-inline-desktop { - display: inline !important; } } - -@media screen and (min-width: 1056px) and (max-width: 1215px) { - .is-inline-desktop-only { - display: inline !important; } } - -@media screen and (min-width: 1216px) { - .is-inline-widescreen { - display: inline !important; } } - -@media screen and (min-width: 1216px) and (max-width: 1407px) { - .is-inline-widescreen-only { - display: inline !important; } } - -@media screen and (min-width: 1408px) { - .is-inline-fullhd { - display: inline !important; } } - -.is-inline-block { - display: inline-block !important; } - -@media screen and (max-width: 768px) { - .is-inline-block-mobile { - display: inline-block !important; } } - -@media screen and (min-width: 769px), print { - .is-inline-block-tablet { - display: inline-block !important; } } - -@media screen and (min-width: 769px) and (max-width: 1055px) { - .is-inline-block-tablet-only { - display: inline-block !important; } } - -@media screen and (max-width: 1055px) { - .is-inline-block-touch { - display: inline-block !important; } } - -@media screen and (min-width: 1056px) { - .is-inline-block-desktop { - display: inline-block !important; } } - -@media screen and (min-width: 1056px) and (max-width: 1215px) { - .is-inline-block-desktop-only { - display: inline-block !important; } } - -@media screen and (min-width: 1216px) { - .is-inline-block-widescreen { - display: inline-block !important; } } - -@media screen and (min-width: 1216px) and (max-width: 1407px) { - .is-inline-block-widescreen-only { - display: inline-block !important; } } - -@media screen and (min-width: 1408px) { - .is-inline-block-fullhd { - display: inline-block !important; } } - -.is-inline-flex { - display: inline-flex !important; } - -@media screen and (max-width: 768px) { - .is-inline-flex-mobile { - display: inline-flex !important; } } - -@media screen and (min-width: 769px), print { - .is-inline-flex-tablet { - display: inline-flex !important; } } - -@media screen and (min-width: 769px) and (max-width: 1055px) { - .is-inline-flex-tablet-only { - display: inline-flex !important; } } - -@media screen and (max-width: 1055px) { - .is-inline-flex-touch { - display: inline-flex !important; } } - -@media screen and (min-width: 1056px) { - .is-inline-flex-desktop { - display: inline-flex !important; } } - -@media screen and (min-width: 1056px) and (max-width: 1215px) { - .is-inline-flex-desktop-only { - display: inline-flex !important; } } - -@media screen and (min-width: 1216px) { - .is-inline-flex-widescreen { - display: inline-flex !important; } } - -@media screen and (min-width: 1216px) and (max-width: 1407px) { - .is-inline-flex-widescreen-only { - display: inline-flex !important; } } - -@media screen and (min-width: 1408px) { - .is-inline-flex-fullhd { - display: inline-flex !important; } } - -.is-hidden { - display: none !important; } - -.is-sr-only { - border: none !important; - clip: rect(0, 0, 0, 0) !important; - height: 0.01em !important; - overflow: hidden !important; - padding: 0 !important; - position: absolute !important; - white-space: nowrap !important; - width: 0.01em !important; } - -@media screen and (max-width: 768px) { - .is-hidden-mobile { - display: none !important; } } - -@media screen and (min-width: 769px), print { - .is-hidden-tablet { - display: none !important; } } - -@media screen and (min-width: 769px) and (max-width: 1055px) { - .is-hidden-tablet-only { - display: none !important; } } - -@media screen and (max-width: 1055px) { - .is-hidden-touch { - display: none !important; } } - -@media screen and (min-width: 1056px) { - .is-hidden-desktop { - display: none !important; } } - -@media screen and (min-width: 1056px) and (max-width: 1215px) { - .is-hidden-desktop-only { - display: none !important; } } - -@media screen and (min-width: 1216px) { - .is-hidden-widescreen { - display: none !important; } } - -@media screen and (min-width: 1216px) and (max-width: 1407px) { - .is-hidden-widescreen-only { - display: none !important; } } - -@media screen and (min-width: 1408px) { - .is-hidden-fullhd { - display: none !important; } } - -.is-invisible { - visibility: hidden !important; } - -@media screen and (max-width: 768px) { - .is-invisible-mobile { - visibility: hidden !important; } } - -@media screen and (min-width: 769px), print { - .is-invisible-tablet { - visibility: hidden !important; } } - -@media screen and (min-width: 769px) and (max-width: 1055px) { - .is-invisible-tablet-only { - visibility: hidden !important; } } - -@media screen and (max-width: 1055px) { - .is-invisible-touch { - visibility: hidden !important; } } - -@media screen and (min-width: 1056px) { - .is-invisible-desktop { - visibility: hidden !important; } } - -@media screen and (min-width: 1056px) and (max-width: 1215px) { - .is-invisible-desktop-only { - visibility: hidden !important; } } - -@media screen and (min-width: 1216px) { - .is-invisible-widescreen { - visibility: hidden !important; } } - -@media screen and (min-width: 1216px) and (max-width: 1407px) { - .is-invisible-widescreen-only { - visibility: hidden !important; } } - -@media screen and (min-width: 1408px) { - .is-invisible-fullhd { - visibility: hidden !important; } } - -.is-marginless { - margin: 0 !important; } - -.is-paddingless { - padding: 0 !important; } - -.is-radiusless { - border-radius: 0 !important; } - -.is-shadowless { - box-shadow: none !important; } - -.is-relative { - position: relative !important; } - -html.theme--documenter-dark { - /* This file contain the overall layout. - * - * The main container is
    that is identified by id #documenter. - */ - /*! +html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark .file-cta,html.theme--documenter-dark .file-name,html.theme--documenter-dark .select select,html.theme--documenter-dark .textarea,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark .button{-moz-appearance:none;-webkit-appearance:none;align-items:center;border:1px solid transparent;border-radius:.4em;box-shadow:none;display:inline-flex;font-size:1rem;height:2.5em;justify-content:flex-start;line-height:1.5;padding-bottom:calc(0.5em - 1px);padding-left:calc(0.75em - 1px);padding-right:calc(0.75em - 1px);padding-top:calc(0.5em - 1px);position:relative;vertical-align:top}html.theme--documenter-dark .pagination-previous:focus,html.theme--documenter-dark .pagination-next:focus,html.theme--documenter-dark .pagination-link:focus,html.theme--documenter-dark .pagination-ellipsis:focus,html.theme--documenter-dark .file-cta:focus,html.theme--documenter-dark .file-name:focus,html.theme--documenter-dark .select select:focus,html.theme--documenter-dark .textarea:focus,html.theme--documenter-dark .input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:focus,html.theme--documenter-dark .button:focus,html.theme--documenter-dark .is-focused.pagination-previous,html.theme--documenter-dark .is-focused.pagination-next,html.theme--documenter-dark .is-focused.pagination-link,html.theme--documenter-dark .is-focused.pagination-ellipsis,html.theme--documenter-dark .is-focused.file-cta,html.theme--documenter-dark .is-focused.file-name,html.theme--documenter-dark .select select.is-focused,html.theme--documenter-dark .is-focused.textarea,html.theme--documenter-dark .is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-focused.button,html.theme--documenter-dark .pagination-previous:active,html.theme--documenter-dark .pagination-next:active,html.theme--documenter-dark .pagination-link:active,html.theme--documenter-dark .pagination-ellipsis:active,html.theme--documenter-dark .file-cta:active,html.theme--documenter-dark .file-name:active,html.theme--documenter-dark .select select:active,html.theme--documenter-dark .textarea:active,html.theme--documenter-dark .input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:active,html.theme--documenter-dark .button:active,html.theme--documenter-dark .is-active.pagination-previous,html.theme--documenter-dark .is-active.pagination-next,html.theme--documenter-dark .is-active.pagination-link,html.theme--documenter-dark .is-active.pagination-ellipsis,html.theme--documenter-dark .is-active.file-cta,html.theme--documenter-dark .is-active.file-name,html.theme--documenter-dark .select select.is-active,html.theme--documenter-dark .is-active.textarea,html.theme--documenter-dark .is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--documenter-dark .is-active.button{outline:none}html.theme--documenter-dark .pagination-previous[disabled],html.theme--documenter-dark .pagination-next[disabled],html.theme--documenter-dark .pagination-link[disabled],html.theme--documenter-dark .pagination-ellipsis[disabled],html.theme--documenter-dark .file-cta[disabled],html.theme--documenter-dark .file-name[disabled],html.theme--documenter-dark .select select[disabled],html.theme--documenter-dark .textarea[disabled],html.theme--documenter-dark .input[disabled],html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled],html.theme--documenter-dark .button[disabled],fieldset[disabled] html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark fieldset[disabled] .pagination-previous,fieldset[disabled] html.theme--documenter-dark .pagination-next,html.theme--documenter-dark fieldset[disabled] .pagination-next,fieldset[disabled] html.theme--documenter-dark .pagination-link,html.theme--documenter-dark fieldset[disabled] .pagination-link,fieldset[disabled] html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark fieldset[disabled] .pagination-ellipsis,fieldset[disabled] html.theme--documenter-dark .file-cta,html.theme--documenter-dark fieldset[disabled] .file-cta,fieldset[disabled] html.theme--documenter-dark .file-name,html.theme--documenter-dark fieldset[disabled] .file-name,fieldset[disabled] html.theme--documenter-dark .select select,fieldset[disabled] html.theme--documenter-dark .textarea,fieldset[disabled] html.theme--documenter-dark .input,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark fieldset[disabled] .select select,html.theme--documenter-dark .select fieldset[disabled] select,html.theme--documenter-dark fieldset[disabled] .textarea,html.theme--documenter-dark fieldset[disabled] .input,html.theme--documenter-dark fieldset[disabled] #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar fieldset[disabled] form.docs-search>input,fieldset[disabled] html.theme--documenter-dark .button,html.theme--documenter-dark fieldset[disabled] .button{cursor:not-allowed}html.theme--documenter-dark .tabs,html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark .breadcrumb,html.theme--documenter-dark .file,html.theme--documenter-dark .button,.is-unselectable{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after,html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after{border:3px solid rgba(0,0,0,0);border-radius:2px;border-right:0;border-top:0;content:" ";display:block;height:0.625em;margin-top:-0.4375em;pointer-events:none;position:absolute;top:50%;transform:rotate(-45deg);transform-origin:center;width:0.625em}html.theme--documenter-dark .admonition:not(:last-child),html.theme--documenter-dark .tabs:not(:last-child),html.theme--documenter-dark .pagination:not(:last-child),html.theme--documenter-dark .message:not(:last-child),html.theme--documenter-dark .level:not(:last-child),html.theme--documenter-dark .breadcrumb:not(:last-child),html.theme--documenter-dark .block:not(:last-child),html.theme--documenter-dark .title:not(:last-child),html.theme--documenter-dark .subtitle:not(:last-child),html.theme--documenter-dark .table-container:not(:last-child),html.theme--documenter-dark .table:not(:last-child),html.theme--documenter-dark .progress:not(:last-child),html.theme--documenter-dark .notification:not(:last-child),html.theme--documenter-dark .content:not(:last-child),html.theme--documenter-dark .box:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .modal-close,html.theme--documenter-dark .delete{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,0.2);border:none;border-radius:9999px;cursor:pointer;pointer-events:auto;display:inline-block;flex-grow:0;flex-shrink:0;font-size:0;height:20px;max-height:20px;max-width:20px;min-height:20px;min-width:20px;outline:none;position:relative;vertical-align:top;width:20px}html.theme--documenter-dark .modal-close::before,html.theme--documenter-dark .delete::before,html.theme--documenter-dark .modal-close::after,html.theme--documenter-dark .delete::after{background-color:#fff;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}html.theme--documenter-dark .modal-close::before,html.theme--documenter-dark .delete::before{height:2px;width:50%}html.theme--documenter-dark .modal-close::after,html.theme--documenter-dark .delete::after{height:50%;width:2px}html.theme--documenter-dark .modal-close:hover,html.theme--documenter-dark .delete:hover,html.theme--documenter-dark .modal-close:focus,html.theme--documenter-dark .delete:focus{background-color:rgba(10,10,10,0.3)}html.theme--documenter-dark .modal-close:active,html.theme--documenter-dark .delete:active{background-color:rgba(10,10,10,0.4)}html.theme--documenter-dark .is-small.modal-close,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.modal-close,html.theme--documenter-dark .is-small.delete,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.delete{height:16px;max-height:16px;max-width:16px;min-height:16px;min-width:16px;width:16px}html.theme--documenter-dark .is-medium.modal-close,html.theme--documenter-dark .is-medium.delete{height:24px;max-height:24px;max-width:24px;min-height:24px;min-width:24px;width:24px}html.theme--documenter-dark .is-large.modal-close,html.theme--documenter-dark .is-large.delete{height:32px;max-height:32px;max-width:32px;min-height:32px;min-width:32px;width:32px}html.theme--documenter-dark .control.is-loading::after,html.theme--documenter-dark .select.is-loading::after,html.theme--documenter-dark .loader,html.theme--documenter-dark .button.is-loading::after{animation:spinAround 500ms infinite linear;border:2px solid #dbdee0;border-radius:9999px;border-right-color:transparent;border-top-color:transparent;content:"";display:block;height:1em;position:relative;width:1em}html.theme--documenter-dark .hero-video,html.theme--documenter-dark .modal-background,html.theme--documenter-dark .modal,html.theme--documenter-dark .image.is-square img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square img,html.theme--documenter-dark .image.is-square .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,html.theme--documenter-dark .image.is-1by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 img,html.theme--documenter-dark .image.is-1by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,html.theme--documenter-dark .image.is-5by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 img,html.theme--documenter-dark .image.is-5by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,html.theme--documenter-dark .image.is-4by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 img,html.theme--documenter-dark .image.is-4by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,html.theme--documenter-dark .image.is-3by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 img,html.theme--documenter-dark .image.is-3by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,html.theme--documenter-dark .image.is-5by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 img,html.theme--documenter-dark .image.is-5by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,html.theme--documenter-dark .image.is-16by9 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 img,html.theme--documenter-dark .image.is-16by9 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,html.theme--documenter-dark .image.is-2by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 img,html.theme--documenter-dark .image.is-2by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,html.theme--documenter-dark .image.is-3by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 img,html.theme--documenter-dark .image.is-3by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,html.theme--documenter-dark .image.is-4by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 img,html.theme--documenter-dark .image.is-4by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,html.theme--documenter-dark .image.is-3by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 img,html.theme--documenter-dark .image.is-3by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,html.theme--documenter-dark .image.is-2by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 img,html.theme--documenter-dark .image.is-2by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,html.theme--documenter-dark .image.is-3by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 img,html.theme--documenter-dark .image.is-3by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,html.theme--documenter-dark .image.is-9by16 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 img,html.theme--documenter-dark .image.is-9by16 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,html.theme--documenter-dark .image.is-1by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 img,html.theme--documenter-dark .image.is-1by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,html.theme--documenter-dark .image.is-1by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 img,html.theme--documenter-dark .image.is-1by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio,.is-overlay{bottom:0;left:0;position:absolute;right:0;top:0}html.theme--documenter-dark .navbar-burger{-moz-appearance:none;-webkit-appearance:none;appearance:none;background:none;border:none;color:currentColor;font-family:inherit;font-size:1em;margin:0;padding:0}/*! minireset.css v0.0.6 | MIT License | github.com/jgthms/minireset.css */html,body,p,ol,ul,li,dl,dt,dd,blockquote,figure,fieldset,legend,textarea,pre,iframe,hr,h1,h2,h3,h4,h5,h6{margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal}ul{list-style:none}button,input,select,textarea{margin:0}html{box-sizing:border-box}*,*::before,*::after{box-sizing:inherit}img,video{height:auto;max-width:100%}iframe{border:0}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}td:not([align]),th:not([align]){text-align:inherit}.has-text-white{color:#fff !important}a.has-text-white:hover,a.has-text-white:focus{color:#e6e6e6 !important}.has-background-white{background-color:#fff !important}.has-text-black{color:#0a0a0a !important}a.has-text-black:hover,a.has-text-black:focus{color:#000 !important}.has-background-black{background-color:#0a0a0a !important}.has-text-light{color:#ecf0f1 !important}a.has-text-light:hover,a.has-text-light:focus{color:#cfd9db !important}.has-background-light{background-color:#ecf0f1 !important}.has-text-dark{color:#282f2f !important}a.has-text-dark:hover,a.has-text-dark:focus{color:#111414 !important}.has-background-dark{background-color:#282f2f !important}.has-text-primary{color:#375a7f !important}a.has-text-primary:hover,a.has-text-primary:focus{color:#28415b !important}.has-background-primary{background-color:#375a7f !important}.has-text-primary-light{color:#f1f5f9 !important}a.has-text-primary-light:hover,a.has-text-primary-light:focus{color:#cddbe9 !important}.has-background-primary-light{background-color:#f1f5f9 !important}.has-text-primary-dark{color:#4d7eb2 !important}a.has-text-primary-dark:hover,a.has-text-primary-dark:focus{color:#7198c1 !important}.has-background-primary-dark{background-color:#4d7eb2 !important}.has-text-link{color:#1abc9c !important}a.has-text-link:hover,a.has-text-link:focus{color:#148f77 !important}.has-background-link{background-color:#1abc9c !important}.has-text-link-light{color:#edfdf9 !important}a.has-text-link-light:hover,a.has-text-link-light:focus{color:#c0f6ec !important}.has-background-link-light{background-color:#edfdf9 !important}.has-text-link-dark{color:#15987e !important}a.has-text-link-dark:hover,a.has-text-link-dark:focus{color:#1bc5a4 !important}.has-background-link-dark{background-color:#15987e !important}.has-text-info{color:#024c7d !important}a.has-text-info:hover,a.has-text-info:focus{color:#012d4b !important}.has-background-info{background-color:#024c7d !important}.has-text-info-light{color:#ebf7ff !important}a.has-text-info-light:hover,a.has-text-info-light:focus{color:#b9e2fe !important}.has-background-info-light{background-color:#ebf7ff !important}.has-text-info-dark{color:#0e9dfb !important}a.has-text-info-dark:hover,a.has-text-info-dark:focus{color:#40b1fc !important}.has-background-info-dark{background-color:#0e9dfb !important}.has-text-success{color:#008438 !important}a.has-text-success:hover,a.has-text-success:focus{color:#005122 !important}.has-background-success{background-color:#008438 !important}.has-text-success-light{color:#ebfff3 !important}a.has-text-success-light:hover,a.has-text-success-light:focus{color:#b8ffd6 !important}.has-background-success-light{background-color:#ebfff3 !important}.has-text-success-dark{color:#00eb64 !important}a.has-text-success-dark:hover,a.has-text-success-dark:focus{color:#1fff7e !important}.has-background-success-dark{background-color:#00eb64 !important}.has-text-warning{color:#ad8100 !important}a.has-text-warning:hover,a.has-text-warning:focus{color:#7a5b00 !important}.has-background-warning{background-color:#ad8100 !important}.has-text-warning-light{color:#fffaeb !important}a.has-text-warning-light:hover,a.has-text-warning-light:focus{color:#ffedb8 !important}.has-background-warning-light{background-color:#fffaeb !important}.has-text-warning-dark{color:#d19c00 !important}a.has-text-warning-dark:hover,a.has-text-warning-dark:focus{color:#ffbf05 !important}.has-background-warning-dark{background-color:#d19c00 !important}.has-text-danger{color:#9e1b0d !important}a.has-text-danger:hover,a.has-text-danger:focus{color:#6f1309 !important}.has-background-danger{background-color:#9e1b0d !important}.has-text-danger-light{color:#fdeeec !important}a.has-text-danger-light:hover,a.has-text-danger-light:focus{color:#fac3bd !important}.has-background-danger-light{background-color:#fdeeec !important}.has-text-danger-dark{color:#ec311d !important}a.has-text-danger-dark:hover,a.has-text-danger-dark:focus{color:#f05c4c !important}.has-background-danger-dark{background-color:#ec311d !important}.has-text-black-bis{color:#121212 !important}.has-background-black-bis{background-color:#121212 !important}.has-text-black-ter{color:#242424 !important}.has-background-black-ter{background-color:#242424 !important}.has-text-grey-darker{color:#282f2f !important}.has-background-grey-darker{background-color:#282f2f !important}.has-text-grey-dark{color:#343c3d !important}.has-background-grey-dark{background-color:#343c3d !important}.has-text-grey{color:#5e6d6f !important}.has-background-grey{background-color:#5e6d6f !important}.has-text-grey-light{color:#8c9b9d !important}.has-background-grey-light{background-color:#8c9b9d !important}.has-text-grey-lighter{color:#dbdee0 !important}.has-background-grey-lighter{background-color:#dbdee0 !important}.has-text-white-ter{color:#ecf0f1 !important}.has-background-white-ter{background-color:#ecf0f1 !important}.has-text-white-bis{color:#fafafa !important}.has-background-white-bis{background-color:#fafafa !important}.is-flex-direction-row{flex-direction:row !important}.is-flex-direction-row-reverse{flex-direction:row-reverse !important}.is-flex-direction-column{flex-direction:column !important}.is-flex-direction-column-reverse{flex-direction:column-reverse !important}.is-flex-wrap-nowrap{flex-wrap:nowrap !important}.is-flex-wrap-wrap{flex-wrap:wrap !important}.is-flex-wrap-wrap-reverse{flex-wrap:wrap-reverse !important}.is-justify-content-flex-start{justify-content:flex-start !important}.is-justify-content-flex-end{justify-content:flex-end !important}.is-justify-content-center{justify-content:center !important}.is-justify-content-space-between{justify-content:space-between !important}.is-justify-content-space-around{justify-content:space-around !important}.is-justify-content-space-evenly{justify-content:space-evenly !important}.is-justify-content-start{justify-content:start !important}.is-justify-content-end{justify-content:end !important}.is-justify-content-left{justify-content:left !important}.is-justify-content-right{justify-content:right !important}.is-align-content-flex-start{align-content:flex-start !important}.is-align-content-flex-end{align-content:flex-end !important}.is-align-content-center{align-content:center !important}.is-align-content-space-between{align-content:space-between !important}.is-align-content-space-around{align-content:space-around !important}.is-align-content-space-evenly{align-content:space-evenly !important}.is-align-content-stretch{align-content:stretch !important}.is-align-content-start{align-content:start !important}.is-align-content-end{align-content:end !important}.is-align-content-baseline{align-content:baseline !important}.is-align-items-stretch{align-items:stretch !important}.is-align-items-flex-start{align-items:flex-start !important}.is-align-items-flex-end{align-items:flex-end !important}.is-align-items-center{align-items:center !important}.is-align-items-baseline{align-items:baseline !important}.is-align-items-start{align-items:start !important}.is-align-items-end{align-items:end !important}.is-align-items-self-start{align-items:self-start !important}.is-align-items-self-end{align-items:self-end !important}.is-align-self-auto{align-self:auto !important}.is-align-self-flex-start{align-self:flex-start !important}.is-align-self-flex-end{align-self:flex-end !important}.is-align-self-center{align-self:center !important}.is-align-self-baseline{align-self:baseline !important}.is-align-self-stretch{align-self:stretch !important}.is-flex-grow-0{flex-grow:0 !important}.is-flex-grow-1{flex-grow:1 !important}.is-flex-grow-2{flex-grow:2 !important}.is-flex-grow-3{flex-grow:3 !important}.is-flex-grow-4{flex-grow:4 !important}.is-flex-grow-5{flex-grow:5 !important}.is-flex-shrink-0{flex-shrink:0 !important}.is-flex-shrink-1{flex-shrink:1 !important}.is-flex-shrink-2{flex-shrink:2 !important}.is-flex-shrink-3{flex-shrink:3 !important}.is-flex-shrink-4{flex-shrink:4 !important}.is-flex-shrink-5{flex-shrink:5 !important}.is-clearfix::after{clear:both;content:" ";display:table}.is-pulled-left{float:left !important}.is-pulled-right{float:right !important}.is-radiusless{border-radius:0 !important}.is-shadowless{box-shadow:none !important}.is-clickable{cursor:pointer !important;pointer-events:all !important}.is-clipped{overflow:hidden !important}.is-relative{position:relative !important}.is-marginless{margin:0 !important}.is-paddingless{padding:0 !important}.m-0{margin:0 !important}.mt-0{margin-top:0 !important}.mr-0{margin-right:0 !important}.mb-0{margin-bottom:0 !important}.ml-0{margin-left:0 !important}.mx-0{margin-left:0 !important;margin-right:0 !important}.my-0{margin-top:0 !important;margin-bottom:0 !important}.m-1{margin:.25rem !important}.mt-1{margin-top:.25rem !important}.mr-1{margin-right:.25rem !important}.mb-1{margin-bottom:.25rem !important}.ml-1{margin-left:.25rem !important}.mx-1{margin-left:.25rem !important;margin-right:.25rem !important}.my-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.m-2{margin:.5rem !important}.mt-2{margin-top:.5rem !important}.mr-2{margin-right:.5rem !important}.mb-2{margin-bottom:.5rem !important}.ml-2{margin-left:.5rem !important}.mx-2{margin-left:.5rem !important;margin-right:.5rem !important}.my-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.m-3{margin:.75rem !important}.mt-3{margin-top:.75rem !important}.mr-3{margin-right:.75rem !important}.mb-3{margin-bottom:.75rem !important}.ml-3{margin-left:.75rem !important}.mx-3{margin-left:.75rem !important;margin-right:.75rem !important}.my-3{margin-top:.75rem !important;margin-bottom:.75rem !important}.m-4{margin:1rem !important}.mt-4{margin-top:1rem !important}.mr-4{margin-right:1rem !important}.mb-4{margin-bottom:1rem !important}.ml-4{margin-left:1rem !important}.mx-4{margin-left:1rem !important;margin-right:1rem !important}.my-4{margin-top:1rem !important;margin-bottom:1rem !important}.m-5{margin:1.5rem !important}.mt-5{margin-top:1.5rem !important}.mr-5{margin-right:1.5rem !important}.mb-5{margin-bottom:1.5rem !important}.ml-5{margin-left:1.5rem !important}.mx-5{margin-left:1.5rem !important;margin-right:1.5rem !important}.my-5{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.m-6{margin:3rem !important}.mt-6{margin-top:3rem !important}.mr-6{margin-right:3rem !important}.mb-6{margin-bottom:3rem !important}.ml-6{margin-left:3rem !important}.mx-6{margin-left:3rem !important;margin-right:3rem !important}.my-6{margin-top:3rem !important;margin-bottom:3rem !important}.m-auto{margin:auto !important}.mt-auto{margin-top:auto !important}.mr-auto{margin-right:auto !important}.mb-auto{margin-bottom:auto !important}.ml-auto{margin-left:auto !important}.mx-auto{margin-left:auto !important;margin-right:auto !important}.my-auto{margin-top:auto !important;margin-bottom:auto !important}.p-0{padding:0 !important}.pt-0{padding-top:0 !important}.pr-0{padding-right:0 !important}.pb-0{padding-bottom:0 !important}.pl-0{padding-left:0 !important}.px-0{padding-left:0 !important;padding-right:0 !important}.py-0{padding-top:0 !important;padding-bottom:0 !important}.p-1{padding:.25rem !important}.pt-1{padding-top:.25rem !important}.pr-1{padding-right:.25rem !important}.pb-1{padding-bottom:.25rem !important}.pl-1{padding-left:.25rem !important}.px-1{padding-left:.25rem !important;padding-right:.25rem !important}.py-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.p-2{padding:.5rem !important}.pt-2{padding-top:.5rem !important}.pr-2{padding-right:.5rem !important}.pb-2{padding-bottom:.5rem !important}.pl-2{padding-left:.5rem !important}.px-2{padding-left:.5rem !important;padding-right:.5rem !important}.py-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.p-3{padding:.75rem !important}.pt-3{padding-top:.75rem !important}.pr-3{padding-right:.75rem !important}.pb-3{padding-bottom:.75rem !important}.pl-3{padding-left:.75rem !important}.px-3{padding-left:.75rem !important;padding-right:.75rem !important}.py-3{padding-top:.75rem !important;padding-bottom:.75rem !important}.p-4{padding:1rem !important}.pt-4{padding-top:1rem !important}.pr-4{padding-right:1rem !important}.pb-4{padding-bottom:1rem !important}.pl-4{padding-left:1rem !important}.px-4{padding-left:1rem !important;padding-right:1rem !important}.py-4{padding-top:1rem !important;padding-bottom:1rem !important}.p-5{padding:1.5rem !important}.pt-5{padding-top:1.5rem !important}.pr-5{padding-right:1.5rem !important}.pb-5{padding-bottom:1.5rem !important}.pl-5{padding-left:1.5rem !important}.px-5{padding-left:1.5rem !important;padding-right:1.5rem !important}.py-5{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.p-6{padding:3rem !important}.pt-6{padding-top:3rem !important}.pr-6{padding-right:3rem !important}.pb-6{padding-bottom:3rem !important}.pl-6{padding-left:3rem !important}.px-6{padding-left:3rem !important;padding-right:3rem !important}.py-6{padding-top:3rem !important;padding-bottom:3rem !important}.p-auto{padding:auto !important}.pt-auto{padding-top:auto !important}.pr-auto{padding-right:auto !important}.pb-auto{padding-bottom:auto !important}.pl-auto{padding-left:auto !important}.px-auto{padding-left:auto !important;padding-right:auto !important}.py-auto{padding-top:auto !important;padding-bottom:auto !important}.is-size-1{font-size:3rem !important}.is-size-2{font-size:2.5rem !important}.is-size-3{font-size:2rem !important}.is-size-4{font-size:1.5rem !important}.is-size-5{font-size:1.25rem !important}.is-size-6{font-size:1rem !important}.is-size-7,html.theme--documenter-dark .docstring>section>a.docs-sourcelink{font-size:.75rem !important}@media screen and (max-width: 768px){.is-size-1-mobile{font-size:3rem !important}.is-size-2-mobile{font-size:2.5rem !important}.is-size-3-mobile{font-size:2rem !important}.is-size-4-mobile{font-size:1.5rem !important}.is-size-5-mobile{font-size:1.25rem !important}.is-size-6-mobile{font-size:1rem !important}.is-size-7-mobile{font-size:.75rem !important}}@media screen and (min-width: 769px),print{.is-size-1-tablet{font-size:3rem !important}.is-size-2-tablet{font-size:2.5rem !important}.is-size-3-tablet{font-size:2rem !important}.is-size-4-tablet{font-size:1.5rem !important}.is-size-5-tablet{font-size:1.25rem !important}.is-size-6-tablet{font-size:1rem !important}.is-size-7-tablet{font-size:.75rem !important}}@media screen and (max-width: 1055px){.is-size-1-touch{font-size:3rem !important}.is-size-2-touch{font-size:2.5rem !important}.is-size-3-touch{font-size:2rem !important}.is-size-4-touch{font-size:1.5rem !important}.is-size-5-touch{font-size:1.25rem !important}.is-size-6-touch{font-size:1rem !important}.is-size-7-touch{font-size:.75rem !important}}@media screen and (min-width: 1056px){.is-size-1-desktop{font-size:3rem !important}.is-size-2-desktop{font-size:2.5rem !important}.is-size-3-desktop{font-size:2rem !important}.is-size-4-desktop{font-size:1.5rem !important}.is-size-5-desktop{font-size:1.25rem !important}.is-size-6-desktop{font-size:1rem !important}.is-size-7-desktop{font-size:.75rem !important}}@media screen and (min-width: 1216px){.is-size-1-widescreen{font-size:3rem !important}.is-size-2-widescreen{font-size:2.5rem !important}.is-size-3-widescreen{font-size:2rem !important}.is-size-4-widescreen{font-size:1.5rem !important}.is-size-5-widescreen{font-size:1.25rem !important}.is-size-6-widescreen{font-size:1rem !important}.is-size-7-widescreen{font-size:.75rem !important}}@media screen and (min-width: 1408px){.is-size-1-fullhd{font-size:3rem !important}.is-size-2-fullhd{font-size:2.5rem !important}.is-size-3-fullhd{font-size:2rem !important}.is-size-4-fullhd{font-size:1.5rem !important}.is-size-5-fullhd{font-size:1.25rem !important}.is-size-6-fullhd{font-size:1rem !important}.is-size-7-fullhd{font-size:.75rem !important}}.has-text-centered{text-align:center !important}.has-text-justified{text-align:justify !important}.has-text-left{text-align:left !important}.has-text-right{text-align:right !important}@media screen and (max-width: 768px){.has-text-centered-mobile{text-align:center !important}}@media screen and (min-width: 769px),print{.has-text-centered-tablet{text-align:center !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-centered-tablet-only{text-align:center !important}}@media screen and (max-width: 1055px){.has-text-centered-touch{text-align:center !important}}@media screen and (min-width: 1056px){.has-text-centered-desktop{text-align:center !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-centered-desktop-only{text-align:center !important}}@media screen and (min-width: 1216px){.has-text-centered-widescreen{text-align:center !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-centered-widescreen-only{text-align:center !important}}@media screen and (min-width: 1408px){.has-text-centered-fullhd{text-align:center !important}}@media screen and (max-width: 768px){.has-text-justified-mobile{text-align:justify !important}}@media screen and (min-width: 769px),print{.has-text-justified-tablet{text-align:justify !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-justified-tablet-only{text-align:justify !important}}@media screen and (max-width: 1055px){.has-text-justified-touch{text-align:justify !important}}@media screen and (min-width: 1056px){.has-text-justified-desktop{text-align:justify !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-justified-desktop-only{text-align:justify !important}}@media screen and (min-width: 1216px){.has-text-justified-widescreen{text-align:justify !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-justified-widescreen-only{text-align:justify !important}}@media screen and (min-width: 1408px){.has-text-justified-fullhd{text-align:justify !important}}@media screen and (max-width: 768px){.has-text-left-mobile{text-align:left !important}}@media screen and (min-width: 769px),print{.has-text-left-tablet{text-align:left !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-left-tablet-only{text-align:left !important}}@media screen and (max-width: 1055px){.has-text-left-touch{text-align:left !important}}@media screen and (min-width: 1056px){.has-text-left-desktop{text-align:left !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-left-desktop-only{text-align:left !important}}@media screen and (min-width: 1216px){.has-text-left-widescreen{text-align:left !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-left-widescreen-only{text-align:left !important}}@media screen and (min-width: 1408px){.has-text-left-fullhd{text-align:left !important}}@media screen and (max-width: 768px){.has-text-right-mobile{text-align:right !important}}@media screen and (min-width: 769px),print{.has-text-right-tablet{text-align:right !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-right-tablet-only{text-align:right !important}}@media screen and (max-width: 1055px){.has-text-right-touch{text-align:right !important}}@media screen and (min-width: 1056px){.has-text-right-desktop{text-align:right !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-right-desktop-only{text-align:right !important}}@media screen and (min-width: 1216px){.has-text-right-widescreen{text-align:right !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-right-widescreen-only{text-align:right !important}}@media screen and (min-width: 1408px){.has-text-right-fullhd{text-align:right !important}}.is-capitalized{text-transform:capitalize !important}.is-lowercase{text-transform:lowercase !important}.is-uppercase{text-transform:uppercase !important}.is-italic{font-style:italic !important}.is-underlined{text-decoration:underline !important}.has-text-weight-light{font-weight:300 !important}.has-text-weight-normal{font-weight:400 !important}.has-text-weight-medium{font-weight:500 !important}.has-text-weight-semibold{font-weight:600 !important}.has-text-weight-bold{font-weight:700 !important}.is-family-primary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-secondary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-sans-serif{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-monospace{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-family-code{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-block{display:block !important}@media screen and (max-width: 768px){.is-block-mobile{display:block !important}}@media screen and (min-width: 769px),print{.is-block-tablet{display:block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-block-tablet-only{display:block !important}}@media screen and (max-width: 1055px){.is-block-touch{display:block !important}}@media screen and (min-width: 1056px){.is-block-desktop{display:block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-block-desktop-only{display:block !important}}@media screen and (min-width: 1216px){.is-block-widescreen{display:block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-block-widescreen-only{display:block !important}}@media screen and (min-width: 1408px){.is-block-fullhd{display:block !important}}.is-flex{display:flex !important}@media screen and (max-width: 768px){.is-flex-mobile{display:flex !important}}@media screen and (min-width: 769px),print{.is-flex-tablet{display:flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-flex-tablet-only{display:flex !important}}@media screen and (max-width: 1055px){.is-flex-touch{display:flex !important}}@media screen and (min-width: 1056px){.is-flex-desktop{display:flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-flex-desktop-only{display:flex !important}}@media screen and (min-width: 1216px){.is-flex-widescreen{display:flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-flex-widescreen-only{display:flex !important}}@media screen and (min-width: 1408px){.is-flex-fullhd{display:flex !important}}.is-inline{display:inline !important}@media screen and (max-width: 768px){.is-inline-mobile{display:inline !important}}@media screen and (min-width: 769px),print{.is-inline-tablet{display:inline !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-tablet-only{display:inline !important}}@media screen and (max-width: 1055px){.is-inline-touch{display:inline !important}}@media screen and (min-width: 1056px){.is-inline-desktop{display:inline !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-desktop-only{display:inline !important}}@media screen and (min-width: 1216px){.is-inline-widescreen{display:inline !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-widescreen-only{display:inline !important}}@media screen and (min-width: 1408px){.is-inline-fullhd{display:inline !important}}.is-inline-block{display:inline-block !important}@media screen and (max-width: 768px){.is-inline-block-mobile{display:inline-block !important}}@media screen and (min-width: 769px),print{.is-inline-block-tablet{display:inline-block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-block-tablet-only{display:inline-block !important}}@media screen and (max-width: 1055px){.is-inline-block-touch{display:inline-block !important}}@media screen and (min-width: 1056px){.is-inline-block-desktop{display:inline-block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-block-desktop-only{display:inline-block !important}}@media screen and (min-width: 1216px){.is-inline-block-widescreen{display:inline-block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-block-widescreen-only{display:inline-block !important}}@media screen and (min-width: 1408px){.is-inline-block-fullhd{display:inline-block !important}}.is-inline-flex{display:inline-flex !important}@media screen and (max-width: 768px){.is-inline-flex-mobile{display:inline-flex !important}}@media screen and (min-width: 769px),print{.is-inline-flex-tablet{display:inline-flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-flex-tablet-only{display:inline-flex !important}}@media screen and (max-width: 1055px){.is-inline-flex-touch{display:inline-flex !important}}@media screen and (min-width: 1056px){.is-inline-flex-desktop{display:inline-flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-flex-desktop-only{display:inline-flex !important}}@media screen and (min-width: 1216px){.is-inline-flex-widescreen{display:inline-flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-flex-widescreen-only{display:inline-flex !important}}@media screen and (min-width: 1408px){.is-inline-flex-fullhd{display:inline-flex !important}}.is-hidden{display:none !important}.is-sr-only{border:none !important;clip:rect(0, 0, 0, 0) !important;height:0.01em !important;overflow:hidden !important;padding:0 !important;position:absolute !important;white-space:nowrap !important;width:0.01em !important}@media screen and (max-width: 768px){.is-hidden-mobile{display:none !important}}@media screen and (min-width: 769px),print{.is-hidden-tablet{display:none !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-hidden-tablet-only{display:none !important}}@media screen and (max-width: 1055px){.is-hidden-touch{display:none !important}}@media screen and (min-width: 1056px){.is-hidden-desktop{display:none !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-hidden-desktop-only{display:none !important}}@media screen and (min-width: 1216px){.is-hidden-widescreen{display:none !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-hidden-widescreen-only{display:none !important}}@media screen and (min-width: 1408px){.is-hidden-fullhd{display:none !important}}.is-invisible{visibility:hidden !important}@media screen and (max-width: 768px){.is-invisible-mobile{visibility:hidden !important}}@media screen and (min-width: 769px),print{.is-invisible-tablet{visibility:hidden !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-invisible-tablet-only{visibility:hidden !important}}@media screen and (max-width: 1055px){.is-invisible-touch{visibility:hidden !important}}@media screen and (min-width: 1056px){.is-invisible-desktop{visibility:hidden !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-invisible-desktop-only{visibility:hidden !important}}@media screen and (min-width: 1216px){.is-invisible-widescreen{visibility:hidden !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-invisible-widescreen-only{visibility:hidden !important}}@media screen and (min-width: 1408px){.is-invisible-fullhd{visibility:hidden !important}}html.theme--documenter-dark{/*! Theme: a11y-dark Author: @ericwbailey Maintainer: @ericwbailey Based on the Tomorrow Night Eighties theme: https://github.com/isagalaev/highlight.js/blob/master/src/styles/tomorrow-night-eighties.css -*/ - /* Comment */ - /* Red */ - /* Orange */ - /* Yellow */ - /* Green */ - /* Blue */ - /* Purple */ } - html.theme--documenter-dark html { - background-color: #1f2424; - font-size: 16px; - -moz-osx-font-smoothing: grayscale; - -webkit-font-smoothing: antialiased; - min-width: 300px; - overflow-x: auto; - overflow-y: scroll; - text-rendering: optimizeLegibility; - text-size-adjust: 100%; } - html.theme--documenter-dark article, - html.theme--documenter-dark aside, - html.theme--documenter-dark figure, - html.theme--documenter-dark footer, - html.theme--documenter-dark header, - html.theme--documenter-dark hgroup, - html.theme--documenter-dark section { - display: block; } - html.theme--documenter-dark body, - html.theme--documenter-dark button, - html.theme--documenter-dark input, - html.theme--documenter-dark select, - html.theme--documenter-dark textarea { - font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif; } - html.theme--documenter-dark code, - html.theme--documenter-dark pre { - -moz-osx-font-smoothing: auto; - -webkit-font-smoothing: auto; - font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace; } - html.theme--documenter-dark body { - color: #fff; - font-size: 1em; - font-weight: 400; - line-height: 1.5; } - html.theme--documenter-dark a { - color: #1abc9c; - cursor: pointer; - text-decoration: none; } - html.theme--documenter-dark a strong { - color: currentColor; } - html.theme--documenter-dark a:hover { - color: #1dd2af; } - html.theme--documenter-dark code { - background-color: rgba(255, 255, 255, 0.05); - color: #ececec; - font-size: 0.875em; - font-weight: normal; - padding: 0.1em; } - html.theme--documenter-dark hr { - background-color: #282f2f; - border: none; - display: block; - height: 2px; - margin: 1.5rem 0; } - html.theme--documenter-dark img { - height: auto; - max-width: 100%; } - html.theme--documenter-dark input[type="checkbox"], - html.theme--documenter-dark input[type="radio"] { - vertical-align: baseline; } - html.theme--documenter-dark small { - font-size: 0.875em; } - html.theme--documenter-dark span { - font-style: inherit; - font-weight: inherit; } - html.theme--documenter-dark strong { - color: #f2f2f2; - font-weight: 700; } - html.theme--documenter-dark fieldset { - border: none; } - html.theme--documenter-dark pre { - -webkit-overflow-scrolling: touch; - background-color: #282f2f; - color: #fff; - font-size: 0.875em; - overflow-x: auto; - padding: 1.25rem 1.5rem; - white-space: pre; - word-wrap: normal; } - html.theme--documenter-dark pre code { - background-color: transparent; - color: currentColor; - font-size: 1em; - padding: 0; } - html.theme--documenter-dark table td, - html.theme--documenter-dark table th { - vertical-align: top; } - html.theme--documenter-dark table td:not([align]), - html.theme--documenter-dark table th:not([align]) { - text-align: left; } - html.theme--documenter-dark table th { - color: #f2f2f2; } - html.theme--documenter-dark .box { - background-color: #343c3d; - border-radius: 8px; - box-shadow: none; - color: #fff; - display: block; - padding: 1.25rem; } - html.theme--documenter-dark a.box:hover, html.theme--documenter-dark a.box:focus { - box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #1abc9c; } - html.theme--documenter-dark a.box:active { - box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #1abc9c; } - html.theme--documenter-dark .button { - background-color: #282f2f; - border-color: #4c5759; - border-width: 1px; - color: #375a7f; - cursor: pointer; - justify-content: center; - padding-bottom: calc(0.375em - 1px); - padding-left: 0.75em; - padding-right: 0.75em; - padding-top: calc(0.375em - 1px); - text-align: center; - white-space: nowrap; } - html.theme--documenter-dark .button strong { - color: inherit; } - html.theme--documenter-dark .button .icon, html.theme--documenter-dark .button .icon.is-small, html.theme--documenter-dark .button #documenter .docs-sidebar form.docs-search > input.icon, html.theme--documenter-dark #documenter .docs-sidebar .button form.docs-search > input.icon, html.theme--documenter-dark .button .icon.is-medium, html.theme--documenter-dark .button .icon.is-large { - height: 1.5em; - width: 1.5em; } - html.theme--documenter-dark .button .icon:first-child:not(:last-child) { - margin-left: calc(-0.375em - 1px); - margin-right: 0.1875em; } - html.theme--documenter-dark .button .icon:last-child:not(:first-child) { - margin-left: 0.1875em; - margin-right: calc(-0.375em - 1px); } - html.theme--documenter-dark .button .icon:first-child:last-child { - margin-left: calc(-0.375em - 1px); - margin-right: calc(-0.375em - 1px); } - html.theme--documenter-dark .button:hover, html.theme--documenter-dark .button.is-hovered { - border-color: #8c9b9d; - color: #f2f2f2; } - html.theme--documenter-dark .button:focus, html.theme--documenter-dark .button.is-focused { - border-color: #8c9b9d; - color: #17a689; } - html.theme--documenter-dark .button:focus:not(:active), html.theme--documenter-dark .button.is-focused:not(:active) { - box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } - html.theme--documenter-dark .button:active, html.theme--documenter-dark .button.is-active { - border-color: #343c3d; - color: #f2f2f2; } - html.theme--documenter-dark .button.is-text { - background-color: transparent; - border-color: transparent; - color: #fff; - text-decoration: underline; } - html.theme--documenter-dark .button.is-text:hover, html.theme--documenter-dark .button.is-text.is-hovered, html.theme--documenter-dark .button.is-text:focus, html.theme--documenter-dark .button.is-text.is-focused { - background-color: #282f2f; - color: #f2f2f2; } - html.theme--documenter-dark .button.is-text:active, html.theme--documenter-dark .button.is-text.is-active { - background-color: #1d2122; - color: #f2f2f2; } - html.theme--documenter-dark .button.is-text[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-text { - background-color: transparent; - border-color: transparent; - box-shadow: none; } - html.theme--documenter-dark .button.is-white { - background-color: white; - border-color: transparent; - color: #0a0a0a; } - html.theme--documenter-dark .button.is-white:hover, html.theme--documenter-dark .button.is-white.is-hovered { - background-color: #f9f9f9; - border-color: transparent; - color: #0a0a0a; } - html.theme--documenter-dark .button.is-white:focus, html.theme--documenter-dark .button.is-white.is-focused { - border-color: transparent; - color: #0a0a0a; } - html.theme--documenter-dark .button.is-white:focus:not(:active), html.theme--documenter-dark .button.is-white.is-focused:not(:active) { - box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } - html.theme--documenter-dark .button.is-white:active, html.theme--documenter-dark .button.is-white.is-active { - background-color: #f2f2f2; - border-color: transparent; - color: #0a0a0a; } - html.theme--documenter-dark .button.is-white[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white { - background-color: white; - border-color: transparent; - box-shadow: none; } - html.theme--documenter-dark .button.is-white.is-inverted { - background-color: #0a0a0a; - color: white; } - html.theme--documenter-dark .button.is-white.is-inverted:hover, html.theme--documenter-dark .button.is-white.is-inverted.is-hovered { - background-color: black; } - html.theme--documenter-dark .button.is-white.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted { - background-color: #0a0a0a; - border-color: transparent; - box-shadow: none; - color: white; } - html.theme--documenter-dark .button.is-white.is-loading::after { - border-color: transparent transparent #0a0a0a #0a0a0a !important; } - html.theme--documenter-dark .button.is-white.is-outlined { - background-color: transparent; - border-color: white; - color: white; } - html.theme--documenter-dark .button.is-white.is-outlined:hover, html.theme--documenter-dark .button.is-white.is-outlined.is-hovered, html.theme--documenter-dark .button.is-white.is-outlined:focus, html.theme--documenter-dark .button.is-white.is-outlined.is-focused { - background-color: white; - border-color: white; - color: #0a0a0a; } - html.theme--documenter-dark .button.is-white.is-outlined.is-loading::after { - border-color: transparent transparent white white !important; } - html.theme--documenter-dark .button.is-white.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-focused::after { - border-color: transparent transparent #0a0a0a #0a0a0a !important; } - html.theme--documenter-dark .button.is-white.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white.is-outlined { - background-color: transparent; - border-color: white; - box-shadow: none; - color: white; } - html.theme--documenter-dark .button.is-white.is-inverted.is-outlined { - background-color: transparent; - border-color: #0a0a0a; - color: #0a0a0a; } - html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-focused { - background-color: #0a0a0a; - color: white; } - html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after { - border-color: transparent transparent white white !important; } - html.theme--documenter-dark .button.is-white.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted.is-outlined { - background-color: transparent; - border-color: #0a0a0a; - box-shadow: none; - color: #0a0a0a; } - html.theme--documenter-dark .button.is-black { - background-color: #0a0a0a; - border-color: transparent; - color: white; } - html.theme--documenter-dark .button.is-black:hover, html.theme--documenter-dark .button.is-black.is-hovered { - background-color: #040404; - border-color: transparent; - color: white; } - html.theme--documenter-dark .button.is-black:focus, html.theme--documenter-dark .button.is-black.is-focused { - border-color: transparent; - color: white; } - html.theme--documenter-dark .button.is-black:focus:not(:active), html.theme--documenter-dark .button.is-black.is-focused:not(:active) { - box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } - html.theme--documenter-dark .button.is-black:active, html.theme--documenter-dark .button.is-black.is-active { - background-color: black; - border-color: transparent; - color: white; } - html.theme--documenter-dark .button.is-black[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black { - background-color: #0a0a0a; - border-color: transparent; - box-shadow: none; } - html.theme--documenter-dark .button.is-black.is-inverted { - background-color: white; - color: #0a0a0a; } - html.theme--documenter-dark .button.is-black.is-inverted:hover, html.theme--documenter-dark .button.is-black.is-inverted.is-hovered { - background-color: #f2f2f2; } - html.theme--documenter-dark .button.is-black.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted { - background-color: white; - border-color: transparent; - box-shadow: none; - color: #0a0a0a; } - html.theme--documenter-dark .button.is-black.is-loading::after { - border-color: transparent transparent white white !important; } - html.theme--documenter-dark .button.is-black.is-outlined { - background-color: transparent; - border-color: #0a0a0a; - color: #0a0a0a; } - html.theme--documenter-dark .button.is-black.is-outlined:hover, html.theme--documenter-dark .button.is-black.is-outlined.is-hovered, html.theme--documenter-dark .button.is-black.is-outlined:focus, html.theme--documenter-dark .button.is-black.is-outlined.is-focused { - background-color: #0a0a0a; - border-color: #0a0a0a; - color: white; } - html.theme--documenter-dark .button.is-black.is-outlined.is-loading::after { - border-color: transparent transparent #0a0a0a #0a0a0a !important; } - html.theme--documenter-dark .button.is-black.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-focused::after { - border-color: transparent transparent white white !important; } - html.theme--documenter-dark .button.is-black.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black.is-outlined { - background-color: transparent; - border-color: #0a0a0a; - box-shadow: none; - color: #0a0a0a; } - html.theme--documenter-dark .button.is-black.is-inverted.is-outlined { - background-color: transparent; - border-color: white; - color: white; } - html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-focused { - background-color: white; - color: #0a0a0a; } - html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after { - border-color: transparent transparent #0a0a0a #0a0a0a !important; } - html.theme--documenter-dark .button.is-black.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted.is-outlined { - background-color: transparent; - border-color: white; - box-shadow: none; - color: white; } - html.theme--documenter-dark .button.is-light { - background-color: #ecf0f1; - border-color: transparent; - color: #282f2f; } - html.theme--documenter-dark .button.is-light:hover, html.theme--documenter-dark .button.is-light.is-hovered { - background-color: #e5eaec; - border-color: transparent; - color: #282f2f; } - html.theme--documenter-dark .button.is-light:focus, html.theme--documenter-dark .button.is-light.is-focused { - border-color: transparent; - color: #282f2f; } - html.theme--documenter-dark .button.is-light:focus:not(:active), html.theme--documenter-dark .button.is-light.is-focused:not(:active) { - box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); } - html.theme--documenter-dark .button.is-light:active, html.theme--documenter-dark .button.is-light.is-active { - background-color: #dde4e6; - border-color: transparent; - color: #282f2f; } - html.theme--documenter-dark .button.is-light[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light { - background-color: #ecf0f1; - border-color: transparent; - box-shadow: none; } - html.theme--documenter-dark .button.is-light.is-inverted { - background-color: #282f2f; - color: #ecf0f1; } - html.theme--documenter-dark .button.is-light.is-inverted:hover, html.theme--documenter-dark .button.is-light.is-inverted.is-hovered { - background-color: #1d2122; } - html.theme--documenter-dark .button.is-light.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted { - background-color: #282f2f; - border-color: transparent; - box-shadow: none; - color: #ecf0f1; } - html.theme--documenter-dark .button.is-light.is-loading::after { - border-color: transparent transparent #282f2f #282f2f !important; } - html.theme--documenter-dark .button.is-light.is-outlined { - background-color: transparent; - border-color: #ecf0f1; - color: #ecf0f1; } - html.theme--documenter-dark .button.is-light.is-outlined:hover, html.theme--documenter-dark .button.is-light.is-outlined.is-hovered, html.theme--documenter-dark .button.is-light.is-outlined:focus, html.theme--documenter-dark .button.is-light.is-outlined.is-focused { - background-color: #ecf0f1; - border-color: #ecf0f1; - color: #282f2f; } - html.theme--documenter-dark .button.is-light.is-outlined.is-loading::after { - border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } - html.theme--documenter-dark .button.is-light.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-focused::after { - border-color: transparent transparent #282f2f #282f2f !important; } - html.theme--documenter-dark .button.is-light.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-outlined { - background-color: transparent; - border-color: #ecf0f1; - box-shadow: none; - color: #ecf0f1; } - html.theme--documenter-dark .button.is-light.is-inverted.is-outlined { - background-color: transparent; - border-color: #282f2f; - color: #282f2f; } - html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-focused { - background-color: #282f2f; - color: #ecf0f1; } - html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after { - border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } - html.theme--documenter-dark .button.is-light.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted.is-outlined { - background-color: transparent; - border-color: #282f2f; - box-shadow: none; - color: #282f2f; } - html.theme--documenter-dark .button.is-dark, html.theme--documenter-dark .content kbd.button { - background-color: #282f2f; - border-color: transparent; - color: #ecf0f1; } - html.theme--documenter-dark .button.is-dark:hover, html.theme--documenter-dark .content kbd.button:hover, html.theme--documenter-dark .button.is-dark.is-hovered, html.theme--documenter-dark .content kbd.button.is-hovered { - background-color: #232829; - border-color: transparent; - color: #ecf0f1; } - html.theme--documenter-dark .button.is-dark:focus, html.theme--documenter-dark .content kbd.button:focus, html.theme--documenter-dark .button.is-dark.is-focused, html.theme--documenter-dark .content kbd.button.is-focused { - border-color: transparent; - color: #ecf0f1; } - html.theme--documenter-dark .button.is-dark:focus:not(:active), html.theme--documenter-dark .content kbd.button:focus:not(:active), html.theme--documenter-dark .button.is-dark.is-focused:not(:active), html.theme--documenter-dark .content kbd.button.is-focused:not(:active) { - box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); } - html.theme--documenter-dark .button.is-dark:active, html.theme--documenter-dark .content kbd.button:active, html.theme--documenter-dark .button.is-dark.is-active, html.theme--documenter-dark .content kbd.button.is-active { - background-color: #1d2122; - border-color: transparent; - color: #ecf0f1; } - html.theme--documenter-dark .button.is-dark[disabled], html.theme--documenter-dark .content kbd.button[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark, fieldset[disabled] html.theme--documenter-dark .content kbd.button { - background-color: #282f2f; - border-color: transparent; - box-shadow: none; } - html.theme--documenter-dark .button.is-dark.is-inverted, html.theme--documenter-dark .content kbd.button.is-inverted { - background-color: #ecf0f1; - color: #282f2f; } - html.theme--documenter-dark .button.is-dark.is-inverted:hover, html.theme--documenter-dark .content kbd.button.is-inverted:hover, html.theme--documenter-dark .button.is-dark.is-inverted.is-hovered, html.theme--documenter-dark .content kbd.button.is-inverted.is-hovered { - background-color: #dde4e6; } - html.theme--documenter-dark .button.is-dark.is-inverted[disabled], html.theme--documenter-dark .content kbd.button.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted { - background-color: #ecf0f1; - border-color: transparent; - box-shadow: none; - color: #282f2f; } - html.theme--documenter-dark .button.is-dark.is-loading::after, html.theme--documenter-dark .content kbd.button.is-loading::after { - border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } - html.theme--documenter-dark .button.is-dark.is-outlined, html.theme--documenter-dark .content kbd.button.is-outlined { - background-color: transparent; - border-color: #282f2f; - color: #282f2f; } - html.theme--documenter-dark .button.is-dark.is-outlined:hover, html.theme--documenter-dark .content kbd.button.is-outlined:hover, html.theme--documenter-dark .button.is-dark.is-outlined.is-hovered, html.theme--documenter-dark .content kbd.button.is-outlined.is-hovered, html.theme--documenter-dark .button.is-dark.is-outlined:focus, html.theme--documenter-dark .content kbd.button.is-outlined:focus, html.theme--documenter-dark .button.is-dark.is-outlined.is-focused, html.theme--documenter-dark .content kbd.button.is-outlined.is-focused { - background-color: #282f2f; - border-color: #282f2f; - color: #ecf0f1; } - html.theme--documenter-dark .button.is-dark.is-outlined.is-loading::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading::after { - border-color: transparent transparent #282f2f #282f2f !important; } - html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:hover::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:focus::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-focused::after { - border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } - html.theme--documenter-dark .button.is-dark.is-outlined[disabled], html.theme--documenter-dark .content kbd.button.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-outlined, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-outlined { - background-color: transparent; - border-color: #282f2f; - box-shadow: none; - color: #282f2f; } - html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined { - background-color: transparent; - border-color: #ecf0f1; - color: #ecf0f1; } - html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:hover, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:focus, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-focused, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-focused { - background-color: #ecf0f1; - color: #282f2f; } - html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after { - border-color: transparent transparent #282f2f #282f2f !important; } - html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined[disabled], html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined { - background-color: transparent; - border-color: #ecf0f1; - box-shadow: none; - color: #ecf0f1; } - html.theme--documenter-dark .button.is-primary, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink { - background-color: #375a7f; - border-color: transparent; - color: #fff; } - html.theme--documenter-dark .button.is-primary:hover, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-hovered.docs-sourcelink { - background-color: #335476; - border-color: transparent; - color: #fff; } - html.theme--documenter-dark .button.is-primary:focus, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink { - border-color: transparent; - color: #fff; } - html.theme--documenter-dark .button.is-primary:focus:not(:active), html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus:not(:active), html.theme--documenter-dark .button.is-primary.is-focused:not(:active), html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink:not(:active) { - box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); } - html.theme--documenter-dark .button.is-primary:active, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:active, html.theme--documenter-dark .button.is-primary.is-active, html.theme--documenter-dark .docstring > section > a.button.is-active.docs-sourcelink { - background-color: #2f4d6d; - border-color: transparent; - color: #fff; } - html.theme--documenter-dark .button.is-primary[disabled], html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink { - background-color: #375a7f; - border-color: transparent; - box-shadow: none; } - html.theme--documenter-dark .button.is-primary.is-inverted, html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink { - background-color: #fff; - color: #375a7f; } - html.theme--documenter-dark .button.is-primary.is-inverted:hover, html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-inverted.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-hovered.docs-sourcelink { - background-color: #f2f2f2; } - html.theme--documenter-dark .button.is-primary.is-inverted[disabled], html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink { - background-color: #fff; - border-color: transparent; - box-shadow: none; - color: #375a7f; } - html.theme--documenter-dark .button.is-primary.is-loading::after, html.theme--documenter-dark .docstring > section > a.button.is-loading.docs-sourcelink::after { - border-color: transparent transparent #fff #fff !important; } - html.theme--documenter-dark .button.is-primary.is-outlined, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink { - background-color: transparent; - border-color: #375a7f; - color: #375a7f; } - html.theme--documenter-dark .button.is-primary.is-outlined:hover, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-outlined.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-outlined:focus, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-outlined.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-focused.docs-sourcelink { - background-color: #375a7f; - border-color: #375a7f; - color: #fff; } - html.theme--documenter-dark .button.is-primary.is-outlined.is-loading::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink::after { - border-color: transparent transparent #375a7f #375a7f !important; } - html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:hover::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:hover::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:focus::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:focus::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after { - border-color: transparent transparent #fff #fff !important; } - html.theme--documenter-dark .button.is-primary.is-outlined[disabled], html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-outlined, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink { - background-color: transparent; - border-color: #375a7f; - box-shadow: none; - color: #375a7f; } - html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { - background-color: transparent; - border-color: #fff; - color: #fff; } - html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:hover, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:focus, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-focused.docs-sourcelink { - background-color: #fff; - color: #375a7f; } - html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after { - border-color: transparent transparent #375a7f #375a7f !important; } - html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined[disabled], html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { - background-color: transparent; - border-color: #fff; - box-shadow: none; - color: #fff; } - html.theme--documenter-dark .button.is-link { - background-color: #1abc9c; - border-color: transparent; - color: #fff; } - html.theme--documenter-dark .button.is-link:hover, html.theme--documenter-dark .button.is-link.is-hovered { - background-color: #18b193; - border-color: transparent; - color: #fff; } - html.theme--documenter-dark .button.is-link:focus, html.theme--documenter-dark .button.is-link.is-focused { - border-color: transparent; - color: #fff; } - html.theme--documenter-dark .button.is-link:focus:not(:active), html.theme--documenter-dark .button.is-link.is-focused:not(:active) { - box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } - html.theme--documenter-dark .button.is-link:active, html.theme--documenter-dark .button.is-link.is-active { - background-color: #17a689; - border-color: transparent; - color: #fff; } - html.theme--documenter-dark .button.is-link[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link { - background-color: #1abc9c; - border-color: transparent; - box-shadow: none; } - html.theme--documenter-dark .button.is-link.is-inverted { - background-color: #fff; - color: #1abc9c; } - html.theme--documenter-dark .button.is-link.is-inverted:hover, html.theme--documenter-dark .button.is-link.is-inverted.is-hovered { - background-color: #f2f2f2; } - html.theme--documenter-dark .button.is-link.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted { - background-color: #fff; - border-color: transparent; - box-shadow: none; - color: #1abc9c; } - html.theme--documenter-dark .button.is-link.is-loading::after { - border-color: transparent transparent #fff #fff !important; } - html.theme--documenter-dark .button.is-link.is-outlined { - background-color: transparent; - border-color: #1abc9c; - color: #1abc9c; } - html.theme--documenter-dark .button.is-link.is-outlined:hover, html.theme--documenter-dark .button.is-link.is-outlined.is-hovered, html.theme--documenter-dark .button.is-link.is-outlined:focus, html.theme--documenter-dark .button.is-link.is-outlined.is-focused { - background-color: #1abc9c; - border-color: #1abc9c; - color: #fff; } - html.theme--documenter-dark .button.is-link.is-outlined.is-loading::after { - border-color: transparent transparent #1abc9c #1abc9c !important; } - html.theme--documenter-dark .button.is-link.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-focused::after { - border-color: transparent transparent #fff #fff !important; } - html.theme--documenter-dark .button.is-link.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-outlined { - background-color: transparent; - border-color: #1abc9c; - box-shadow: none; - color: #1abc9c; } - html.theme--documenter-dark .button.is-link.is-inverted.is-outlined { - background-color: transparent; - border-color: #fff; - color: #fff; } - html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-focused { - background-color: #fff; - color: #1abc9c; } - html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after { - border-color: transparent transparent #1abc9c #1abc9c !important; } - html.theme--documenter-dark .button.is-link.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted.is-outlined { - background-color: transparent; - border-color: #fff; - box-shadow: none; - color: #fff; } - html.theme--documenter-dark .button.is-info { - background-color: #024c7d; - border-color: transparent; - color: #fff; } - html.theme--documenter-dark .button.is-info:hover, html.theme--documenter-dark .button.is-info.is-hovered { - background-color: #024470; - border-color: transparent; - color: #fff; } - html.theme--documenter-dark .button.is-info:focus, html.theme--documenter-dark .button.is-info.is-focused { - border-color: transparent; - color: #fff; } - html.theme--documenter-dark .button.is-info:focus:not(:active), html.theme--documenter-dark .button.is-info.is-focused:not(:active) { - box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); } - html.theme--documenter-dark .button.is-info:active, html.theme--documenter-dark .button.is-info.is-active { - background-color: #023d64; - border-color: transparent; - color: #fff; } - html.theme--documenter-dark .button.is-info[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info { - background-color: #024c7d; - border-color: transparent; - box-shadow: none; } - html.theme--documenter-dark .button.is-info.is-inverted { - background-color: #fff; - color: #024c7d; } - html.theme--documenter-dark .button.is-info.is-inverted:hover, html.theme--documenter-dark .button.is-info.is-inverted.is-hovered { - background-color: #f2f2f2; } - html.theme--documenter-dark .button.is-info.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted { - background-color: #fff; - border-color: transparent; - box-shadow: none; - color: #024c7d; } - html.theme--documenter-dark .button.is-info.is-loading::after { - border-color: transparent transparent #fff #fff !important; } - html.theme--documenter-dark .button.is-info.is-outlined { - background-color: transparent; - border-color: #024c7d; - color: #024c7d; } - html.theme--documenter-dark .button.is-info.is-outlined:hover, html.theme--documenter-dark .button.is-info.is-outlined.is-hovered, html.theme--documenter-dark .button.is-info.is-outlined:focus, html.theme--documenter-dark .button.is-info.is-outlined.is-focused { - background-color: #024c7d; - border-color: #024c7d; - color: #fff; } - html.theme--documenter-dark .button.is-info.is-outlined.is-loading::after { - border-color: transparent transparent #024c7d #024c7d !important; } - html.theme--documenter-dark .button.is-info.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-focused::after { - border-color: transparent transparent #fff #fff !important; } - html.theme--documenter-dark .button.is-info.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-outlined { - background-color: transparent; - border-color: #024c7d; - box-shadow: none; - color: #024c7d; } - html.theme--documenter-dark .button.is-info.is-inverted.is-outlined { - background-color: transparent; - border-color: #fff; - color: #fff; } - html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-focused { - background-color: #fff; - color: #024c7d; } - html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after { - border-color: transparent transparent #024c7d #024c7d !important; } - html.theme--documenter-dark .button.is-info.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted.is-outlined { - background-color: transparent; - border-color: #fff; - box-shadow: none; - color: #fff; } - html.theme--documenter-dark .button.is-success { - background-color: #008438; - border-color: transparent; - color: #fff; } - html.theme--documenter-dark .button.is-success:hover, html.theme--documenter-dark .button.is-success.is-hovered { - background-color: #007733; - border-color: transparent; - color: #fff; } - html.theme--documenter-dark .button.is-success:focus, html.theme--documenter-dark .button.is-success.is-focused { - border-color: transparent; - color: #fff; } - html.theme--documenter-dark .button.is-success:focus:not(:active), html.theme--documenter-dark .button.is-success.is-focused:not(:active) { - box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); } - html.theme--documenter-dark .button.is-success:active, html.theme--documenter-dark .button.is-success.is-active { - background-color: #006b2d; - border-color: transparent; - color: #fff; } - html.theme--documenter-dark .button.is-success[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success { - background-color: #008438; - border-color: transparent; - box-shadow: none; } - html.theme--documenter-dark .button.is-success.is-inverted { - background-color: #fff; - color: #008438; } - html.theme--documenter-dark .button.is-success.is-inverted:hover, html.theme--documenter-dark .button.is-success.is-inverted.is-hovered { - background-color: #f2f2f2; } - html.theme--documenter-dark .button.is-success.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted { - background-color: #fff; - border-color: transparent; - box-shadow: none; - color: #008438; } - html.theme--documenter-dark .button.is-success.is-loading::after { - border-color: transparent transparent #fff #fff !important; } - html.theme--documenter-dark .button.is-success.is-outlined { - background-color: transparent; - border-color: #008438; - color: #008438; } - html.theme--documenter-dark .button.is-success.is-outlined:hover, html.theme--documenter-dark .button.is-success.is-outlined.is-hovered, html.theme--documenter-dark .button.is-success.is-outlined:focus, html.theme--documenter-dark .button.is-success.is-outlined.is-focused { - background-color: #008438; - border-color: #008438; - color: #fff; } - html.theme--documenter-dark .button.is-success.is-outlined.is-loading::after { - border-color: transparent transparent #008438 #008438 !important; } - html.theme--documenter-dark .button.is-success.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-focused::after { - border-color: transparent transparent #fff #fff !important; } - html.theme--documenter-dark .button.is-success.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-outlined { - background-color: transparent; - border-color: #008438; - box-shadow: none; - color: #008438; } - html.theme--documenter-dark .button.is-success.is-inverted.is-outlined { - background-color: transparent; - border-color: #fff; - color: #fff; } - html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-focused { - background-color: #fff; - color: #008438; } - html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after { - border-color: transparent transparent #008438 #008438 !important; } - html.theme--documenter-dark .button.is-success.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted.is-outlined { - background-color: transparent; - border-color: #fff; - box-shadow: none; - color: #fff; } - html.theme--documenter-dark .button.is-warning { - background-color: #ad8100; - border-color: transparent; - color: #fff; } - html.theme--documenter-dark .button.is-warning:hover, html.theme--documenter-dark .button.is-warning.is-hovered { - background-color: #a07700; - border-color: transparent; - color: #fff; } - html.theme--documenter-dark .button.is-warning:focus, html.theme--documenter-dark .button.is-warning.is-focused { - border-color: transparent; - color: #fff; } - html.theme--documenter-dark .button.is-warning:focus:not(:active), html.theme--documenter-dark .button.is-warning.is-focused:not(:active) { - box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); } - html.theme--documenter-dark .button.is-warning:active, html.theme--documenter-dark .button.is-warning.is-active { - background-color: #946e00; - border-color: transparent; - color: #fff; } - html.theme--documenter-dark .button.is-warning[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning { - background-color: #ad8100; - border-color: transparent; - box-shadow: none; } - html.theme--documenter-dark .button.is-warning.is-inverted { - background-color: #fff; - color: #ad8100; } - html.theme--documenter-dark .button.is-warning.is-inverted:hover, html.theme--documenter-dark .button.is-warning.is-inverted.is-hovered { - background-color: #f2f2f2; } - html.theme--documenter-dark .button.is-warning.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted { - background-color: #fff; - border-color: transparent; - box-shadow: none; - color: #ad8100; } - html.theme--documenter-dark .button.is-warning.is-loading::after { - border-color: transparent transparent #fff #fff !important; } - html.theme--documenter-dark .button.is-warning.is-outlined { - background-color: transparent; - border-color: #ad8100; - color: #ad8100; } - html.theme--documenter-dark .button.is-warning.is-outlined:hover, html.theme--documenter-dark .button.is-warning.is-outlined.is-hovered, html.theme--documenter-dark .button.is-warning.is-outlined:focus, html.theme--documenter-dark .button.is-warning.is-outlined.is-focused { - background-color: #ad8100; - border-color: #ad8100; - color: #fff; } - html.theme--documenter-dark .button.is-warning.is-outlined.is-loading::after { - border-color: transparent transparent #ad8100 #ad8100 !important; } - html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-focused::after { - border-color: transparent transparent #fff #fff !important; } - html.theme--documenter-dark .button.is-warning.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-outlined { - background-color: transparent; - border-color: #ad8100; - box-shadow: none; - color: #ad8100; } - html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined { - background-color: transparent; - border-color: #fff; - color: #fff; } - html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-focused { - background-color: #fff; - color: #ad8100; } - html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after { - border-color: transparent transparent #ad8100 #ad8100 !important; } - html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined { - background-color: transparent; - border-color: #fff; - box-shadow: none; - color: #fff; } - html.theme--documenter-dark .button.is-danger { - background-color: #9e1b0d; - border-color: transparent; - color: #fff; } - html.theme--documenter-dark .button.is-danger:hover, html.theme--documenter-dark .button.is-danger.is-hovered { - background-color: #92190c; - border-color: transparent; - color: #fff; } - html.theme--documenter-dark .button.is-danger:focus, html.theme--documenter-dark .button.is-danger.is-focused { - border-color: transparent; - color: #fff; } - html.theme--documenter-dark .button.is-danger:focus:not(:active), html.theme--documenter-dark .button.is-danger.is-focused:not(:active) { - box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); } - html.theme--documenter-dark .button.is-danger:active, html.theme--documenter-dark .button.is-danger.is-active { - background-color: #86170b; - border-color: transparent; - color: #fff; } - html.theme--documenter-dark .button.is-danger[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger { - background-color: #9e1b0d; - border-color: transparent; - box-shadow: none; } - html.theme--documenter-dark .button.is-danger.is-inverted { - background-color: #fff; - color: #9e1b0d; } - html.theme--documenter-dark .button.is-danger.is-inverted:hover, html.theme--documenter-dark .button.is-danger.is-inverted.is-hovered { - background-color: #f2f2f2; } - html.theme--documenter-dark .button.is-danger.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted { - background-color: #fff; - border-color: transparent; - box-shadow: none; - color: #9e1b0d; } - html.theme--documenter-dark .button.is-danger.is-loading::after { - border-color: transparent transparent #fff #fff !important; } - html.theme--documenter-dark .button.is-danger.is-outlined { - background-color: transparent; - border-color: #9e1b0d; - color: #9e1b0d; } - html.theme--documenter-dark .button.is-danger.is-outlined:hover, html.theme--documenter-dark .button.is-danger.is-outlined.is-hovered, html.theme--documenter-dark .button.is-danger.is-outlined:focus, html.theme--documenter-dark .button.is-danger.is-outlined.is-focused { - background-color: #9e1b0d; - border-color: #9e1b0d; - color: #fff; } - html.theme--documenter-dark .button.is-danger.is-outlined.is-loading::after { - border-color: transparent transparent #9e1b0d #9e1b0d !important; } - html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-focused::after { - border-color: transparent transparent #fff #fff !important; } - html.theme--documenter-dark .button.is-danger.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-outlined { - background-color: transparent; - border-color: #9e1b0d; - box-shadow: none; - color: #9e1b0d; } - html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined { - background-color: transparent; - border-color: #fff; - color: #fff; } - html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-focused { - background-color: #fff; - color: #9e1b0d; } - html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after { - border-color: transparent transparent #9e1b0d #9e1b0d !important; } - html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined { - background-color: transparent; - border-color: #fff; - box-shadow: none; - color: #fff; } - html.theme--documenter-dark .button.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.button { - border-radius: 3px; - font-size: 0.85em; } - html.theme--documenter-dark .button.is-normal { - font-size: 15px; } - html.theme--documenter-dark .button.is-medium { - font-size: 1.25rem; } - html.theme--documenter-dark .button.is-large { - font-size: 1.5rem; } - html.theme--documenter-dark .button[disabled], fieldset[disabled] html.theme--documenter-dark .button { - background-color: #8c9b9d; - border-color: #dbdee0; - box-shadow: none; - opacity: 0.5; } - html.theme--documenter-dark .button.is-fullwidth { - display: flex; - width: 100%; } - html.theme--documenter-dark .button.is-loading { - color: transparent !important; - pointer-events: none; } - html.theme--documenter-dark .button.is-loading::after { - position: absolute; - left: calc(50% - (1em / 2)); - top: calc(50% - (1em / 2)); - position: absolute !important; } - html.theme--documenter-dark .button.is-static { - background-color: #282f2f; - border-color: #5e6d6f; - color: #dbdee0; - box-shadow: none; - pointer-events: none; } - html.theme--documenter-dark .button.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.button { - border-radius: 290486px; - padding-left: 1em; - padding-right: 1em; } - html.theme--documenter-dark .buttons { - align-items: center; - display: flex; - flex-wrap: wrap; - justify-content: flex-start; } - html.theme--documenter-dark .buttons .button { - margin-bottom: 0.5rem; } - html.theme--documenter-dark .buttons .button:not(:last-child):not(.is-fullwidth) { - margin-right: 0.5rem; } - html.theme--documenter-dark .buttons:last-child { - margin-bottom: -0.5rem; } - html.theme--documenter-dark .buttons:not(:last-child) { - margin-bottom: 1rem; } - html.theme--documenter-dark .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) { - border-radius: 3px; - font-size: 0.85em; } - html.theme--documenter-dark .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) { - font-size: 1.25rem; } - html.theme--documenter-dark .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) { - font-size: 1.5rem; } - html.theme--documenter-dark .buttons.has-addons .button:not(:first-child) { - border-bottom-left-radius: 0; - border-top-left-radius: 0; } - html.theme--documenter-dark .buttons.has-addons .button:not(:last-child) { - border-bottom-right-radius: 0; - border-top-right-radius: 0; - margin-right: -1px; } - html.theme--documenter-dark .buttons.has-addons .button:last-child { - margin-right: 0; } - html.theme--documenter-dark .buttons.has-addons .button:hover, html.theme--documenter-dark .buttons.has-addons .button.is-hovered { - z-index: 2; } - html.theme--documenter-dark .buttons.has-addons .button:focus, html.theme--documenter-dark .buttons.has-addons .button.is-focused, html.theme--documenter-dark .buttons.has-addons .button:active, html.theme--documenter-dark .buttons.has-addons .button.is-active, html.theme--documenter-dark .buttons.has-addons .button.is-selected { - z-index: 3; } - html.theme--documenter-dark .buttons.has-addons .button:focus:hover, html.theme--documenter-dark .buttons.has-addons .button.is-focused:hover, html.theme--documenter-dark .buttons.has-addons .button:active:hover, html.theme--documenter-dark .buttons.has-addons .button.is-active:hover, html.theme--documenter-dark .buttons.has-addons .button.is-selected:hover { - z-index: 4; } - html.theme--documenter-dark .buttons.has-addons .button.is-expanded { - flex-grow: 1; - flex-shrink: 1; } - html.theme--documenter-dark .buttons.is-centered { - justify-content: center; } - html.theme--documenter-dark .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) { - margin-left: 0.25rem; - margin-right: 0.25rem; } - html.theme--documenter-dark .buttons.is-right { - justify-content: flex-end; } - html.theme--documenter-dark .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) { - margin-left: 0.25rem; - margin-right: 0.25rem; } - html.theme--documenter-dark .container { - flex-grow: 1; - margin: 0 auto; - position: relative; - width: auto; } - @media screen and (min-width: 1056px) { - html.theme--documenter-dark .container { - max-width: 992px; } - html.theme--documenter-dark .container.is-fluid { - margin-left: 32px; - margin-right: 32px; - max-width: none; } } - @media screen and (max-width: 1215px) { - html.theme--documenter-dark .container.is-widescreen { - max-width: 1152px; } } - @media screen and (max-width: 1407px) { - html.theme--documenter-dark .container.is-fullhd { - max-width: 1344px; } } - @media screen and (min-width: 1216px) { - html.theme--documenter-dark .container { - max-width: 1152px; } } - @media screen and (min-width: 1408px) { - html.theme--documenter-dark .container { - max-width: 1344px; } } - html.theme--documenter-dark .content li + li { - margin-top: 0.25em; } - html.theme--documenter-dark .content p:not(:last-child), - html.theme--documenter-dark .content dl:not(:last-child), - html.theme--documenter-dark .content ol:not(:last-child), - html.theme--documenter-dark .content ul:not(:last-child), - html.theme--documenter-dark .content blockquote:not(:last-child), - html.theme--documenter-dark .content pre:not(:last-child), - html.theme--documenter-dark .content table:not(:last-child) { - margin-bottom: 1em; } - html.theme--documenter-dark .content h1, - html.theme--documenter-dark .content h2, - html.theme--documenter-dark .content h3, - html.theme--documenter-dark .content h4, - html.theme--documenter-dark .content h5, - html.theme--documenter-dark .content h6 { - color: #f2f2f2; - font-weight: 600; - line-height: 1.125; } - html.theme--documenter-dark .content h1 { - font-size: 2em; - margin-bottom: 0.5em; } - html.theme--documenter-dark .content h1:not(:first-child) { - margin-top: 1em; } - html.theme--documenter-dark .content h2 { - font-size: 1.75em; - margin-bottom: 0.5714em; } - html.theme--documenter-dark .content h2:not(:first-child) { - margin-top: 1.1428em; } - html.theme--documenter-dark .content h3 { - font-size: 1.5em; - margin-bottom: 0.6666em; } - html.theme--documenter-dark .content h3:not(:first-child) { - margin-top: 1.3333em; } - html.theme--documenter-dark .content h4 { - font-size: 1.25em; - margin-bottom: 0.8em; } - html.theme--documenter-dark .content h5 { - font-size: 1.125em; - margin-bottom: 0.8888em; } - html.theme--documenter-dark .content h6 { - font-size: 1em; - margin-bottom: 1em; } - html.theme--documenter-dark .content blockquote { - background-color: #282f2f; - border-left: 5px solid #5e6d6f; - padding: 1.25em 1.5em; } - html.theme--documenter-dark .content ol { - list-style-position: outside; - margin-left: 2em; - margin-top: 1em; } - html.theme--documenter-dark .content ol:not([type]) { - list-style-type: decimal; } - html.theme--documenter-dark .content ol.is-lower-alpha:not([type]) { - list-style-type: lower-alpha; } - html.theme--documenter-dark .content ol.is-lower-roman:not([type]) { - list-style-type: lower-roman; } - html.theme--documenter-dark .content ol.is-upper-alpha:not([type]) { - list-style-type: upper-alpha; } - html.theme--documenter-dark .content ol.is-upper-roman:not([type]) { - list-style-type: upper-roman; } - html.theme--documenter-dark .content ul { - list-style: disc outside; - margin-left: 2em; - margin-top: 1em; } - html.theme--documenter-dark .content ul ul { - list-style-type: circle; - margin-top: 0.5em; } - html.theme--documenter-dark .content ul ul ul { - list-style-type: square; } - html.theme--documenter-dark .content dd { - margin-left: 2em; } - html.theme--documenter-dark .content figure { - margin-left: 2em; - margin-right: 2em; - text-align: center; } - html.theme--documenter-dark .content figure:not(:first-child) { - margin-top: 2em; } - html.theme--documenter-dark .content figure:not(:last-child) { - margin-bottom: 2em; } - html.theme--documenter-dark .content figure img { - display: inline-block; } - html.theme--documenter-dark .content figure figcaption { - font-style: italic; } - html.theme--documenter-dark .content pre { - -webkit-overflow-scrolling: touch; - overflow-x: auto; - padding: 0; - white-space: pre; - word-wrap: normal; } - html.theme--documenter-dark .content sup, - html.theme--documenter-dark .content sub { - font-size: 75%; } - html.theme--documenter-dark .content table { - width: 100%; } - html.theme--documenter-dark .content table td, - html.theme--documenter-dark .content table th { - border: 1px solid #5e6d6f; - border-width: 0 0 1px; - padding: 0.5em 0.75em; - vertical-align: top; } - html.theme--documenter-dark .content table th { - color: #f2f2f2; } - html.theme--documenter-dark .content table th:not([align]) { - text-align: left; } - html.theme--documenter-dark .content table thead td, - html.theme--documenter-dark .content table thead th { - border-width: 0 0 2px; - color: #f2f2f2; } - html.theme--documenter-dark .content table tfoot td, - html.theme--documenter-dark .content table tfoot th { - border-width: 2px 0 0; - color: #f2f2f2; } - html.theme--documenter-dark .content table tbody tr:last-child td, - html.theme--documenter-dark .content table tbody tr:last-child th { - border-bottom-width: 0; } - html.theme--documenter-dark .content .tabs li + li { - margin-top: 0; } - html.theme--documenter-dark .content.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.content { - font-size: 0.85em; } - html.theme--documenter-dark .content.is-medium { - font-size: 1.25rem; } - html.theme--documenter-dark .content.is-large { - font-size: 1.5rem; } - html.theme--documenter-dark .icon { - align-items: center; - display: inline-flex; - justify-content: center; - height: 1.5rem; - width: 1.5rem; } - html.theme--documenter-dark .icon.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.icon { - height: 1rem; - width: 1rem; } - html.theme--documenter-dark .icon.is-medium { - height: 2rem; - width: 2rem; } - html.theme--documenter-dark .icon.is-large { - height: 3rem; - width: 3rem; } - html.theme--documenter-dark .image, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img { - display: block; - position: relative; } - html.theme--documenter-dark .image img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img img { - display: block; - height: auto; - width: 100%; } - html.theme--documenter-dark .image img.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img img.is-rounded { - border-radius: 290486px; } - html.theme--documenter-dark .image.is-square img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square img, - html.theme--documenter-dark .image.is-square .has-ratio, - html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, html.theme--documenter-dark .image.is-1by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 img, - html.theme--documenter-dark .image.is-1by1 .has-ratio, - html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, html.theme--documenter-dark .image.is-5by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 img, - html.theme--documenter-dark .image.is-5by4 .has-ratio, - html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, html.theme--documenter-dark .image.is-4by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 img, - html.theme--documenter-dark .image.is-4by3 .has-ratio, - html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, html.theme--documenter-dark .image.is-3by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 img, - html.theme--documenter-dark .image.is-3by2 .has-ratio, - html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, html.theme--documenter-dark .image.is-5by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 img, - html.theme--documenter-dark .image.is-5by3 .has-ratio, - html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, html.theme--documenter-dark .image.is-16by9 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 img, - html.theme--documenter-dark .image.is-16by9 .has-ratio, - html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, html.theme--documenter-dark .image.is-2by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 img, - html.theme--documenter-dark .image.is-2by1 .has-ratio, - html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, html.theme--documenter-dark .image.is-3by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 img, - html.theme--documenter-dark .image.is-3by1 .has-ratio, - html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, html.theme--documenter-dark .image.is-4by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 img, - html.theme--documenter-dark .image.is-4by5 .has-ratio, - html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, html.theme--documenter-dark .image.is-3by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 img, - html.theme--documenter-dark .image.is-3by4 .has-ratio, - html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, html.theme--documenter-dark .image.is-2by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 img, - html.theme--documenter-dark .image.is-2by3 .has-ratio, - html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, html.theme--documenter-dark .image.is-3by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 img, - html.theme--documenter-dark .image.is-3by5 .has-ratio, - html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, html.theme--documenter-dark .image.is-9by16 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 img, - html.theme--documenter-dark .image.is-9by16 .has-ratio, - html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, html.theme--documenter-dark .image.is-1by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 img, - html.theme--documenter-dark .image.is-1by2 .has-ratio, - html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, html.theme--documenter-dark .image.is-1by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 img, - html.theme--documenter-dark .image.is-1by3 .has-ratio, - html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio { - height: 100%; - width: 100%; } - html.theme--documenter-dark .image.is-square, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square, html.theme--documenter-dark .image.is-1by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 { - padding-top: 100%; } - html.theme--documenter-dark .image.is-5by4, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 { - padding-top: 80%; } - html.theme--documenter-dark .image.is-4by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 { - padding-top: 75%; } - html.theme--documenter-dark .image.is-3by2, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 { - padding-top: 66.6666%; } - html.theme--documenter-dark .image.is-5by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 { - padding-top: 60%; } - html.theme--documenter-dark .image.is-16by9, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 { - padding-top: 56.25%; } - html.theme--documenter-dark .image.is-2by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 { - padding-top: 50%; } - html.theme--documenter-dark .image.is-3by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 { - padding-top: 33.3333%; } - html.theme--documenter-dark .image.is-4by5, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 { - padding-top: 125%; } - html.theme--documenter-dark .image.is-3by4, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 { - padding-top: 133.3333%; } - html.theme--documenter-dark .image.is-2by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 { - padding-top: 150%; } - html.theme--documenter-dark .image.is-3by5, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 { - padding-top: 166.6666%; } - html.theme--documenter-dark .image.is-9by16, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 { - padding-top: 177.7777%; } - html.theme--documenter-dark .image.is-1by2, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 { - padding-top: 200%; } - html.theme--documenter-dark .image.is-1by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 { - padding-top: 300%; } - html.theme--documenter-dark .image.is-16x16, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16x16 { - height: 16px; - width: 16px; } - html.theme--documenter-dark .image.is-24x24, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-24x24 { - height: 24px; - width: 24px; } - html.theme--documenter-dark .image.is-32x32, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-32x32 { - height: 32px; - width: 32px; } - html.theme--documenter-dark .image.is-48x48, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-48x48 { - height: 48px; - width: 48px; } - html.theme--documenter-dark .image.is-64x64, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-64x64 { - height: 64px; - width: 64px; } - html.theme--documenter-dark .image.is-96x96, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-96x96 { - height: 96px; - width: 96px; } - html.theme--documenter-dark .image.is-128x128, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-128x128 { - height: 128px; - width: 128px; } - html.theme--documenter-dark .notification { - background-color: #282f2f; - border-radius: 0.4em; - padding: 1.25rem 2.5rem 1.25rem 1.5rem; - position: relative; } - html.theme--documenter-dark .notification a:not(.button):not(.dropdown-item) { - color: currentColor; - text-decoration: underline; } - html.theme--documenter-dark .notification strong { - color: currentColor; } - html.theme--documenter-dark .notification code, - html.theme--documenter-dark .notification pre { - background: white; } - html.theme--documenter-dark .notification pre code { - background: transparent; } - html.theme--documenter-dark .notification > .delete { - position: absolute; - right: 0.5rem; - top: 0.5rem; } - html.theme--documenter-dark .notification .title, - html.theme--documenter-dark .notification .subtitle, - html.theme--documenter-dark .notification .content { - color: currentColor; } - html.theme--documenter-dark .notification.is-white { - background-color: white; - color: #0a0a0a; } - html.theme--documenter-dark .notification.is-black { - background-color: #0a0a0a; - color: white; } - html.theme--documenter-dark .notification.is-light { - background-color: #ecf0f1; - color: #282f2f; } - html.theme--documenter-dark .notification.is-dark, html.theme--documenter-dark .content kbd.notification { - background-color: #282f2f; - color: #ecf0f1; } - html.theme--documenter-dark .notification.is-primary, html.theme--documenter-dark .docstring > section > a.notification.docs-sourcelink { - background-color: #375a7f; - color: #fff; } - html.theme--documenter-dark .notification.is-link { - background-color: #1abc9c; - color: #fff; } - html.theme--documenter-dark .notification.is-info { - background-color: #024c7d; - color: #fff; } - html.theme--documenter-dark .notification.is-success { - background-color: #008438; - color: #fff; } - html.theme--documenter-dark .notification.is-warning { - background-color: #ad8100; - color: #fff; } - html.theme--documenter-dark .notification.is-danger { - background-color: #9e1b0d; - color: #fff; } - html.theme--documenter-dark .progress { - -moz-appearance: none; - -webkit-appearance: none; - border: none; - border-radius: 290486px; - display: block; - height: 15px; - overflow: hidden; - padding: 0; - width: 100%; } - html.theme--documenter-dark .progress::-webkit-progress-bar { - background-color: #5e6d6f; } - html.theme--documenter-dark .progress::-webkit-progress-value { - background-color: #dbdee0; } - html.theme--documenter-dark .progress::-moz-progress-bar { - background-color: #dbdee0; } - html.theme--documenter-dark .progress::-ms-fill { - background-color: #dbdee0; - border: none; } - html.theme--documenter-dark .progress.is-white::-webkit-progress-value { - background-color: white; } - html.theme--documenter-dark .progress.is-white::-moz-progress-bar { - background-color: white; } - html.theme--documenter-dark .progress.is-white::-ms-fill { - background-color: white; } - html.theme--documenter-dark .progress.is-white:indeterminate { - background-image: linear-gradient(to right, white 30%, #5e6d6f 30%); } - html.theme--documenter-dark .progress.is-black::-webkit-progress-value { - background-color: #0a0a0a; } - html.theme--documenter-dark .progress.is-black::-moz-progress-bar { - background-color: #0a0a0a; } - html.theme--documenter-dark .progress.is-black::-ms-fill { - background-color: #0a0a0a; } - html.theme--documenter-dark .progress.is-black:indeterminate { - background-image: linear-gradient(to right, #0a0a0a 30%, #5e6d6f 30%); } - html.theme--documenter-dark .progress.is-light::-webkit-progress-value { - background-color: #ecf0f1; } - html.theme--documenter-dark .progress.is-light::-moz-progress-bar { - background-color: #ecf0f1; } - html.theme--documenter-dark .progress.is-light::-ms-fill { - background-color: #ecf0f1; } - html.theme--documenter-dark .progress.is-light:indeterminate { - background-image: linear-gradient(to right, #ecf0f1 30%, #5e6d6f 30%); } - html.theme--documenter-dark .progress.is-dark::-webkit-progress-value, html.theme--documenter-dark .content kbd.progress::-webkit-progress-value { - background-color: #282f2f; } - html.theme--documenter-dark .progress.is-dark::-moz-progress-bar, html.theme--documenter-dark .content kbd.progress::-moz-progress-bar { - background-color: #282f2f; } - html.theme--documenter-dark .progress.is-dark::-ms-fill, html.theme--documenter-dark .content kbd.progress::-ms-fill { - background-color: #282f2f; } - html.theme--documenter-dark .progress.is-dark:indeterminate, html.theme--documenter-dark .content kbd.progress:indeterminate { - background-image: linear-gradient(to right, #282f2f 30%, #5e6d6f 30%); } - html.theme--documenter-dark .progress.is-primary::-webkit-progress-value, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-webkit-progress-value { - background-color: #375a7f; } - html.theme--documenter-dark .progress.is-primary::-moz-progress-bar, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-moz-progress-bar { - background-color: #375a7f; } - html.theme--documenter-dark .progress.is-primary::-ms-fill, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-ms-fill { - background-color: #375a7f; } - html.theme--documenter-dark .progress.is-primary:indeterminate, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink:indeterminate { - background-image: linear-gradient(to right, #375a7f 30%, #5e6d6f 30%); } - html.theme--documenter-dark .progress.is-link::-webkit-progress-value { - background-color: #1abc9c; } - html.theme--documenter-dark .progress.is-link::-moz-progress-bar { - background-color: #1abc9c; } - html.theme--documenter-dark .progress.is-link::-ms-fill { - background-color: #1abc9c; } - html.theme--documenter-dark .progress.is-link:indeterminate { - background-image: linear-gradient(to right, #1abc9c 30%, #5e6d6f 30%); } - html.theme--documenter-dark .progress.is-info::-webkit-progress-value { - background-color: #024c7d; } - html.theme--documenter-dark .progress.is-info::-moz-progress-bar { - background-color: #024c7d; } - html.theme--documenter-dark .progress.is-info::-ms-fill { - background-color: #024c7d; } - html.theme--documenter-dark .progress.is-info:indeterminate { - background-image: linear-gradient(to right, #024c7d 30%, #5e6d6f 30%); } - html.theme--documenter-dark .progress.is-success::-webkit-progress-value { - background-color: #008438; } - html.theme--documenter-dark .progress.is-success::-moz-progress-bar { - background-color: #008438; } - html.theme--documenter-dark .progress.is-success::-ms-fill { - background-color: #008438; } - html.theme--documenter-dark .progress.is-success:indeterminate { - background-image: linear-gradient(to right, #008438 30%, #5e6d6f 30%); } - html.theme--documenter-dark .progress.is-warning::-webkit-progress-value { - background-color: #ad8100; } - html.theme--documenter-dark .progress.is-warning::-moz-progress-bar { - background-color: #ad8100; } - html.theme--documenter-dark .progress.is-warning::-ms-fill { - background-color: #ad8100; } - html.theme--documenter-dark .progress.is-warning:indeterminate { - background-image: linear-gradient(to right, #ad8100 30%, #5e6d6f 30%); } - html.theme--documenter-dark .progress.is-danger::-webkit-progress-value { - background-color: #9e1b0d; } - html.theme--documenter-dark .progress.is-danger::-moz-progress-bar { - background-color: #9e1b0d; } - html.theme--documenter-dark .progress.is-danger::-ms-fill { - background-color: #9e1b0d; } - html.theme--documenter-dark .progress.is-danger:indeterminate { - background-image: linear-gradient(to right, #9e1b0d 30%, #5e6d6f 30%); } - html.theme--documenter-dark .progress:indeterminate { - animation-duration: 1.5s; - animation-iteration-count: infinite; - animation-name: moveIndeterminate; - animation-timing-function: linear; - background-color: #5e6d6f; - background-image: linear-gradient(to right, #fff 30%, #5e6d6f 30%); - background-position: top left; - background-repeat: no-repeat; - background-size: 150% 150%; } - html.theme--documenter-dark .progress:indeterminate::-webkit-progress-bar { - background-color: transparent; } - html.theme--documenter-dark .progress:indeterminate::-moz-progress-bar { - background-color: transparent; } - html.theme--documenter-dark .progress.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.progress { - height: 0.85em; } - html.theme--documenter-dark .progress.is-medium { - height: 1.25rem; } - html.theme--documenter-dark .progress.is-large { - height: 1.5rem; } - -@keyframes moveIndeterminate { - from { - background-position: 200% 0; } - to { - background-position: -200% 0; } } - html.theme--documenter-dark .table { - background-color: #343c3d; - color: #fff; } - html.theme--documenter-dark .table td, - html.theme--documenter-dark .table th { - border: 1px solid #5e6d6f; - border-width: 0 0 1px; - padding: 0.5em 0.75em; - vertical-align: top; } - html.theme--documenter-dark .table td.is-white, - html.theme--documenter-dark .table th.is-white { - background-color: white; - border-color: white; - color: #0a0a0a; } - html.theme--documenter-dark .table td.is-black, - html.theme--documenter-dark .table th.is-black { - background-color: #0a0a0a; - border-color: #0a0a0a; - color: white; } - html.theme--documenter-dark .table td.is-light, - html.theme--documenter-dark .table th.is-light { - background-color: #ecf0f1; - border-color: #ecf0f1; - color: #282f2f; } - html.theme--documenter-dark .table td.is-dark, - html.theme--documenter-dark .table th.is-dark { - background-color: #282f2f; - border-color: #282f2f; - color: #ecf0f1; } - html.theme--documenter-dark .table td.is-primary, - html.theme--documenter-dark .table th.is-primary { - background-color: #375a7f; - border-color: #375a7f; - color: #fff; } - html.theme--documenter-dark .table td.is-link, - html.theme--documenter-dark .table th.is-link { - background-color: #1abc9c; - border-color: #1abc9c; - color: #fff; } - html.theme--documenter-dark .table td.is-info, - html.theme--documenter-dark .table th.is-info { - background-color: #024c7d; - border-color: #024c7d; - color: #fff; } - html.theme--documenter-dark .table td.is-success, - html.theme--documenter-dark .table th.is-success { - background-color: #008438; - border-color: #008438; - color: #fff; } - html.theme--documenter-dark .table td.is-warning, - html.theme--documenter-dark .table th.is-warning { - background-color: #ad8100; - border-color: #ad8100; - color: #fff; } - html.theme--documenter-dark .table td.is-danger, - html.theme--documenter-dark .table th.is-danger { - background-color: #9e1b0d; - border-color: #9e1b0d; - color: #fff; } - html.theme--documenter-dark .table td.is-narrow, - html.theme--documenter-dark .table th.is-narrow { - white-space: nowrap; - width: 1%; } - html.theme--documenter-dark .table td.is-selected, - html.theme--documenter-dark .table th.is-selected { - background-color: #375a7f; - color: #fff; } - html.theme--documenter-dark .table td.is-selected a, - html.theme--documenter-dark .table td.is-selected strong, - html.theme--documenter-dark .table th.is-selected a, - html.theme--documenter-dark .table th.is-selected strong { - color: currentColor; } - html.theme--documenter-dark .table th { - color: #f2f2f2; } - html.theme--documenter-dark .table th:not([align]) { - text-align: left; } - html.theme--documenter-dark .table tr.is-selected { - background-color: #375a7f; - color: #fff; } - html.theme--documenter-dark .table tr.is-selected a, - html.theme--documenter-dark .table tr.is-selected strong { - color: currentColor; } - html.theme--documenter-dark .table tr.is-selected td, - html.theme--documenter-dark .table tr.is-selected th { - border-color: #fff; - color: currentColor; } - html.theme--documenter-dark .table thead { - background-color: transparent; } - html.theme--documenter-dark .table thead td, - html.theme--documenter-dark .table thead th { - border-width: 0 0 2px; - color: #f2f2f2; } - html.theme--documenter-dark .table tfoot { - background-color: transparent; } - html.theme--documenter-dark .table tfoot td, - html.theme--documenter-dark .table tfoot th { - border-width: 2px 0 0; - color: #f2f2f2; } - html.theme--documenter-dark .table tbody { - background-color: transparent; } - html.theme--documenter-dark .table tbody tr:last-child td, - html.theme--documenter-dark .table tbody tr:last-child th { - border-bottom-width: 0; } - html.theme--documenter-dark .table.is-bordered td, - html.theme--documenter-dark .table.is-bordered th { - border-width: 1px; } - html.theme--documenter-dark .table.is-bordered tr:last-child td, - html.theme--documenter-dark .table.is-bordered tr:last-child th { - border-bottom-width: 1px; } - html.theme--documenter-dark .table.is-fullwidth { - width: 100%; } - html.theme--documenter-dark .table.is-hoverable tbody tr:not(.is-selected):hover { - background-color: #282f2f; } - html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover { - background-color: #282f2f; } - html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even) { - background-color: #2d3435; } - html.theme--documenter-dark .table.is-narrow td, - html.theme--documenter-dark .table.is-narrow th { - padding: 0.25em 0.5em; } - html.theme--documenter-dark .table.is-striped tbody tr:not(.is-selected):nth-child(even) { - background-color: #282f2f; } - html.theme--documenter-dark .table-container { - -webkit-overflow-scrolling: touch; - overflow: auto; - overflow-y: hidden; - max-width: 100%; } - html.theme--documenter-dark .tags { - align-items: center; - display: flex; - flex-wrap: wrap; - justify-content: flex-start; } - html.theme--documenter-dark .tags .tag, html.theme--documenter-dark .tags .content kbd, html.theme--documenter-dark .content .tags kbd, html.theme--documenter-dark .tags .docstring > section > a.docs-sourcelink { - margin-bottom: 0.5rem; } - html.theme--documenter-dark .tags .tag:not(:last-child), html.theme--documenter-dark .tags .content kbd:not(:last-child), html.theme--documenter-dark .content .tags kbd:not(:last-child), html.theme--documenter-dark .tags .docstring > section > a.docs-sourcelink:not(:last-child) { - margin-right: 0.5rem; } - html.theme--documenter-dark .tags:last-child { - margin-bottom: -0.5rem; } - html.theme--documenter-dark .tags:not(:last-child) { - margin-bottom: 1rem; } - html.theme--documenter-dark .tags.are-medium .tag:not(.is-normal):not(.is-large), html.theme--documenter-dark .tags.are-medium .content kbd:not(.is-normal):not(.is-large), html.theme--documenter-dark .content .tags.are-medium kbd:not(.is-normal):not(.is-large), html.theme--documenter-dark .tags.are-medium .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-large) { - font-size: 15px; } - html.theme--documenter-dark .tags.are-large .tag:not(.is-normal):not(.is-medium), html.theme--documenter-dark .tags.are-large .content kbd:not(.is-normal):not(.is-medium), html.theme--documenter-dark .content .tags.are-large kbd:not(.is-normal):not(.is-medium), html.theme--documenter-dark .tags.are-large .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-medium) { - font-size: 1.25rem; } - html.theme--documenter-dark .tags.is-centered { - justify-content: center; } - html.theme--documenter-dark .tags.is-centered .tag, html.theme--documenter-dark .tags.is-centered .content kbd, html.theme--documenter-dark .content .tags.is-centered kbd, html.theme--documenter-dark .tags.is-centered .docstring > section > a.docs-sourcelink { - margin-right: 0.25rem; - margin-left: 0.25rem; } - html.theme--documenter-dark .tags.is-right { - justify-content: flex-end; } - html.theme--documenter-dark .tags.is-right .tag:not(:first-child), html.theme--documenter-dark .tags.is-right .content kbd:not(:first-child), html.theme--documenter-dark .content .tags.is-right kbd:not(:first-child), html.theme--documenter-dark .tags.is-right .docstring > section > a.docs-sourcelink:not(:first-child) { - margin-left: 0.5rem; } - html.theme--documenter-dark .tags.is-right .tag:not(:last-child), html.theme--documenter-dark .tags.is-right .content kbd:not(:last-child), html.theme--documenter-dark .content .tags.is-right kbd:not(:last-child), html.theme--documenter-dark .tags.is-right .docstring > section > a.docs-sourcelink:not(:last-child) { - margin-right: 0; } - html.theme--documenter-dark .tags.has-addons .tag, html.theme--documenter-dark .tags.has-addons .content kbd, html.theme--documenter-dark .content .tags.has-addons kbd, html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink { - margin-right: 0; } - html.theme--documenter-dark .tags.has-addons .tag:not(:first-child), html.theme--documenter-dark .tags.has-addons .content kbd:not(:first-child), html.theme--documenter-dark .content .tags.has-addons kbd:not(:first-child), html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink:not(:first-child) { - margin-left: 0; - border-bottom-left-radius: 0; - border-top-left-radius: 0; } - html.theme--documenter-dark .tags.has-addons .tag:not(:last-child), html.theme--documenter-dark .tags.has-addons .content kbd:not(:last-child), html.theme--documenter-dark .content .tags.has-addons kbd:not(:last-child), html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink:not(:last-child) { - border-bottom-right-radius: 0; - border-top-right-radius: 0; } - html.theme--documenter-dark .tag:not(body), html.theme--documenter-dark .content kbd:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) { - align-items: center; - background-color: #282f2f; - border-radius: 0.4em; - color: #fff; - display: inline-flex; - font-size: 0.85em; - height: 2em; - justify-content: center; - line-height: 1.5; - padding-left: 0.75em; - padding-right: 0.75em; - white-space: nowrap; } - html.theme--documenter-dark .tag:not(body) .delete, html.theme--documenter-dark .content kbd:not(body) .delete, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .delete { - margin-left: 0.25rem; - margin-right: -0.375rem; } - html.theme--documenter-dark .tag.is-white:not(body), html.theme--documenter-dark .content kbd.is-white:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-white:not(body) { - background-color: white; - color: #0a0a0a; } - html.theme--documenter-dark .tag.is-black:not(body), html.theme--documenter-dark .content kbd.is-black:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-black:not(body) { - background-color: #0a0a0a; - color: white; } - html.theme--documenter-dark .tag.is-light:not(body), html.theme--documenter-dark .content kbd.is-light:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-light:not(body) { - background-color: #ecf0f1; - color: #282f2f; } - html.theme--documenter-dark .tag.is-dark:not(body), html.theme--documenter-dark .content kbd:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-dark:not(body), html.theme--documenter-dark .content .docstring > section > kbd:not(body) { - background-color: #282f2f; - color: #ecf0f1; } - html.theme--documenter-dark .tag.is-primary:not(body), html.theme--documenter-dark .content kbd.is-primary:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) { - background-color: #375a7f; - color: #fff; } - html.theme--documenter-dark .tag.is-link:not(body), html.theme--documenter-dark .content kbd.is-link:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-link:not(body) { - background-color: #1abc9c; - color: #fff; } - html.theme--documenter-dark .tag.is-info:not(body), html.theme--documenter-dark .content kbd.is-info:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-info:not(body) { - background-color: #024c7d; - color: #fff; } - html.theme--documenter-dark .tag.is-success:not(body), html.theme--documenter-dark .content kbd.is-success:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-success:not(body) { - background-color: #008438; - color: #fff; } - html.theme--documenter-dark .tag.is-warning:not(body), html.theme--documenter-dark .content kbd.is-warning:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-warning:not(body) { - background-color: #ad8100; - color: #fff; } - html.theme--documenter-dark .tag.is-danger:not(body), html.theme--documenter-dark .content kbd.is-danger:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-danger:not(body) { - background-color: #9e1b0d; - color: #fff; } - html.theme--documenter-dark .tag.is-normal:not(body), html.theme--documenter-dark .content kbd.is-normal:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-normal:not(body) { - font-size: 0.85em; } - html.theme--documenter-dark .tag.is-medium:not(body), html.theme--documenter-dark .content kbd.is-medium:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-medium:not(body) { - font-size: 15px; } - html.theme--documenter-dark .tag.is-large:not(body), html.theme--documenter-dark .content kbd.is-large:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-large:not(body) { - font-size: 1.25rem; } - html.theme--documenter-dark .tag:not(body) .icon:first-child:not(:last-child), html.theme--documenter-dark .content kbd:not(body) .icon:first-child:not(:last-child), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:not(:last-child) { - margin-left: -0.375em; - margin-right: 0.1875em; } - html.theme--documenter-dark .tag:not(body) .icon:last-child:not(:first-child), html.theme--documenter-dark .content kbd:not(body) .icon:last-child:not(:first-child), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:last-child:not(:first-child) { - margin-left: 0.1875em; - margin-right: -0.375em; } - html.theme--documenter-dark .tag:not(body) .icon:first-child:last-child, html.theme--documenter-dark .content kbd:not(body) .icon:first-child:last-child, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:last-child { - margin-left: -0.375em; - margin-right: -0.375em; } - html.theme--documenter-dark .tag.is-delete:not(body), html.theme--documenter-dark .content kbd.is-delete:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body) { - margin-left: 1px; - padding: 0; - position: relative; - width: 2em; } - html.theme--documenter-dark .tag.is-delete:not(body)::before, html.theme--documenter-dark .content kbd.is-delete:not(body)::before, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::before, html.theme--documenter-dark .tag.is-delete:not(body)::after, html.theme--documenter-dark .content kbd.is-delete:not(body)::after, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { - background-color: currentColor; - content: ""; - display: block; - left: 50%; - position: absolute; - top: 50%; - transform: translateX(-50%) translateY(-50%) rotate(45deg); - transform-origin: center center; } - html.theme--documenter-dark .tag.is-delete:not(body)::before, html.theme--documenter-dark .content kbd.is-delete:not(body)::before, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::before { - height: 1px; - width: 50%; } - html.theme--documenter-dark .tag.is-delete:not(body)::after, html.theme--documenter-dark .content kbd.is-delete:not(body)::after, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { - height: 50%; - width: 1px; } - html.theme--documenter-dark .tag.is-delete:not(body):hover, html.theme--documenter-dark .content kbd.is-delete:not(body):hover, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):hover, html.theme--documenter-dark .tag.is-delete:not(body):focus, html.theme--documenter-dark .content kbd.is-delete:not(body):focus, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):focus { - background-color: #1d2122; } - html.theme--documenter-dark .tag.is-delete:not(body):active, html.theme--documenter-dark .content kbd.is-delete:not(body):active, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):active { - background-color: #111414; } - html.theme--documenter-dark .tag.is-rounded:not(body), html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:not(body), html.theme--documenter-dark .content kbd.is-rounded:not(body), html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search > input:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-rounded:not(body) { - border-radius: 290486px; } - html.theme--documenter-dark a.tag:hover, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:hover { - text-decoration: underline; } - html.theme--documenter-dark .title, - html.theme--documenter-dark .subtitle { - word-break: break-word; } - html.theme--documenter-dark .title em, - html.theme--documenter-dark .title span, - html.theme--documenter-dark .subtitle em, - html.theme--documenter-dark .subtitle span { - font-weight: inherit; } - html.theme--documenter-dark .title sub, - html.theme--documenter-dark .subtitle sub { - font-size: 0.75em; } - html.theme--documenter-dark .title sup, - html.theme--documenter-dark .subtitle sup { - font-size: 0.75em; } - html.theme--documenter-dark .title .tag, html.theme--documenter-dark .title .content kbd, html.theme--documenter-dark .content .title kbd, html.theme--documenter-dark .title .docstring > section > a.docs-sourcelink, - html.theme--documenter-dark .subtitle .tag, - html.theme--documenter-dark .subtitle .content kbd, - html.theme--documenter-dark .content .subtitle kbd, - html.theme--documenter-dark .subtitle .docstring > section > a.docs-sourcelink { - vertical-align: middle; } - html.theme--documenter-dark .title { - color: #fff; - font-size: 2rem; - font-weight: 500; - line-height: 1.125; } - html.theme--documenter-dark .title strong { - color: inherit; - font-weight: inherit; } - html.theme--documenter-dark .title + .highlight { - margin-top: -0.75rem; } - html.theme--documenter-dark .title:not(.is-spaced) + .subtitle { - margin-top: -1.25rem; } - html.theme--documenter-dark .title.is-1 { - font-size: 3rem; } - html.theme--documenter-dark .title.is-2 { - font-size: 2.5rem; } - html.theme--documenter-dark .title.is-3 { - font-size: 2rem; } - html.theme--documenter-dark .title.is-4 { - font-size: 1.5rem; } - html.theme--documenter-dark .title.is-5 { - font-size: 1.25rem; } - html.theme--documenter-dark .title.is-6 { - font-size: 15px; } - html.theme--documenter-dark .title.is-7 { - font-size: 0.85em; } - html.theme--documenter-dark .subtitle { - color: #8c9b9d; - font-size: 1.25rem; - font-weight: 400; - line-height: 1.25; } - html.theme--documenter-dark .subtitle strong { - color: #8c9b9d; - font-weight: 600; } - html.theme--documenter-dark .subtitle:not(.is-spaced) + .title { - margin-top: -1.25rem; } - html.theme--documenter-dark .subtitle.is-1 { - font-size: 3rem; } - html.theme--documenter-dark .subtitle.is-2 { - font-size: 2.5rem; } - html.theme--documenter-dark .subtitle.is-3 { - font-size: 2rem; } - html.theme--documenter-dark .subtitle.is-4 { - font-size: 1.5rem; } - html.theme--documenter-dark .subtitle.is-5 { - font-size: 1.25rem; } - html.theme--documenter-dark .subtitle.is-6 { - font-size: 15px; } - html.theme--documenter-dark .subtitle.is-7 { - font-size: 0.85em; } - html.theme--documenter-dark .heading { - display: block; - font-size: 11px; - letter-spacing: 1px; - margin-bottom: 5px; - text-transform: uppercase; } - html.theme--documenter-dark .highlight { - font-weight: 400; - max-width: 100%; - overflow: hidden; - padding: 0; } - html.theme--documenter-dark .highlight pre { - overflow: auto; - max-width: 100%; } - html.theme--documenter-dark .number { - align-items: center; - background-color: #282f2f; - border-radius: 290486px; - display: inline-flex; - font-size: 1.25rem; - height: 2em; - justify-content: center; - margin-right: 1.5rem; - min-width: 2.5em; - padding: 0.25rem 0.5rem; - text-align: center; - vertical-align: top; } - html.theme--documenter-dark .select select, html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { - background-color: #1f2424; - border-color: #5e6d6f; - border-radius: 0.4em; - color: #dbdee0; } - html.theme--documenter-dark .select select::-moz-placeholder, html.theme--documenter-dark .textarea::-moz-placeholder, html.theme--documenter-dark .input::-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-moz-placeholder { - color: rgba(219, 222, 224, 0.3); } - html.theme--documenter-dark .select select::-webkit-input-placeholder, html.theme--documenter-dark .textarea::-webkit-input-placeholder, html.theme--documenter-dark .input::-webkit-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder { - color: rgba(219, 222, 224, 0.3); } - html.theme--documenter-dark .select select:-moz-placeholder, html.theme--documenter-dark .textarea:-moz-placeholder, html.theme--documenter-dark .input:-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-moz-placeholder { - color: rgba(219, 222, 224, 0.3); } - html.theme--documenter-dark .select select:-ms-input-placeholder, html.theme--documenter-dark .textarea:-ms-input-placeholder, html.theme--documenter-dark .input:-ms-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder { - color: rgba(219, 222, 224, 0.3); } - html.theme--documenter-dark .select select:hover, html.theme--documenter-dark .textarea:hover, html.theme--documenter-dark .input:hover, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:hover, html.theme--documenter-dark .select select.is-hovered, html.theme--documenter-dark .is-hovered.textarea, html.theme--documenter-dark .is-hovered.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-hovered { - border-color: #8c9b9d; } - html.theme--documenter-dark .select select:focus, html.theme--documenter-dark .textarea:focus, html.theme--documenter-dark .input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:focus, html.theme--documenter-dark .select select.is-focused, html.theme--documenter-dark .is-focused.textarea, html.theme--documenter-dark .is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .select select:active, html.theme--documenter-dark .textarea:active, html.theme--documenter-dark .input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:active, html.theme--documenter-dark .select select.is-active, html.theme--documenter-dark .is-active.textarea, html.theme--documenter-dark .is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { - border-color: #1abc9c; - box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } - html.theme--documenter-dark .select select[disabled], html.theme--documenter-dark .textarea[disabled], html.theme--documenter-dark .input[disabled], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled], fieldset[disabled] html.theme--documenter-dark .select select, fieldset[disabled] html.theme--documenter-dark .textarea, fieldset[disabled] html.theme--documenter-dark .input, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { - background-color: #8c9b9d; - border-color: #282f2f; - box-shadow: none; - color: white; } - html.theme--documenter-dark .select select[disabled]::-moz-placeholder, html.theme--documenter-dark .textarea[disabled]::-moz-placeholder, html.theme--documenter-dark .input[disabled]::-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .select select::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .input::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-moz-placeholder { - color: rgba(255, 255, 255, 0.3); } - html.theme--documenter-dark .select select[disabled]::-webkit-input-placeholder, html.theme--documenter-dark .textarea[disabled]::-webkit-input-placeholder, html.theme--documenter-dark .input[disabled]::-webkit-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .select select::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .input::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder { - color: rgba(255, 255, 255, 0.3); } - html.theme--documenter-dark .select select[disabled]:-moz-placeholder, html.theme--documenter-dark .textarea[disabled]:-moz-placeholder, html.theme--documenter-dark .input[disabled]:-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .select select:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .input:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-moz-placeholder { - color: rgba(255, 255, 255, 0.3); } - html.theme--documenter-dark .select select[disabled]:-ms-input-placeholder, html.theme--documenter-dark .textarea[disabled]:-ms-input-placeholder, html.theme--documenter-dark .input[disabled]:-ms-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .select select:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .input:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder { - color: rgba(255, 255, 255, 0.3); } - html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { - box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1); - max-width: 100%; - width: 100%; } - html.theme--documenter-dark .textarea[readonly], html.theme--documenter-dark .input[readonly], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[readonly] { - box-shadow: none; } - html.theme--documenter-dark .is-white.textarea, html.theme--documenter-dark .is-white.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white { - border-color: white; } - html.theme--documenter-dark .is-white.textarea:focus, html.theme--documenter-dark .is-white.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white:focus, html.theme--documenter-dark .is-white.is-focused.textarea, html.theme--documenter-dark .is-white.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-white.textarea:active, html.theme--documenter-dark .is-white.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white:active, html.theme--documenter-dark .is-white.is-active.textarea, html.theme--documenter-dark .is-white.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { - box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } - html.theme--documenter-dark .is-black.textarea, html.theme--documenter-dark .is-black.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black { - border-color: #0a0a0a; } - html.theme--documenter-dark .is-black.textarea:focus, html.theme--documenter-dark .is-black.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black:focus, html.theme--documenter-dark .is-black.is-focused.textarea, html.theme--documenter-dark .is-black.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-black.textarea:active, html.theme--documenter-dark .is-black.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black:active, html.theme--documenter-dark .is-black.is-active.textarea, html.theme--documenter-dark .is-black.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { - box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } - html.theme--documenter-dark .is-light.textarea, html.theme--documenter-dark .is-light.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light { - border-color: #ecf0f1; } - html.theme--documenter-dark .is-light.textarea:focus, html.theme--documenter-dark .is-light.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light:focus, html.theme--documenter-dark .is-light.is-focused.textarea, html.theme--documenter-dark .is-light.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-light.textarea:active, html.theme--documenter-dark .is-light.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light:active, html.theme--documenter-dark .is-light.is-active.textarea, html.theme--documenter-dark .is-light.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { - box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); } - html.theme--documenter-dark .is-dark.textarea, html.theme--documenter-dark .content kbd.textarea, html.theme--documenter-dark .is-dark.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark, html.theme--documenter-dark .content kbd.input { - border-color: #282f2f; } - html.theme--documenter-dark .is-dark.textarea:focus, html.theme--documenter-dark .content kbd.textarea:focus, html.theme--documenter-dark .is-dark.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark:focus, html.theme--documenter-dark .content kbd.input:focus, html.theme--documenter-dark .is-dark.is-focused.textarea, html.theme--documenter-dark .content kbd.is-focused.textarea, html.theme--documenter-dark .is-dark.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .content kbd.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search > input.is-focused, html.theme--documenter-dark .is-dark.textarea:active, html.theme--documenter-dark .content kbd.textarea:active, html.theme--documenter-dark .is-dark.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark:active, html.theme--documenter-dark .content kbd.input:active, html.theme--documenter-dark .is-dark.is-active.textarea, html.theme--documenter-dark .content kbd.is-active.textarea, html.theme--documenter-dark .is-dark.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .content kbd.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search > input.is-active { - box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); } - html.theme--documenter-dark .is-primary.textarea, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink, html.theme--documenter-dark .is-primary.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink { - border-color: #375a7f; } - html.theme--documenter-dark .is-primary.textarea:focus, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink:focus, html.theme--documenter-dark .is-primary.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary:focus, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink:focus, html.theme--documenter-dark .is-primary.is-focused.textarea, html.theme--documenter-dark .docstring > section > a.is-focused.textarea.docs-sourcelink, html.theme--documenter-dark .is-primary.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .docstring > section > a.is-focused.input.docs-sourcelink, html.theme--documenter-dark .is-primary.textarea:active, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink:active, html.theme--documenter-dark .is-primary.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary:active, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink:active, html.theme--documenter-dark .is-primary.is-active.textarea, html.theme--documenter-dark .docstring > section > a.is-active.textarea.docs-sourcelink, html.theme--documenter-dark .is-primary.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .docstring > section > a.is-active.input.docs-sourcelink { - box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); } - html.theme--documenter-dark .is-link.textarea, html.theme--documenter-dark .is-link.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link { - border-color: #1abc9c; } - html.theme--documenter-dark .is-link.textarea:focus, html.theme--documenter-dark .is-link.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link:focus, html.theme--documenter-dark .is-link.is-focused.textarea, html.theme--documenter-dark .is-link.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-link.textarea:active, html.theme--documenter-dark .is-link.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link:active, html.theme--documenter-dark .is-link.is-active.textarea, html.theme--documenter-dark .is-link.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { - box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } - html.theme--documenter-dark .is-info.textarea, html.theme--documenter-dark .is-info.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info { - border-color: #024c7d; } - html.theme--documenter-dark .is-info.textarea:focus, html.theme--documenter-dark .is-info.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info:focus, html.theme--documenter-dark .is-info.is-focused.textarea, html.theme--documenter-dark .is-info.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-info.textarea:active, html.theme--documenter-dark .is-info.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info:active, html.theme--documenter-dark .is-info.is-active.textarea, html.theme--documenter-dark .is-info.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { - box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); } - html.theme--documenter-dark .is-success.textarea, html.theme--documenter-dark .is-success.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success { - border-color: #008438; } - html.theme--documenter-dark .is-success.textarea:focus, html.theme--documenter-dark .is-success.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success:focus, html.theme--documenter-dark .is-success.is-focused.textarea, html.theme--documenter-dark .is-success.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-success.textarea:active, html.theme--documenter-dark .is-success.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success:active, html.theme--documenter-dark .is-success.is-active.textarea, html.theme--documenter-dark .is-success.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { - box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); } - html.theme--documenter-dark .is-warning.textarea, html.theme--documenter-dark .is-warning.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning { - border-color: #ad8100; } - html.theme--documenter-dark .is-warning.textarea:focus, html.theme--documenter-dark .is-warning.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning:focus, html.theme--documenter-dark .is-warning.is-focused.textarea, html.theme--documenter-dark .is-warning.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-warning.textarea:active, html.theme--documenter-dark .is-warning.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning:active, html.theme--documenter-dark .is-warning.is-active.textarea, html.theme--documenter-dark .is-warning.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { - box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); } - html.theme--documenter-dark .is-danger.textarea, html.theme--documenter-dark .is-danger.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger { - border-color: #9e1b0d; } - html.theme--documenter-dark .is-danger.textarea:focus, html.theme--documenter-dark .is-danger.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger:focus, html.theme--documenter-dark .is-danger.is-focused.textarea, html.theme--documenter-dark .is-danger.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-danger.textarea:active, html.theme--documenter-dark .is-danger.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger:active, html.theme--documenter-dark .is-danger.is-active.textarea, html.theme--documenter-dark .is-danger.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { - box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); } - html.theme--documenter-dark .is-small.textarea, html.theme--documenter-dark .is-small.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { - border-radius: 3px; - font-size: 0.85em; } - html.theme--documenter-dark .is-medium.textarea, html.theme--documenter-dark .is-medium.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-medium { - font-size: 1.25rem; } - html.theme--documenter-dark .is-large.textarea, html.theme--documenter-dark .is-large.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-large { - font-size: 1.5rem; } - html.theme--documenter-dark .is-fullwidth.textarea, html.theme--documenter-dark .is-fullwidth.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-fullwidth { - display: block; - width: 100%; } - html.theme--documenter-dark .is-inline.textarea, html.theme--documenter-dark .is-inline.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-inline { - display: inline; - width: auto; } - html.theme--documenter-dark .input.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { - border-radius: 290486px; - padding-left: 1em; - padding-right: 1em; } - html.theme--documenter-dark .input.is-static, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-static { - background-color: transparent; - border-color: transparent; - box-shadow: none; - padding-left: 0; - padding-right: 0; } - html.theme--documenter-dark .textarea { - display: block; - max-width: 100%; - min-width: 100%; - padding: 0.625em; - resize: vertical; } - html.theme--documenter-dark .textarea:not([rows]) { - max-height: 600px; - min-height: 120px; } - html.theme--documenter-dark .textarea[rows] { - height: initial; } - html.theme--documenter-dark .textarea.has-fixed-size { - resize: none; } - html.theme--documenter-dark .radio, html.theme--documenter-dark .checkbox { - cursor: pointer; - display: inline-block; - line-height: 1.25; - position: relative; } - html.theme--documenter-dark .radio input, html.theme--documenter-dark .checkbox input { - cursor: pointer; } - html.theme--documenter-dark .radio:hover, html.theme--documenter-dark .checkbox:hover { - color: #8c9b9d; } - html.theme--documenter-dark .radio[disabled], html.theme--documenter-dark .checkbox[disabled], fieldset[disabled] html.theme--documenter-dark .radio, fieldset[disabled] html.theme--documenter-dark .checkbox { - color: white; - cursor: not-allowed; } - html.theme--documenter-dark .radio + .radio { - margin-left: 0.5em; } - html.theme--documenter-dark .select { - display: inline-block; - max-width: 100%; - position: relative; - vertical-align: top; } - html.theme--documenter-dark .select:not(.is-multiple) { - height: 2.25em; } - html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after { - border-color: #1abc9c; - right: 1.125em; - z-index: 4; } - html.theme--documenter-dark .select.is-rounded select, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.select select { - border-radius: 290486px; - padding-left: 1em; } - html.theme--documenter-dark .select select { - cursor: pointer; - display: block; - font-size: 1em; - max-width: 100%; - outline: none; } - html.theme--documenter-dark .select select::-ms-expand { - display: none; } - html.theme--documenter-dark .select select[disabled]:hover, fieldset[disabled] html.theme--documenter-dark .select select:hover { - border-color: #282f2f; } - html.theme--documenter-dark .select select:not([multiple]) { - padding-right: 2.5em; } - html.theme--documenter-dark .select select[multiple] { - height: auto; - padding: 0; } - html.theme--documenter-dark .select select[multiple] option { - padding: 0.5em 1em; } - html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading):hover::after { - border-color: #8c9b9d; } - html.theme--documenter-dark .select.is-white:not(:hover)::after { - border-color: white; } - html.theme--documenter-dark .select.is-white select { - border-color: white; } - html.theme--documenter-dark .select.is-white select:hover, html.theme--documenter-dark .select.is-white select.is-hovered { - border-color: #f2f2f2; } - html.theme--documenter-dark .select.is-white select:focus, html.theme--documenter-dark .select.is-white select.is-focused, html.theme--documenter-dark .select.is-white select:active, html.theme--documenter-dark .select.is-white select.is-active { - box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } - html.theme--documenter-dark .select.is-black:not(:hover)::after { - border-color: #0a0a0a; } - html.theme--documenter-dark .select.is-black select { - border-color: #0a0a0a; } - html.theme--documenter-dark .select.is-black select:hover, html.theme--documenter-dark .select.is-black select.is-hovered { - border-color: black; } - html.theme--documenter-dark .select.is-black select:focus, html.theme--documenter-dark .select.is-black select.is-focused, html.theme--documenter-dark .select.is-black select:active, html.theme--documenter-dark .select.is-black select.is-active { - box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } - html.theme--documenter-dark .select.is-light:not(:hover)::after { - border-color: #ecf0f1; } - html.theme--documenter-dark .select.is-light select { - border-color: #ecf0f1; } - html.theme--documenter-dark .select.is-light select:hover, html.theme--documenter-dark .select.is-light select.is-hovered { - border-color: #dde4e6; } - html.theme--documenter-dark .select.is-light select:focus, html.theme--documenter-dark .select.is-light select.is-focused, html.theme--documenter-dark .select.is-light select:active, html.theme--documenter-dark .select.is-light select.is-active { - box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); } - html.theme--documenter-dark .select.is-dark:not(:hover)::after, html.theme--documenter-dark .content kbd.select:not(:hover)::after { - border-color: #282f2f; } - html.theme--documenter-dark .select.is-dark select, html.theme--documenter-dark .content kbd.select select { - border-color: #282f2f; } - html.theme--documenter-dark .select.is-dark select:hover, html.theme--documenter-dark .content kbd.select select:hover, html.theme--documenter-dark .select.is-dark select.is-hovered, html.theme--documenter-dark .content kbd.select select.is-hovered { - border-color: #1d2122; } - html.theme--documenter-dark .select.is-dark select:focus, html.theme--documenter-dark .content kbd.select select:focus, html.theme--documenter-dark .select.is-dark select.is-focused, html.theme--documenter-dark .content kbd.select select.is-focused, html.theme--documenter-dark .select.is-dark select:active, html.theme--documenter-dark .content kbd.select select:active, html.theme--documenter-dark .select.is-dark select.is-active, html.theme--documenter-dark .content kbd.select select.is-active { - box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); } - html.theme--documenter-dark .select.is-primary:not(:hover)::after, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink:not(:hover)::after { - border-color: #375a7f; } - html.theme--documenter-dark .select.is-primary select, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select { - border-color: #375a7f; } - html.theme--documenter-dark .select.is-primary select:hover, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:hover, html.theme--documenter-dark .select.is-primary select.is-hovered, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-hovered { - border-color: #2f4d6d; } - html.theme--documenter-dark .select.is-primary select:focus, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:focus, html.theme--documenter-dark .select.is-primary select.is-focused, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-focused, html.theme--documenter-dark .select.is-primary select:active, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:active, html.theme--documenter-dark .select.is-primary select.is-active, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-active { - box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); } - html.theme--documenter-dark .select.is-link:not(:hover)::after { - border-color: #1abc9c; } - html.theme--documenter-dark .select.is-link select { - border-color: #1abc9c; } - html.theme--documenter-dark .select.is-link select:hover, html.theme--documenter-dark .select.is-link select.is-hovered { - border-color: #17a689; } - html.theme--documenter-dark .select.is-link select:focus, html.theme--documenter-dark .select.is-link select.is-focused, html.theme--documenter-dark .select.is-link select:active, html.theme--documenter-dark .select.is-link select.is-active { - box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } - html.theme--documenter-dark .select.is-info:not(:hover)::after { - border-color: #024c7d; } - html.theme--documenter-dark .select.is-info select { - border-color: #024c7d; } - html.theme--documenter-dark .select.is-info select:hover, html.theme--documenter-dark .select.is-info select.is-hovered { - border-color: #023d64; } - html.theme--documenter-dark .select.is-info select:focus, html.theme--documenter-dark .select.is-info select.is-focused, html.theme--documenter-dark .select.is-info select:active, html.theme--documenter-dark .select.is-info select.is-active { - box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); } - html.theme--documenter-dark .select.is-success:not(:hover)::after { - border-color: #008438; } - html.theme--documenter-dark .select.is-success select { - border-color: #008438; } - html.theme--documenter-dark .select.is-success select:hover, html.theme--documenter-dark .select.is-success select.is-hovered { - border-color: #006b2d; } - html.theme--documenter-dark .select.is-success select:focus, html.theme--documenter-dark .select.is-success select.is-focused, html.theme--documenter-dark .select.is-success select:active, html.theme--documenter-dark .select.is-success select.is-active { - box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); } - html.theme--documenter-dark .select.is-warning:not(:hover)::after { - border-color: #ad8100; } - html.theme--documenter-dark .select.is-warning select { - border-color: #ad8100; } - html.theme--documenter-dark .select.is-warning select:hover, html.theme--documenter-dark .select.is-warning select.is-hovered { - border-color: #946e00; } - html.theme--documenter-dark .select.is-warning select:focus, html.theme--documenter-dark .select.is-warning select.is-focused, html.theme--documenter-dark .select.is-warning select:active, html.theme--documenter-dark .select.is-warning select.is-active { - box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); } - html.theme--documenter-dark .select.is-danger:not(:hover)::after { - border-color: #9e1b0d; } - html.theme--documenter-dark .select.is-danger select { - border-color: #9e1b0d; } - html.theme--documenter-dark .select.is-danger select:hover, html.theme--documenter-dark .select.is-danger select.is-hovered { - border-color: #86170b; } - html.theme--documenter-dark .select.is-danger select:focus, html.theme--documenter-dark .select.is-danger select.is-focused, html.theme--documenter-dark .select.is-danger select:active, html.theme--documenter-dark .select.is-danger select.is-active { - box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); } - html.theme--documenter-dark .select.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.select { - border-radius: 3px; - font-size: 0.85em; } - html.theme--documenter-dark .select.is-medium { - font-size: 1.25rem; } - html.theme--documenter-dark .select.is-large { - font-size: 1.5rem; } - html.theme--documenter-dark .select.is-disabled::after { - border-color: white; } - html.theme--documenter-dark .select.is-fullwidth { - width: 100%; } - html.theme--documenter-dark .select.is-fullwidth select { - width: 100%; } - html.theme--documenter-dark .select.is-loading::after { - margin-top: 0; - position: absolute; - right: 0.625em; - top: 0.625em; - transform: none; } - html.theme--documenter-dark .select.is-loading.is-small:after, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-loading:after { - font-size: 0.85em; } - html.theme--documenter-dark .select.is-loading.is-medium:after { - font-size: 1.25rem; } - html.theme--documenter-dark .select.is-loading.is-large:after { - font-size: 1.5rem; } - html.theme--documenter-dark .file { - align-items: stretch; - display: flex; - justify-content: flex-start; - position: relative; } - html.theme--documenter-dark .file.is-white .file-cta { - background-color: white; - border-color: transparent; - color: #0a0a0a; } - html.theme--documenter-dark .file.is-white:hover .file-cta, html.theme--documenter-dark .file.is-white.is-hovered .file-cta { - background-color: #f9f9f9; - border-color: transparent; - color: #0a0a0a; } - html.theme--documenter-dark .file.is-white:focus .file-cta, html.theme--documenter-dark .file.is-white.is-focused .file-cta { - border-color: transparent; - box-shadow: 0 0 0.5em rgba(255, 255, 255, 0.25); - color: #0a0a0a; } - html.theme--documenter-dark .file.is-white:active .file-cta, html.theme--documenter-dark .file.is-white.is-active .file-cta { - background-color: #f2f2f2; - border-color: transparent; - color: #0a0a0a; } - html.theme--documenter-dark .file.is-black .file-cta { - background-color: #0a0a0a; - border-color: transparent; - color: white; } - html.theme--documenter-dark .file.is-black:hover .file-cta, html.theme--documenter-dark .file.is-black.is-hovered .file-cta { - background-color: #040404; - border-color: transparent; - color: white; } - html.theme--documenter-dark .file.is-black:focus .file-cta, html.theme--documenter-dark .file.is-black.is-focused .file-cta { - border-color: transparent; - box-shadow: 0 0 0.5em rgba(10, 10, 10, 0.25); - color: white; } - html.theme--documenter-dark .file.is-black:active .file-cta, html.theme--documenter-dark .file.is-black.is-active .file-cta { - background-color: black; - border-color: transparent; - color: white; } - html.theme--documenter-dark .file.is-light .file-cta { - background-color: #ecf0f1; - border-color: transparent; - color: #282f2f; } - html.theme--documenter-dark .file.is-light:hover .file-cta, html.theme--documenter-dark .file.is-light.is-hovered .file-cta { - background-color: #e5eaec; - border-color: transparent; - color: #282f2f; } - html.theme--documenter-dark .file.is-light:focus .file-cta, html.theme--documenter-dark .file.is-light.is-focused .file-cta { - border-color: transparent; - box-shadow: 0 0 0.5em rgba(236, 240, 241, 0.25); - color: #282f2f; } - html.theme--documenter-dark .file.is-light:active .file-cta, html.theme--documenter-dark .file.is-light.is-active .file-cta { - background-color: #dde4e6; - border-color: transparent; - color: #282f2f; } - html.theme--documenter-dark .file.is-dark .file-cta, html.theme--documenter-dark .content kbd.file .file-cta { - background-color: #282f2f; - border-color: transparent; - color: #ecf0f1; } - html.theme--documenter-dark .file.is-dark:hover .file-cta, html.theme--documenter-dark .content kbd.file:hover .file-cta, html.theme--documenter-dark .file.is-dark.is-hovered .file-cta, html.theme--documenter-dark .content kbd.file.is-hovered .file-cta { - background-color: #232829; - border-color: transparent; - color: #ecf0f1; } - html.theme--documenter-dark .file.is-dark:focus .file-cta, html.theme--documenter-dark .content kbd.file:focus .file-cta, html.theme--documenter-dark .file.is-dark.is-focused .file-cta, html.theme--documenter-dark .content kbd.file.is-focused .file-cta { - border-color: transparent; - box-shadow: 0 0 0.5em rgba(40, 47, 47, 0.25); - color: #ecf0f1; } - html.theme--documenter-dark .file.is-dark:active .file-cta, html.theme--documenter-dark .content kbd.file:active .file-cta, html.theme--documenter-dark .file.is-dark.is-active .file-cta, html.theme--documenter-dark .content kbd.file.is-active .file-cta { - background-color: #1d2122; - border-color: transparent; - color: #ecf0f1; } - html.theme--documenter-dark .file.is-primary .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink .file-cta { - background-color: #375a7f; - border-color: transparent; - color: #fff; } - html.theme--documenter-dark .file.is-primary:hover .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:hover .file-cta, html.theme--documenter-dark .file.is-primary.is-hovered .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-hovered.docs-sourcelink .file-cta { - background-color: #335476; - border-color: transparent; - color: #fff; } - html.theme--documenter-dark .file.is-primary:focus .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:focus .file-cta, html.theme--documenter-dark .file.is-primary.is-focused .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-focused.docs-sourcelink .file-cta { - border-color: transparent; - box-shadow: 0 0 0.5em rgba(55, 90, 127, 0.25); - color: #fff; } - html.theme--documenter-dark .file.is-primary:active .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:active .file-cta, html.theme--documenter-dark .file.is-primary.is-active .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-active.docs-sourcelink .file-cta { - background-color: #2f4d6d; - border-color: transparent; - color: #fff; } - html.theme--documenter-dark .file.is-link .file-cta { - background-color: #1abc9c; - border-color: transparent; - color: #fff; } - html.theme--documenter-dark .file.is-link:hover .file-cta, html.theme--documenter-dark .file.is-link.is-hovered .file-cta { - background-color: #18b193; - border-color: transparent; - color: #fff; } - html.theme--documenter-dark .file.is-link:focus .file-cta, html.theme--documenter-dark .file.is-link.is-focused .file-cta { - border-color: transparent; - box-shadow: 0 0 0.5em rgba(26, 188, 156, 0.25); - color: #fff; } - html.theme--documenter-dark .file.is-link:active .file-cta, html.theme--documenter-dark .file.is-link.is-active .file-cta { - background-color: #17a689; - border-color: transparent; - color: #fff; } - html.theme--documenter-dark .file.is-info .file-cta { - background-color: #024c7d; - border-color: transparent; - color: #fff; } - html.theme--documenter-dark .file.is-info:hover .file-cta, html.theme--documenter-dark .file.is-info.is-hovered .file-cta { - background-color: #024470; - border-color: transparent; - color: #fff; } - html.theme--documenter-dark .file.is-info:focus .file-cta, html.theme--documenter-dark .file.is-info.is-focused .file-cta { - border-color: transparent; - box-shadow: 0 0 0.5em rgba(2, 76, 125, 0.25); - color: #fff; } - html.theme--documenter-dark .file.is-info:active .file-cta, html.theme--documenter-dark .file.is-info.is-active .file-cta { - background-color: #023d64; - border-color: transparent; - color: #fff; } - html.theme--documenter-dark .file.is-success .file-cta { - background-color: #008438; - border-color: transparent; - color: #fff; } - html.theme--documenter-dark .file.is-success:hover .file-cta, html.theme--documenter-dark .file.is-success.is-hovered .file-cta { - background-color: #007733; - border-color: transparent; - color: #fff; } - html.theme--documenter-dark .file.is-success:focus .file-cta, html.theme--documenter-dark .file.is-success.is-focused .file-cta { - border-color: transparent; - box-shadow: 0 0 0.5em rgba(0, 132, 56, 0.25); - color: #fff; } - html.theme--documenter-dark .file.is-success:active .file-cta, html.theme--documenter-dark .file.is-success.is-active .file-cta { - background-color: #006b2d; - border-color: transparent; - color: #fff; } - html.theme--documenter-dark .file.is-warning .file-cta { - background-color: #ad8100; - border-color: transparent; - color: #fff; } - html.theme--documenter-dark .file.is-warning:hover .file-cta, html.theme--documenter-dark .file.is-warning.is-hovered .file-cta { - background-color: #a07700; - border-color: transparent; - color: #fff; } - html.theme--documenter-dark .file.is-warning:focus .file-cta, html.theme--documenter-dark .file.is-warning.is-focused .file-cta { - border-color: transparent; - box-shadow: 0 0 0.5em rgba(173, 129, 0, 0.25); - color: #fff; } - html.theme--documenter-dark .file.is-warning:active .file-cta, html.theme--documenter-dark .file.is-warning.is-active .file-cta { - background-color: #946e00; - border-color: transparent; - color: #fff; } - html.theme--documenter-dark .file.is-danger .file-cta { - background-color: #9e1b0d; - border-color: transparent; - color: #fff; } - html.theme--documenter-dark .file.is-danger:hover .file-cta, html.theme--documenter-dark .file.is-danger.is-hovered .file-cta { - background-color: #92190c; - border-color: transparent; - color: #fff; } - html.theme--documenter-dark .file.is-danger:focus .file-cta, html.theme--documenter-dark .file.is-danger.is-focused .file-cta { - border-color: transparent; - box-shadow: 0 0 0.5em rgba(158, 27, 13, 0.25); - color: #fff; } - html.theme--documenter-dark .file.is-danger:active .file-cta, html.theme--documenter-dark .file.is-danger.is-active .file-cta { - background-color: #86170b; - border-color: transparent; - color: #fff; } - html.theme--documenter-dark .file.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.file { - font-size: 0.85em; } - html.theme--documenter-dark .file.is-medium { - font-size: 1.25rem; } - html.theme--documenter-dark .file.is-medium .file-icon .fa { - font-size: 21px; } - html.theme--documenter-dark .file.is-large { - font-size: 1.5rem; } - html.theme--documenter-dark .file.is-large .file-icon .fa { - font-size: 28px; } - html.theme--documenter-dark .file.has-name .file-cta { - border-bottom-right-radius: 0; - border-top-right-radius: 0; } - html.theme--documenter-dark .file.has-name .file-name { - border-bottom-left-radius: 0; - border-top-left-radius: 0; } - html.theme--documenter-dark .file.has-name.is-empty .file-cta { - border-radius: 0.4em; } - html.theme--documenter-dark .file.has-name.is-empty .file-name { - display: none; } - html.theme--documenter-dark .file.is-boxed .file-label { - flex-direction: column; } - html.theme--documenter-dark .file.is-boxed .file-cta { - flex-direction: column; - height: auto; - padding: 1em 3em; } - html.theme--documenter-dark .file.is-boxed .file-name { - border-width: 0 1px 1px; } - html.theme--documenter-dark .file.is-boxed .file-icon { - height: 1.5em; - width: 1.5em; } - html.theme--documenter-dark .file.is-boxed .file-icon .fa { - font-size: 21px; } - html.theme--documenter-dark .file.is-boxed.is-small .file-icon .fa, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-boxed .file-icon .fa { - font-size: 14px; } - html.theme--documenter-dark .file.is-boxed.is-medium .file-icon .fa { - font-size: 28px; } - html.theme--documenter-dark .file.is-boxed.is-large .file-icon .fa { - font-size: 35px; } - html.theme--documenter-dark .file.is-boxed.has-name .file-cta { - border-radius: 0.4em 0.4em 0 0; } - html.theme--documenter-dark .file.is-boxed.has-name .file-name { - border-radius: 0 0 0.4em 0.4em; - border-width: 0 1px 1px; } - html.theme--documenter-dark .file.is-centered { - justify-content: center; } - html.theme--documenter-dark .file.is-fullwidth .file-label { - width: 100%; } - html.theme--documenter-dark .file.is-fullwidth .file-name { - flex-grow: 1; - max-width: none; } - html.theme--documenter-dark .file.is-right { - justify-content: flex-end; } - html.theme--documenter-dark .file.is-right .file-cta { - border-radius: 0 0.4em 0.4em 0; } - html.theme--documenter-dark .file.is-right .file-name { - border-radius: 0.4em 0 0 0.4em; - border-width: 1px 0 1px 1px; - order: -1; } - html.theme--documenter-dark .file-label { - align-items: stretch; - display: flex; - cursor: pointer; - justify-content: flex-start; - overflow: hidden; - position: relative; } - html.theme--documenter-dark .file-label:hover .file-cta { - background-color: #e5eaec; - color: #282f2f; } - html.theme--documenter-dark .file-label:hover .file-name { - border-color: #596668; } - html.theme--documenter-dark .file-label:active .file-cta { - background-color: #dde4e6; - color: #282f2f; } - html.theme--documenter-dark .file-label:active .file-name { - border-color: #535f61; } - html.theme--documenter-dark .file-input { - height: 100%; - left: 0; - opacity: 0; - outline: none; - position: absolute; - top: 0; - width: 100%; } - html.theme--documenter-dark .file-cta, - html.theme--documenter-dark .file-name { - border-color: #5e6d6f; - border-radius: 0.4em; - font-size: 1em; - padding-left: 1em; - padding-right: 1em; - white-space: nowrap; } - html.theme--documenter-dark .file-cta { - background-color: #ecf0f1; - color: #343c3d; } - html.theme--documenter-dark .file-name { - border-color: #5e6d6f; - border-style: solid; - border-width: 1px 1px 1px 0; - display: block; - max-width: 16em; - overflow: hidden; - text-align: left; - text-overflow: ellipsis; } - html.theme--documenter-dark .file-icon { - align-items: center; - display: flex; - height: 1em; - justify-content: center; - margin-right: 0.5em; - width: 1em; } - html.theme--documenter-dark .file-icon .fa { - font-size: 14px; } - html.theme--documenter-dark .label { - color: #282f2f; - display: block; - font-size: 15px; - font-weight: 700; } - html.theme--documenter-dark .label:not(:last-child) { - margin-bottom: 0.5em; } - html.theme--documenter-dark .label.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.label { - font-size: 0.85em; } - html.theme--documenter-dark .label.is-medium { - font-size: 1.25rem; } - html.theme--documenter-dark .label.is-large { - font-size: 1.5rem; } - html.theme--documenter-dark .help { - display: block; - font-size: 0.85em; - margin-top: 0.25rem; } - html.theme--documenter-dark .help.is-white { - color: white; } - html.theme--documenter-dark .help.is-black { - color: #0a0a0a; } - html.theme--documenter-dark .help.is-light { - color: #ecf0f1; } - html.theme--documenter-dark .help.is-dark, html.theme--documenter-dark .content kbd.help { - color: #282f2f; } - html.theme--documenter-dark .help.is-primary, html.theme--documenter-dark .docstring > section > a.help.docs-sourcelink { - color: #375a7f; } - html.theme--documenter-dark .help.is-link { - color: #1abc9c; } - html.theme--documenter-dark .help.is-info { - color: #024c7d; } - html.theme--documenter-dark .help.is-success { - color: #008438; } - html.theme--documenter-dark .help.is-warning { - color: #ad8100; } - html.theme--documenter-dark .help.is-danger { - color: #9e1b0d; } - html.theme--documenter-dark .field:not(:last-child) { - margin-bottom: 0.75rem; } - html.theme--documenter-dark .field.has-addons { - display: flex; - justify-content: flex-start; } - html.theme--documenter-dark .field.has-addons .control:not(:last-child) { - margin-right: -1px; } - html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .button, - html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .input, - html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search > input, - html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search > input, - html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .select select { - border-radius: 0; } - html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .button, - html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .input, - html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, - html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search > input, - html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .select select { - border-bottom-right-radius: 0; - border-top-right-radius: 0; } - html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .button, - html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .input, - html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, - html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search > input, - html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .select select { - border-bottom-left-radius: 0; - border-top-left-radius: 0; } - html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):hover, html.theme--documenter-dark .field.has-addons .control .button.is-hovered:not([disabled]), - html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):hover, - html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):hover, - html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):hover, - html.theme--documenter-dark .field.has-addons .control .input.is-hovered:not([disabled]), - html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-hovered:not([disabled]), - html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-hovered:not([disabled]), - html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):hover, - html.theme--documenter-dark .field.has-addons .control .select select.is-hovered:not([disabled]) { - z-index: 2; } - html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus, html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]), html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active, html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]), - html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus, - html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus, - html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus, - html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]), - html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]), - html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]), - html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active, - html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active, - html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active, - html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]), - html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]), - html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]), - html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus, - html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]), - html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active, - html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]) { - z-index: 3; } - html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus:hover, html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]):hover, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active:hover, html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]):hover, - html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus:hover, - html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus:hover, - html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus:hover, - html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]):hover, - html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]):hover, - html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]):hover, - html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active:hover, - html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active:hover, - html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active:hover, - html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]):hover, - html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]):hover, - html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]):hover, - html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus:hover, - html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]):hover, - html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active:hover, - html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]):hover { - z-index: 4; } - html.theme--documenter-dark .field.has-addons .control.is-expanded { - flex-grow: 1; - flex-shrink: 1; } - html.theme--documenter-dark .field.has-addons.has-addons-centered { - justify-content: center; } - html.theme--documenter-dark .field.has-addons.has-addons-right { - justify-content: flex-end; } - html.theme--documenter-dark .field.has-addons.has-addons-fullwidth .control { - flex-grow: 1; - flex-shrink: 0; } - html.theme--documenter-dark .field.is-grouped { - display: flex; - justify-content: flex-start; } - html.theme--documenter-dark .field.is-grouped > .control { - flex-shrink: 0; } - html.theme--documenter-dark .field.is-grouped > .control:not(:last-child) { - margin-bottom: 0; - margin-right: 0.75rem; } - html.theme--documenter-dark .field.is-grouped > .control.is-expanded { - flex-grow: 1; - flex-shrink: 1; } - html.theme--documenter-dark .field.is-grouped.is-grouped-centered { - justify-content: center; } - html.theme--documenter-dark .field.is-grouped.is-grouped-right { - justify-content: flex-end; } - html.theme--documenter-dark .field.is-grouped.is-grouped-multiline { - flex-wrap: wrap; } - html.theme--documenter-dark .field.is-grouped.is-grouped-multiline > .control:last-child, html.theme--documenter-dark .field.is-grouped.is-grouped-multiline > .control:not(:last-child) { - margin-bottom: 0.75rem; } - html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:last-child { - margin-bottom: -0.75rem; } - html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:not(:last-child) { - margin-bottom: 0; } - @media screen and (min-width: 769px), print { - html.theme--documenter-dark .field.is-horizontal { - display: flex; } } - html.theme--documenter-dark .field-label .label { - font-size: inherit; } - @media screen and (max-width: 768px) { - html.theme--documenter-dark .field-label { - margin-bottom: 0.5rem; } } - @media screen and (min-width: 769px), print { - html.theme--documenter-dark .field-label { - flex-basis: 0; - flex-grow: 1; - flex-shrink: 0; - margin-right: 1.5rem; - text-align: right; } - html.theme--documenter-dark .field-label.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.field-label { - font-size: 0.85em; - padding-top: 0.375em; } - html.theme--documenter-dark .field-label.is-normal { - padding-top: 0.375em; } - html.theme--documenter-dark .field-label.is-medium { - font-size: 1.25rem; - padding-top: 0.375em; } - html.theme--documenter-dark .field-label.is-large { - font-size: 1.5rem; - padding-top: 0.375em; } } - html.theme--documenter-dark .field-body .field .field { - margin-bottom: 0; } - @media screen and (min-width: 769px), print { - html.theme--documenter-dark .field-body { - display: flex; - flex-basis: 0; - flex-grow: 5; - flex-shrink: 1; } - html.theme--documenter-dark .field-body .field { - margin-bottom: 0; } - html.theme--documenter-dark .field-body > .field { - flex-shrink: 1; } - html.theme--documenter-dark .field-body > .field:not(.is-narrow) { - flex-grow: 1; } - html.theme--documenter-dark .field-body > .field:not(:last-child) { - margin-right: 0.75rem; } } - html.theme--documenter-dark .control { - box-sizing: border-box; - clear: both; - font-size: 15px; - position: relative; - text-align: left; } - html.theme--documenter-dark .control.has-icons-left .input:focus ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input:focus ~ .icon, - html.theme--documenter-dark .control.has-icons-left .select:focus ~ .icon, html.theme--documenter-dark .control.has-icons-right .input:focus ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input:focus ~ .icon, - html.theme--documenter-dark .control.has-icons-right .select:focus ~ .icon { - color: #5e6d6f; } - html.theme--documenter-dark .control.has-icons-left .input.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input ~ .icon, - html.theme--documenter-dark .control.has-icons-left .select.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input ~ .icon, - html.theme--documenter-dark .control.has-icons-right .select.is-small ~ .icon { - font-size: 0.85em; } - html.theme--documenter-dark .control.has-icons-left .input.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-medium ~ .icon, - html.theme--documenter-dark .control.has-icons-left .select.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-medium ~ .icon, - html.theme--documenter-dark .control.has-icons-right .select.is-medium ~ .icon { - font-size: 1.25rem; } - html.theme--documenter-dark .control.has-icons-left .input.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-large ~ .icon, - html.theme--documenter-dark .control.has-icons-left .select.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-large ~ .icon, - html.theme--documenter-dark .control.has-icons-right .select.is-large ~ .icon { - font-size: 1.5rem; } - html.theme--documenter-dark .control.has-icons-left .icon, html.theme--documenter-dark .control.has-icons-right .icon { - color: #dbdee0; - height: 2.25em; - pointer-events: none; - position: absolute; - top: 0; - width: 2.25em; - z-index: 4; } - html.theme--documenter-dark .control.has-icons-left .input, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input, - html.theme--documenter-dark .control.has-icons-left .select select { - padding-left: 2.25em; } - html.theme--documenter-dark .control.has-icons-left .icon.is-left { - left: 0; } - html.theme--documenter-dark .control.has-icons-right .input, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input, - html.theme--documenter-dark .control.has-icons-right .select select { - padding-right: 2.25em; } - html.theme--documenter-dark .control.has-icons-right .icon.is-right { - right: 0; } - html.theme--documenter-dark .control.is-loading::after { - position: absolute !important; - right: 0.625em; - top: 0.625em; - z-index: 4; } - html.theme--documenter-dark .control.is-loading.is-small:after, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-loading:after { - font-size: 0.85em; } - html.theme--documenter-dark .control.is-loading.is-medium:after { - font-size: 1.25rem; } - html.theme--documenter-dark .control.is-loading.is-large:after { - font-size: 1.5rem; } - html.theme--documenter-dark .breadcrumb { - font-size: 15px; - white-space: nowrap; } - html.theme--documenter-dark .breadcrumb a { - align-items: center; - color: #1abc9c; - display: flex; - justify-content: center; - padding: 0 0.75em; } - html.theme--documenter-dark .breadcrumb a:hover { - color: #1dd2af; } - html.theme--documenter-dark .breadcrumb li { - align-items: center; - display: flex; } - html.theme--documenter-dark .breadcrumb li:first-child a { - padding-left: 0; } - html.theme--documenter-dark .breadcrumb li.is-active a { - color: #f2f2f2; - cursor: default; - pointer-events: none; } - html.theme--documenter-dark .breadcrumb li + li::before { - color: #8c9b9d; - content: "\0002f"; } - html.theme--documenter-dark .breadcrumb ul, - html.theme--documenter-dark .breadcrumb ol { - align-items: flex-start; - display: flex; - flex-wrap: wrap; - justify-content: flex-start; } - html.theme--documenter-dark .breadcrumb .icon:first-child { - margin-right: 0.5em; } - html.theme--documenter-dark .breadcrumb .icon:last-child { - margin-left: 0.5em; } - html.theme--documenter-dark .breadcrumb.is-centered ol, - html.theme--documenter-dark .breadcrumb.is-centered ul { - justify-content: center; } - html.theme--documenter-dark .breadcrumb.is-right ol, - html.theme--documenter-dark .breadcrumb.is-right ul { - justify-content: flex-end; } - html.theme--documenter-dark .breadcrumb.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.breadcrumb { - font-size: 0.85em; } - html.theme--documenter-dark .breadcrumb.is-medium { - font-size: 1.25rem; } - html.theme--documenter-dark .breadcrumb.is-large { - font-size: 1.5rem; } - html.theme--documenter-dark .breadcrumb.has-arrow-separator li + li::before { - content: "\02192"; } - html.theme--documenter-dark .breadcrumb.has-bullet-separator li + li::before { - content: "\02022"; } - html.theme--documenter-dark .breadcrumb.has-dot-separator li + li::before { - content: "\000b7"; } - html.theme--documenter-dark .breadcrumb.has-succeeds-separator li + li::before { - content: "\0227B"; } - html.theme--documenter-dark .card { - background-color: white; - box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); - color: #fff; - max-width: 100%; - position: relative; } - html.theme--documenter-dark .card-header { - background-color: transparent; - align-items: stretch; - box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); - display: flex; } - html.theme--documenter-dark .card-header-title { - align-items: center; - color: #f2f2f2; - display: flex; - flex-grow: 1; - font-weight: 700; - padding: 0.75rem; } - html.theme--documenter-dark .card-header-title.is-centered { - justify-content: center; } - html.theme--documenter-dark .card-header-icon { - align-items: center; - cursor: pointer; - display: flex; - justify-content: center; - padding: 0.75rem; } - html.theme--documenter-dark .card-image { - display: block; - position: relative; } - html.theme--documenter-dark .card-content { - background-color: transparent; - padding: 1.5rem; } - html.theme--documenter-dark .card-footer { - background-color: transparent; - border-top: 1px solid #5e6d6f; - align-items: stretch; - display: flex; } - html.theme--documenter-dark .card-footer-item { - align-items: center; - display: flex; - flex-basis: 0; - flex-grow: 1; - flex-shrink: 0; - justify-content: center; - padding: 0.75rem; } - html.theme--documenter-dark .card-footer-item:not(:last-child) { - border-right: 1px solid #5e6d6f; } - html.theme--documenter-dark .card .media:not(:last-child) { - margin-bottom: 1.5rem; } - html.theme--documenter-dark .dropdown { - display: inline-flex; - position: relative; - vertical-align: top; } - html.theme--documenter-dark .dropdown.is-active .dropdown-menu, html.theme--documenter-dark .dropdown.is-hoverable:hover .dropdown-menu { - display: block; } - html.theme--documenter-dark .dropdown.is-right .dropdown-menu { - left: auto; - right: 0; } - html.theme--documenter-dark .dropdown.is-up .dropdown-menu { - bottom: 100%; - padding-bottom: 4px; - padding-top: initial; - top: auto; } - html.theme--documenter-dark .dropdown-menu { - display: none; - left: 0; - min-width: 12rem; - padding-top: 4px; - position: absolute; - top: 100%; - z-index: 20; } - html.theme--documenter-dark .dropdown-content { - background-color: #282f2f; - border-radius: 0.4em; - box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); - padding-bottom: 0.5rem; - padding-top: 0.5rem; } - html.theme--documenter-dark .dropdown-item { - color: #fff; - display: block; - font-size: 0.875rem; - line-height: 1.5; - padding: 0.375rem 1rem; - position: relative; } - html.theme--documenter-dark a.dropdown-item, - html.theme--documenter-dark button.dropdown-item { - padding-right: 3rem; - text-align: left; - white-space: nowrap; - width: 100%; } - html.theme--documenter-dark a.dropdown-item:hover, - html.theme--documenter-dark button.dropdown-item:hover { - background-color: #282f2f; - color: #0a0a0a; } - html.theme--documenter-dark a.dropdown-item.is-active, - html.theme--documenter-dark button.dropdown-item.is-active { - background-color: #1abc9c; - color: #fff; } - html.theme--documenter-dark .dropdown-divider { - background-color: #5e6d6f; - border: none; - display: block; - height: 1px; - margin: 0.5rem 0; } - html.theme--documenter-dark .level { - align-items: center; - justify-content: space-between; } - html.theme--documenter-dark .level code { - border-radius: 0.4em; } - html.theme--documenter-dark .level img { - display: inline-block; - vertical-align: top; } - html.theme--documenter-dark .level.is-mobile { - display: flex; } - html.theme--documenter-dark .level.is-mobile .level-left, - html.theme--documenter-dark .level.is-mobile .level-right { - display: flex; } - html.theme--documenter-dark .level.is-mobile .level-left + .level-right { - margin-top: 0; } - html.theme--documenter-dark .level.is-mobile .level-item:not(:last-child) { - margin-bottom: 0; - margin-right: 0.75rem; } - html.theme--documenter-dark .level.is-mobile .level-item:not(.is-narrow) { - flex-grow: 1; } - @media screen and (min-width: 769px), print { - html.theme--documenter-dark .level { - display: flex; } - html.theme--documenter-dark .level > .level-item:not(.is-narrow) { - flex-grow: 1; } } - html.theme--documenter-dark .level-item { - align-items: center; - display: flex; - flex-basis: auto; - flex-grow: 0; - flex-shrink: 0; - justify-content: center; } - html.theme--documenter-dark .level-item .title, - html.theme--documenter-dark .level-item .subtitle { - margin-bottom: 0; } - @media screen and (max-width: 768px) { - html.theme--documenter-dark .level-item:not(:last-child) { - margin-bottom: 0.75rem; } } - html.theme--documenter-dark .level-left, - html.theme--documenter-dark .level-right { - flex-basis: auto; - flex-grow: 0; - flex-shrink: 0; } - html.theme--documenter-dark .level-left .level-item.is-flexible, - html.theme--documenter-dark .level-right .level-item.is-flexible { - flex-grow: 1; } - @media screen and (min-width: 769px), print { - html.theme--documenter-dark .level-left .level-item:not(:last-child), - html.theme--documenter-dark .level-right .level-item:not(:last-child) { - margin-right: 0.75rem; } } - html.theme--documenter-dark .level-left { - align-items: center; - justify-content: flex-start; } - @media screen and (max-width: 768px) { - html.theme--documenter-dark .level-left + .level-right { - margin-top: 1.5rem; } } - @media screen and (min-width: 769px), print { - html.theme--documenter-dark .level-left { - display: flex; } } - html.theme--documenter-dark .level-right { - align-items: center; - justify-content: flex-end; } - @media screen and (min-width: 769px), print { - html.theme--documenter-dark .level-right { - display: flex; } } - html.theme--documenter-dark .list { - background-color: white; - border-radius: 0.4em; - box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); } - html.theme--documenter-dark .list-item { - display: block; - padding: 0.5em 1em; } - html.theme--documenter-dark .list-item:not(a) { - color: #fff; } - html.theme--documenter-dark .list-item:first-child { - border-top-left-radius: 0.4em; - border-top-right-radius: 0.4em; } - html.theme--documenter-dark .list-item:last-child { - border-bottom-left-radius: 0.4em; - border-bottom-right-radius: 0.4em; } - html.theme--documenter-dark .list-item:not(:last-child) { - border-bottom: 1px solid #5e6d6f; } - html.theme--documenter-dark .list-item.is-active { - background-color: #1abc9c; - color: #fff; } - html.theme--documenter-dark a.list-item { - background-color: #282f2f; - cursor: pointer; } - html.theme--documenter-dark .media { - align-items: flex-start; - display: flex; - text-align: left; } - html.theme--documenter-dark .media .content:not(:last-child) { - margin-bottom: 0.75rem; } - html.theme--documenter-dark .media .media { - border-top: 1px solid rgba(94, 109, 111, 0.5); - display: flex; - padding-top: 0.75rem; } - html.theme--documenter-dark .media .media .content:not(:last-child), - html.theme--documenter-dark .media .media .control:not(:last-child) { - margin-bottom: 0.5rem; } - html.theme--documenter-dark .media .media .media { - padding-top: 0.5rem; } - html.theme--documenter-dark .media .media .media + .media { - margin-top: 0.5rem; } - html.theme--documenter-dark .media + .media { - border-top: 1px solid rgba(94, 109, 111, 0.5); - margin-top: 1rem; - padding-top: 1rem; } - html.theme--documenter-dark .media.is-large + .media { - margin-top: 1.5rem; - padding-top: 1.5rem; } - html.theme--documenter-dark .media-left, - html.theme--documenter-dark .media-right { - flex-basis: auto; - flex-grow: 0; - flex-shrink: 0; } - html.theme--documenter-dark .media-left { - margin-right: 1rem; } - html.theme--documenter-dark .media-right { - margin-left: 1rem; } - html.theme--documenter-dark .media-content { - flex-basis: auto; - flex-grow: 1; - flex-shrink: 1; - text-align: left; } - @media screen and (max-width: 768px) { - html.theme--documenter-dark .media-content { - overflow-x: auto; } } - html.theme--documenter-dark .menu { - font-size: 15px; } - html.theme--documenter-dark .menu.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.menu { - font-size: 0.85em; } - html.theme--documenter-dark .menu.is-medium { - font-size: 1.25rem; } - html.theme--documenter-dark .menu.is-large { - font-size: 1.5rem; } - html.theme--documenter-dark .menu-list { - line-height: 1.25; } - html.theme--documenter-dark .menu-list a { - border-radius: 3px; - color: #fff; - display: block; - padding: 0.5em 0.75em; } - html.theme--documenter-dark .menu-list a:hover { - background-color: #282f2f; - color: #f2f2f2; } - html.theme--documenter-dark .menu-list a.is-active { - background-color: #1abc9c; - color: #fff; } - html.theme--documenter-dark .menu-list li ul { - border-left: 1px solid #5e6d6f; - margin: 0.75em; - padding-left: 0.75em; } - html.theme--documenter-dark .menu-label { - color: white; - font-size: 0.75em; - letter-spacing: 0.1em; - text-transform: uppercase; } - html.theme--documenter-dark .menu-label:not(:first-child) { - margin-top: 1em; } - html.theme--documenter-dark .menu-label:not(:last-child) { - margin-bottom: 1em; } - html.theme--documenter-dark .message { - background-color: #282f2f; - border-radius: 0.4em; - font-size: 15px; } - html.theme--documenter-dark .message strong { - color: currentColor; } - html.theme--documenter-dark .message a:not(.button):not(.tag):not(.dropdown-item) { - color: currentColor; - text-decoration: underline; } - html.theme--documenter-dark .message.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.message { - font-size: 0.85em; } - html.theme--documenter-dark .message.is-medium { - font-size: 1.25rem; } - html.theme--documenter-dark .message.is-large { - font-size: 1.5rem; } - html.theme--documenter-dark .message.is-white { - background-color: white; } - html.theme--documenter-dark .message.is-white .message-header { - background-color: white; - color: #0a0a0a; } - html.theme--documenter-dark .message.is-white .message-body { - border-color: white; - color: #4d4d4d; } - html.theme--documenter-dark .message.is-black { - background-color: #fafafa; } - html.theme--documenter-dark .message.is-black .message-header { - background-color: #0a0a0a; - color: white; } - html.theme--documenter-dark .message.is-black .message-body { - border-color: #0a0a0a; - color: #090909; } - html.theme--documenter-dark .message.is-light { - background-color: #f9fafb; } - html.theme--documenter-dark .message.is-light .message-header { - background-color: #ecf0f1; - color: #282f2f; } - html.theme--documenter-dark .message.is-light .message-body { - border-color: #ecf0f1; - color: #505050; } - html.theme--documenter-dark .message.is-dark, html.theme--documenter-dark .content kbd.message { - background-color: #f9fafa; } - html.theme--documenter-dark .message.is-dark .message-header, html.theme--documenter-dark .content kbd.message .message-header { - background-color: #282f2f; - color: #ecf0f1; } - html.theme--documenter-dark .message.is-dark .message-body, html.theme--documenter-dark .content kbd.message .message-body { - border-color: #282f2f; - color: #212526; } - html.theme--documenter-dark .message.is-primary, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink { - background-color: #f8fafc; } - html.theme--documenter-dark .message.is-primary .message-header, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink .message-header { - background-color: #375a7f; - color: #fff; } - html.theme--documenter-dark .message.is-primary .message-body, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink .message-body { - border-color: #375a7f; - color: #2b4159; } - html.theme--documenter-dark .message.is-link { - background-color: #f6fefc; } - html.theme--documenter-dark .message.is-link .message-header { - background-color: #1abc9c; - color: #fff; } - html.theme--documenter-dark .message.is-link .message-body { - border-color: #1abc9c; - color: #0b2f28; } - html.theme--documenter-dark .message.is-info { - background-color: #f5fbff; } - html.theme--documenter-dark .message.is-info .message-header { - background-color: #024c7d; - color: #fff; } - html.theme--documenter-dark .message.is-info .message-body { - border-color: #024c7d; - color: #033659; } - html.theme--documenter-dark .message.is-success { - background-color: #f5fff9; } - html.theme--documenter-dark .message.is-success .message-header { - background-color: #008438; - color: #fff; } - html.theme--documenter-dark .message.is-success .message-body { - border-color: #008438; - color: #023518; } - html.theme--documenter-dark .message.is-warning { - background-color: #fffcf5; } - html.theme--documenter-dark .message.is-warning .message-header { - background-color: #ad8100; - color: #fff; } - html.theme--documenter-dark .message.is-warning .message-body { - border-color: #ad8100; - color: #3d2e03; } - html.theme--documenter-dark .message.is-danger { - background-color: #fef6f6; } - html.theme--documenter-dark .message.is-danger .message-header { - background-color: #9e1b0d; - color: #fff; } - html.theme--documenter-dark .message.is-danger .message-body { - border-color: #9e1b0d; - color: #7a170c; } - html.theme--documenter-dark .message-header { - align-items: center; - background-color: #fff; - border-radius: 0.4em 0.4em 0 0; - color: rgba(0, 0, 0, 0.7); - display: flex; - font-weight: 700; - justify-content: space-between; - line-height: 1.25; - padding: 0.75em 1em; - position: relative; } - html.theme--documenter-dark .message-header .delete { - flex-grow: 0; - flex-shrink: 0; - margin-left: 0.75em; } - html.theme--documenter-dark .message-header + .message-body { - border-width: 0; - border-top-left-radius: 0; - border-top-right-radius: 0; } - html.theme--documenter-dark .message-body { - border-color: #5e6d6f; - border-radius: 0.4em; - border-style: solid; - border-width: 0 0 0 4px; - color: #fff; - padding: 1.25em 1.5em; } - html.theme--documenter-dark .message-body code, - html.theme--documenter-dark .message-body pre { - background-color: white; } - html.theme--documenter-dark .message-body pre code { - background-color: transparent; } - html.theme--documenter-dark .modal { - align-items: center; - display: none; - flex-direction: column; - justify-content: center; - overflow: hidden; - position: fixed; - z-index: 40; } - html.theme--documenter-dark .modal.is-active { - display: flex; } - html.theme--documenter-dark .modal-background { - background-color: rgba(10, 10, 10, 0.86); } - html.theme--documenter-dark .modal-content, - html.theme--documenter-dark .modal-card { - margin: 0 20px; - max-height: calc(100vh - 160px); - overflow: auto; - position: relative; - width: 100%; } - @media screen and (min-width: 769px), print { - html.theme--documenter-dark .modal-content, - html.theme--documenter-dark .modal-card { - margin: 0 auto; - max-height: calc(100vh - 40px); - width: 640px; } } - html.theme--documenter-dark .modal-close { - background: none; - height: 40px; - position: fixed; - right: 20px; - top: 20px; - width: 40px; } - html.theme--documenter-dark .modal-card { - display: flex; - flex-direction: column; - max-height: calc(100vh - 40px); - overflow: hidden; - -ms-overflow-y: visible; } - html.theme--documenter-dark .modal-card-head, - html.theme--documenter-dark .modal-card-foot { - align-items: center; - background-color: #282f2f; - display: flex; - flex-shrink: 0; - justify-content: flex-start; - padding: 20px; - position: relative; } - html.theme--documenter-dark .modal-card-head { - border-bottom: 1px solid #5e6d6f; - border-top-left-radius: 8px; - border-top-right-radius: 8px; } - html.theme--documenter-dark .modal-card-title { - color: #f2f2f2; - flex-grow: 1; - flex-shrink: 0; - font-size: 1.5rem; - line-height: 1; } - html.theme--documenter-dark .modal-card-foot { - border-bottom-left-radius: 8px; - border-bottom-right-radius: 8px; - border-top: 1px solid #5e6d6f; } - html.theme--documenter-dark .modal-card-foot .button:not(:last-child) { - margin-right: 0.5em; } - html.theme--documenter-dark .modal-card-body { - -webkit-overflow-scrolling: touch; - background-color: white; - flex-grow: 1; - flex-shrink: 1; - overflow: auto; - padding: 20px; } - html.theme--documenter-dark .navbar { - background-color: #375a7f; - min-height: 4rem; - position: relative; - z-index: 30; } - html.theme--documenter-dark .navbar.is-white { - background-color: white; - color: #0a0a0a; } - html.theme--documenter-dark .navbar.is-white .navbar-brand > .navbar-item, - html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link { - color: #0a0a0a; } - html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item.is-active, - html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:focus, - html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:hover, - html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link.is-active { - background-color: #f2f2f2; - color: #0a0a0a; } - html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link::after { - border-color: #0a0a0a; } - html.theme--documenter-dark .navbar.is-white .navbar-burger { - color: #0a0a0a; } - @media screen and (min-width: 1056px) { - html.theme--documenter-dark .navbar.is-white .navbar-start > .navbar-item, - html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link, - html.theme--documenter-dark .navbar.is-white .navbar-end > .navbar-item, - html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link { - color: #0a0a0a; } - html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item.is-active, - html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:focus, - html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:hover, - html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link.is-active, - html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item:focus, - html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item:hover, - html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item.is-active, - html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:focus, - html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:hover, - html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link.is-active { - background-color: #f2f2f2; - color: #0a0a0a; } - html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link::after, - html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link::after { - border-color: #0a0a0a; } - html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link, - html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link, - html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link { - background-color: #f2f2f2; - color: #0a0a0a; } - html.theme--documenter-dark .navbar.is-white .navbar-dropdown a.navbar-item.is-active { - background-color: white; - color: #0a0a0a; } } - html.theme--documenter-dark .navbar.is-black { - background-color: #0a0a0a; - color: white; } - html.theme--documenter-dark .navbar.is-black .navbar-brand > .navbar-item, - html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link { - color: white; } - html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item.is-active, - html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:focus, - html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:hover, - html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link.is-active { - background-color: black; - color: white; } - html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link::after { - border-color: white; } - html.theme--documenter-dark .navbar.is-black .navbar-burger { - color: white; } - @media screen and (min-width: 1056px) { - html.theme--documenter-dark .navbar.is-black .navbar-start > .navbar-item, - html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link, - html.theme--documenter-dark .navbar.is-black .navbar-end > .navbar-item, - html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link { - color: white; } - html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item.is-active, - html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:focus, - html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:hover, - html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link.is-active, - html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item:focus, - html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item:hover, - html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item.is-active, - html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:focus, - html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:hover, - html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link.is-active { - background-color: black; - color: white; } - html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link::after, - html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link::after { - border-color: white; } - html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link, - html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link, - html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link { - background-color: black; - color: white; } - html.theme--documenter-dark .navbar.is-black .navbar-dropdown a.navbar-item.is-active { - background-color: #0a0a0a; - color: white; } } - html.theme--documenter-dark .navbar.is-light { - background-color: #ecf0f1; - color: #282f2f; } - html.theme--documenter-dark .navbar.is-light .navbar-brand > .navbar-item, - html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link { - color: #282f2f; } - html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item.is-active, - html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:focus, - html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:hover, - html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link.is-active { - background-color: #dde4e6; - color: #282f2f; } - html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link::after { - border-color: #282f2f; } - html.theme--documenter-dark .navbar.is-light .navbar-burger { - color: #282f2f; } - @media screen and (min-width: 1056px) { - html.theme--documenter-dark .navbar.is-light .navbar-start > .navbar-item, - html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link, - html.theme--documenter-dark .navbar.is-light .navbar-end > .navbar-item, - html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link { - color: #282f2f; } - html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item.is-active, - html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:focus, - html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:hover, - html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link.is-active, - html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item:focus, - html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item:hover, - html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item.is-active, - html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:focus, - html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:hover, - html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link.is-active { - background-color: #dde4e6; - color: #282f2f; } - html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link::after, - html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link::after { - border-color: #282f2f; } - html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link, - html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link, - html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link { - background-color: #dde4e6; - color: #282f2f; } - html.theme--documenter-dark .navbar.is-light .navbar-dropdown a.navbar-item.is-active { - background-color: #ecf0f1; - color: #282f2f; } } - html.theme--documenter-dark .navbar.is-dark, html.theme--documenter-dark .content kbd.navbar { - background-color: #282f2f; - color: #ecf0f1; } - html.theme--documenter-dark .navbar.is-dark .navbar-brand > .navbar-item, html.theme--documenter-dark .content kbd.navbar .navbar-brand > .navbar-item, - html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link, - html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link { - color: #ecf0f1; } - html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item.is-active, - html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:focus, - html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:focus, - html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:hover, - html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:hover, - html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link.is-active, - html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link.is-active { - background-color: #1d2122; - color: #ecf0f1; } - html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link::after, html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link::after { - border-color: #ecf0f1; } - html.theme--documenter-dark .navbar.is-dark .navbar-burger, html.theme--documenter-dark .content kbd.navbar .navbar-burger { - color: #ecf0f1; } - @media screen and (min-width: 1056px) { - html.theme--documenter-dark .navbar.is-dark .navbar-start > .navbar-item, html.theme--documenter-dark .content kbd.navbar .navbar-start > .navbar-item, - html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link, - html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link, - html.theme--documenter-dark .navbar.is-dark .navbar-end > .navbar-item, - html.theme--documenter-dark .content kbd.navbar .navbar-end > .navbar-item, - html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link, - html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link { - color: #ecf0f1; } - html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item.is-active, - html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:focus, - html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:focus, - html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:hover, - html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:hover, - html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link.is-active, - html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link.is-active, - html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item:focus, - html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item:focus, - html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item:hover, - html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item:hover, - html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item.is-active, - html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item.is-active, - html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:focus, - html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:focus, - html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:hover, - html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:hover, - html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link.is-active, - html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link.is-active { - background-color: #1d2122; - color: #ecf0f1; } - html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link::after, html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link::after, - html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link::after, - html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link::after { - border-color: #ecf0f1; } - html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link, - html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link, - html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link, - html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link, - html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link { - background-color: #1d2122; - color: #ecf0f1; } - html.theme--documenter-dark .navbar.is-dark .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-dropdown a.navbar-item.is-active { - background-color: #282f2f; - color: #ecf0f1; } } - html.theme--documenter-dark .navbar.is-primary, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink { - background-color: #375a7f; - color: #fff; } - html.theme--documenter-dark .navbar.is-primary .navbar-brand > .navbar-item, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > .navbar-item, - html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link, - html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link { - color: #fff; } - html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item.is-active, - html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:focus, - html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus, - html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:hover, - html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover, - html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link.is-active, - html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active { - background-color: #2f4d6d; - color: #fff; } - html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link::after, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link::after { - border-color: #fff; } - html.theme--documenter-dark .navbar.is-primary .navbar-burger, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-burger { - color: #fff; } - @media screen and (min-width: 1056px) { - html.theme--documenter-dark .navbar.is-primary .navbar-start > .navbar-item, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > .navbar-item, - html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link, - html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link, - html.theme--documenter-dark .navbar.is-primary .navbar-end > .navbar-item, - html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > .navbar-item, - html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link, - html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link { - color: #fff; } - html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item.is-active, - html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:focus, - html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:focus, - html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:hover, - html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:hover, - html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link.is-active, - html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active, - html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item:focus, - html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:focus, - html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item:hover, - html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:hover, - html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item.is-active, - html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item.is-active, - html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:focus, - html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:focus, - html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:hover, - html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:hover, - html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link.is-active, - html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active { - background-color: #2f4d6d; - color: #fff; } - html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link::after, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link::after, - html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link::after, - html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link::after { - border-color: #fff; } - html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link, - html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link, - html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link, - html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link, - html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link { - background-color: #2f4d6d; - color: #fff; } - html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active { - background-color: #375a7f; - color: #fff; } } - html.theme--documenter-dark .navbar.is-link { - background-color: #1abc9c; - color: #fff; } - html.theme--documenter-dark .navbar.is-link .navbar-brand > .navbar-item, - html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link { - color: #fff; } - html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item.is-active, - html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:focus, - html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:hover, - html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link.is-active { - background-color: #17a689; - color: #fff; } - html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link::after { - border-color: #fff; } - html.theme--documenter-dark .navbar.is-link .navbar-burger { - color: #fff; } - @media screen and (min-width: 1056px) { - html.theme--documenter-dark .navbar.is-link .navbar-start > .navbar-item, - html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link, - html.theme--documenter-dark .navbar.is-link .navbar-end > .navbar-item, - html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link { - color: #fff; } - html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item.is-active, - html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:focus, - html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:hover, - html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link.is-active, - html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item:focus, - html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item:hover, - html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item.is-active, - html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:focus, - html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:hover, - html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link.is-active { - background-color: #17a689; - color: #fff; } - html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link::after, - html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link::after { - border-color: #fff; } - html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link, - html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link, - html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link { - background-color: #17a689; - color: #fff; } - html.theme--documenter-dark .navbar.is-link .navbar-dropdown a.navbar-item.is-active { - background-color: #1abc9c; - color: #fff; } } - html.theme--documenter-dark .navbar.is-info { - background-color: #024c7d; - color: #fff; } - html.theme--documenter-dark .navbar.is-info .navbar-brand > .navbar-item, - html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link { - color: #fff; } - html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item.is-active, - html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:focus, - html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:hover, - html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link.is-active { - background-color: #023d64; - color: #fff; } - html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link::after { - border-color: #fff; } - html.theme--documenter-dark .navbar.is-info .navbar-burger { - color: #fff; } - @media screen and (min-width: 1056px) { - html.theme--documenter-dark .navbar.is-info .navbar-start > .navbar-item, - html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link, - html.theme--documenter-dark .navbar.is-info .navbar-end > .navbar-item, - html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link { - color: #fff; } - html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item.is-active, - html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:focus, - html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:hover, - html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link.is-active, - html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item:focus, - html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item:hover, - html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item.is-active, - html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:focus, - html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:hover, - html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link.is-active { - background-color: #023d64; - color: #fff; } - html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link::after, - html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link::after { - border-color: #fff; } - html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link, - html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link, - html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link { - background-color: #023d64; - color: #fff; } - html.theme--documenter-dark .navbar.is-info .navbar-dropdown a.navbar-item.is-active { - background-color: #024c7d; - color: #fff; } } - html.theme--documenter-dark .navbar.is-success { - background-color: #008438; - color: #fff; } - html.theme--documenter-dark .navbar.is-success .navbar-brand > .navbar-item, - html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link { - color: #fff; } - html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item.is-active, - html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:focus, - html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:hover, - html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link.is-active { - background-color: #006b2d; - color: #fff; } - html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link::after { - border-color: #fff; } - html.theme--documenter-dark .navbar.is-success .navbar-burger { - color: #fff; } - @media screen and (min-width: 1056px) { - html.theme--documenter-dark .navbar.is-success .navbar-start > .navbar-item, - html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link, - html.theme--documenter-dark .navbar.is-success .navbar-end > .navbar-item, - html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link { - color: #fff; } - html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item.is-active, - html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:focus, - html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:hover, - html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link.is-active, - html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item:focus, - html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item:hover, - html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item.is-active, - html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:focus, - html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:hover, - html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link.is-active { - background-color: #006b2d; - color: #fff; } - html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link::after, - html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link::after { - border-color: #fff; } - html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link, - html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link, - html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link { - background-color: #006b2d; - color: #fff; } - html.theme--documenter-dark .navbar.is-success .navbar-dropdown a.navbar-item.is-active { - background-color: #008438; - color: #fff; } } - html.theme--documenter-dark .navbar.is-warning { - background-color: #ad8100; - color: #fff; } - html.theme--documenter-dark .navbar.is-warning .navbar-brand > .navbar-item, - html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link { - color: #fff; } - html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item.is-active, - html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:focus, - html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:hover, - html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link.is-active { - background-color: #946e00; - color: #fff; } - html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link::after { - border-color: #fff; } - html.theme--documenter-dark .navbar.is-warning .navbar-burger { - color: #fff; } - @media screen and (min-width: 1056px) { - html.theme--documenter-dark .navbar.is-warning .navbar-start > .navbar-item, - html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link, - html.theme--documenter-dark .navbar.is-warning .navbar-end > .navbar-item, - html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link { - color: #fff; } - html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item.is-active, - html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:focus, - html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:hover, - html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link.is-active, - html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item:focus, - html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item:hover, - html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item.is-active, - html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:focus, - html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:hover, - html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link.is-active { - background-color: #946e00; - color: #fff; } - html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link::after, - html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link::after { - border-color: #fff; } - html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link, - html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link, - html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link { - background-color: #946e00; - color: #fff; } - html.theme--documenter-dark .navbar.is-warning .navbar-dropdown a.navbar-item.is-active { - background-color: #ad8100; - color: #fff; } } - html.theme--documenter-dark .navbar.is-danger { - background-color: #9e1b0d; - color: #fff; } - html.theme--documenter-dark .navbar.is-danger .navbar-brand > .navbar-item, - html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link { - color: #fff; } - html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item.is-active, - html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:focus, - html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:hover, - html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link.is-active { - background-color: #86170b; - color: #fff; } - html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link::after { - border-color: #fff; } - html.theme--documenter-dark .navbar.is-danger .navbar-burger { - color: #fff; } - @media screen and (min-width: 1056px) { - html.theme--documenter-dark .navbar.is-danger .navbar-start > .navbar-item, - html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link, - html.theme--documenter-dark .navbar.is-danger .navbar-end > .navbar-item, - html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link { - color: #fff; } - html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item.is-active, - html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:focus, - html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:hover, - html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link.is-active, - html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item:focus, - html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item:hover, - html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item.is-active, - html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:focus, - html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:hover, - html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link.is-active { - background-color: #86170b; - color: #fff; } - html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link::after, - html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link::after { - border-color: #fff; } - html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link, - html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link, - html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link { - background-color: #86170b; - color: #fff; } - html.theme--documenter-dark .navbar.is-danger .navbar-dropdown a.navbar-item.is-active { - background-color: #9e1b0d; - color: #fff; } } - html.theme--documenter-dark .navbar > .container { - align-items: stretch; - display: flex; - min-height: 4rem; - width: 100%; } - html.theme--documenter-dark .navbar.has-shadow { - box-shadow: 0 2px 0 0 #282f2f; } - html.theme--documenter-dark .navbar.is-fixed-bottom, html.theme--documenter-dark .navbar.is-fixed-top { - left: 0; - position: fixed; - right: 0; - z-index: 30; } - html.theme--documenter-dark .navbar.is-fixed-bottom { - bottom: 0; } - html.theme--documenter-dark .navbar.is-fixed-bottom.has-shadow { - box-shadow: 0 -2px 0 0 #282f2f; } - html.theme--documenter-dark .navbar.is-fixed-top { - top: 0; } - html.theme--documenter-dark html.has-navbar-fixed-top, - html.theme--documenter-dark body.has-navbar-fixed-top { - padding-top: 4rem; } - html.theme--documenter-dark html.has-navbar-fixed-bottom, - html.theme--documenter-dark body.has-navbar-fixed-bottom { - padding-bottom: 4rem; } - html.theme--documenter-dark .navbar-brand, - html.theme--documenter-dark .navbar-tabs { - align-items: stretch; - display: flex; - flex-shrink: 0; - min-height: 4rem; } - html.theme--documenter-dark .navbar-brand a.navbar-item:focus, html.theme--documenter-dark .navbar-brand a.navbar-item:hover { - background-color: transparent; } - html.theme--documenter-dark .navbar-tabs { - -webkit-overflow-scrolling: touch; - max-width: 100vw; - overflow-x: auto; - overflow-y: hidden; } - html.theme--documenter-dark .navbar-burger { - color: #fff; - cursor: pointer; - display: block; - height: 4rem; - position: relative; - width: 4rem; - margin-left: auto; } - html.theme--documenter-dark .navbar-burger span { - background-color: currentColor; - display: block; - height: 1px; - left: calc(50% - 8px); - position: absolute; - transform-origin: center; - transition-duration: 86ms; - transition-property: background-color, opacity, transform; - transition-timing-function: ease-out; - width: 16px; } - html.theme--documenter-dark .navbar-burger span:nth-child(1) { - top: calc(50% - 6px); } - html.theme--documenter-dark .navbar-burger span:nth-child(2) { - top: calc(50% - 1px); } - html.theme--documenter-dark .navbar-burger span:nth-child(3) { - top: calc(50% + 4px); } - html.theme--documenter-dark .navbar-burger:hover { - background-color: rgba(0, 0, 0, 0.05); } - html.theme--documenter-dark .navbar-burger.is-active span:nth-child(1) { - transform: translateY(5px) rotate(45deg); } - html.theme--documenter-dark .navbar-burger.is-active span:nth-child(2) { - opacity: 0; } - html.theme--documenter-dark .navbar-burger.is-active span:nth-child(3) { - transform: translateY(-5px) rotate(-45deg); } - html.theme--documenter-dark .navbar-menu { - display: none; } - html.theme--documenter-dark .navbar-item, - html.theme--documenter-dark .navbar-link { - color: #fff; - display: block; - line-height: 1.5; - padding: 0.5rem 0.75rem; - position: relative; } - html.theme--documenter-dark .navbar-item .icon:only-child, - html.theme--documenter-dark .navbar-link .icon:only-child { - margin-left: -0.25rem; - margin-right: -0.25rem; } - html.theme--documenter-dark a.navbar-item, - html.theme--documenter-dark .navbar-link { - cursor: pointer; } - html.theme--documenter-dark a.navbar-item:focus, html.theme--documenter-dark a.navbar-item:focus-within, html.theme--documenter-dark a.navbar-item:hover, html.theme--documenter-dark a.navbar-item.is-active, - html.theme--documenter-dark .navbar-link:focus, - html.theme--documenter-dark .navbar-link:focus-within, - html.theme--documenter-dark .navbar-link:hover, - html.theme--documenter-dark .navbar-link.is-active { - background-color: transparent; - color: #1abc9c; } - html.theme--documenter-dark .navbar-item { - display: block; - flex-grow: 0; - flex-shrink: 0; } - html.theme--documenter-dark .navbar-item img { - max-height: 1.75rem; } - html.theme--documenter-dark .navbar-item.has-dropdown { - padding: 0; } - html.theme--documenter-dark .navbar-item.is-expanded { - flex-grow: 1; - flex-shrink: 1; } - html.theme--documenter-dark .navbar-item.is-tab { - border-bottom: 1px solid transparent; - min-height: 4rem; - padding-bottom: calc(0.5rem - 1px); } - html.theme--documenter-dark .navbar-item.is-tab:focus, html.theme--documenter-dark .navbar-item.is-tab:hover { - background-color: transparent; - border-bottom-color: #1abc9c; } - html.theme--documenter-dark .navbar-item.is-tab.is-active { - background-color: transparent; - border-bottom-color: #1abc9c; - border-bottom-style: solid; - border-bottom-width: 3px; - color: #1abc9c; - padding-bottom: calc(0.5rem - 3px); } - html.theme--documenter-dark .navbar-content { - flex-grow: 1; - flex-shrink: 1; } - html.theme--documenter-dark .navbar-link:not(.is-arrowless) { - padding-right: 2.5em; } - html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after { - border-color: #fff; - margin-top: -0.375em; - right: 1.125em; } - html.theme--documenter-dark .navbar-dropdown { - font-size: 0.875rem; - padding-bottom: 0.5rem; - padding-top: 0.5rem; } - html.theme--documenter-dark .navbar-dropdown .navbar-item { - padding-left: 1.5rem; - padding-right: 1.5rem; } - html.theme--documenter-dark .navbar-divider { - background-color: rgba(0, 0, 0, 0.2); - border: none; - display: none; - height: 2px; - margin: 0.5rem 0; } - @media screen and (max-width: 1055px) { - html.theme--documenter-dark .navbar > .container { - display: block; } - html.theme--documenter-dark .navbar-brand .navbar-item, - html.theme--documenter-dark .navbar-tabs .navbar-item { - align-items: center; - display: flex; } - html.theme--documenter-dark .navbar-link::after { - display: none; } - html.theme--documenter-dark .navbar-menu { - background-color: #375a7f; - box-shadow: 0 8px 16px rgba(10, 10, 10, 0.1); - padding: 0.5rem 0; } - html.theme--documenter-dark .navbar-menu.is-active { - display: block; } - html.theme--documenter-dark .navbar.is-fixed-bottom-touch, html.theme--documenter-dark .navbar.is-fixed-top-touch { - left: 0; - position: fixed; - right: 0; - z-index: 30; } - html.theme--documenter-dark .navbar.is-fixed-bottom-touch { - bottom: 0; } - html.theme--documenter-dark .navbar.is-fixed-bottom-touch.has-shadow { - box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } - html.theme--documenter-dark .navbar.is-fixed-top-touch { - top: 0; } - html.theme--documenter-dark .navbar.is-fixed-top .navbar-menu, html.theme--documenter-dark .navbar.is-fixed-top-touch .navbar-menu { - -webkit-overflow-scrolling: touch; - max-height: calc(100vh - 4rem); - overflow: auto; } - html.theme--documenter-dark html.has-navbar-fixed-top-touch, - html.theme--documenter-dark body.has-navbar-fixed-top-touch { - padding-top: 4rem; } - html.theme--documenter-dark html.has-navbar-fixed-bottom-touch, - html.theme--documenter-dark body.has-navbar-fixed-bottom-touch { - padding-bottom: 4rem; } } - @media screen and (min-width: 1056px) { - html.theme--documenter-dark .navbar, - html.theme--documenter-dark .navbar-menu, - html.theme--documenter-dark .navbar-start, - html.theme--documenter-dark .navbar-end { - align-items: stretch; - display: flex; } - html.theme--documenter-dark .navbar { - min-height: 4rem; } - html.theme--documenter-dark .navbar.is-spaced { - padding: 1rem 2rem; } - html.theme--documenter-dark .navbar.is-spaced .navbar-start, - html.theme--documenter-dark .navbar.is-spaced .navbar-end { - align-items: center; } - html.theme--documenter-dark .navbar.is-spaced a.navbar-item, - html.theme--documenter-dark .navbar.is-spaced .navbar-link { - border-radius: 0.4em; } - html.theme--documenter-dark .navbar.is-transparent a.navbar-item:focus, html.theme--documenter-dark .navbar.is-transparent a.navbar-item:hover, html.theme--documenter-dark .navbar.is-transparent a.navbar-item.is-active, - html.theme--documenter-dark .navbar.is-transparent .navbar-link:focus, - html.theme--documenter-dark .navbar.is-transparent .navbar-link:hover, - html.theme--documenter-dark .navbar.is-transparent .navbar-link.is-active { - background-color: transparent !important; } - html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link { - background-color: transparent !important; } - html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:focus, html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:hover { - background-color: transparent; - color: #dbdee0; } - html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active { - background-color: transparent; - color: #1abc9c; } - html.theme--documenter-dark .navbar-burger { - display: none; } - html.theme--documenter-dark .navbar-item, - html.theme--documenter-dark .navbar-link { - align-items: center; - display: flex; } - html.theme--documenter-dark .navbar-item { - display: flex; } - html.theme--documenter-dark .navbar-item.has-dropdown { - align-items: stretch; } - html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-link::after { - transform: rotate(135deg) translate(0.25em, -0.25em); } - html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-dropdown { - border-bottom: 1px solid rgba(0, 0, 0, 0.2); - border-radius: 8px 8px 0 0; - border-top: none; - bottom: 100%; - box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1); - top: auto; } - html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown { - display: block; } - .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed { - opacity: 1; - pointer-events: auto; - transform: translateY(0); } - html.theme--documenter-dark .navbar-menu { - flex-grow: 1; - flex-shrink: 0; } - html.theme--documenter-dark .navbar-start { - justify-content: flex-start; - margin-right: auto; } - html.theme--documenter-dark .navbar-end { - justify-content: flex-end; - margin-left: auto; } - html.theme--documenter-dark .navbar-dropdown { - background-color: #375a7f; - border-bottom-left-radius: 8px; - border-bottom-right-radius: 8px; - border-top: 1px solid rgba(0, 0, 0, 0.2); - box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1); - display: none; - font-size: 0.875rem; - left: 0; - min-width: 100%; - position: absolute; - top: 100%; - z-index: 20; } - html.theme--documenter-dark .navbar-dropdown .navbar-item { - padding: 0.375rem 1rem; - white-space: nowrap; } - html.theme--documenter-dark .navbar-dropdown a.navbar-item { - padding-right: 3rem; } - html.theme--documenter-dark .navbar-dropdown a.navbar-item:focus, html.theme--documenter-dark .navbar-dropdown a.navbar-item:hover { - background-color: transparent; - color: #dbdee0; } - html.theme--documenter-dark .navbar-dropdown a.navbar-item.is-active { - background-color: transparent; - color: #1abc9c; } - .navbar.is-spaced html.theme--documenter-dark .navbar-dropdown, html.theme--documenter-dark .navbar-dropdown.is-boxed { - border-radius: 8px; - border-top: none; - box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); - display: block; - opacity: 0; - pointer-events: none; - top: calc(100% + (-4px)); - transform: translateY(-5px); - transition-duration: 86ms; - transition-property: opacity, transform; } - html.theme--documenter-dark .navbar-dropdown.is-right { - left: auto; - right: 0; } - html.theme--documenter-dark .navbar-divider { - display: block; } - html.theme--documenter-dark .navbar > .container .navbar-brand, - html.theme--documenter-dark .container > .navbar .navbar-brand { - margin-left: -.75rem; } - html.theme--documenter-dark .navbar > .container .navbar-menu, - html.theme--documenter-dark .container > .navbar .navbar-menu { - margin-right: -.75rem; } - html.theme--documenter-dark .navbar.is-fixed-bottom-desktop, html.theme--documenter-dark .navbar.is-fixed-top-desktop { - left: 0; - position: fixed; - right: 0; - z-index: 30; } - html.theme--documenter-dark .navbar.is-fixed-bottom-desktop { - bottom: 0; } - html.theme--documenter-dark .navbar.is-fixed-bottom-desktop.has-shadow { - box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } - html.theme--documenter-dark .navbar.is-fixed-top-desktop { - top: 0; } - html.theme--documenter-dark html.has-navbar-fixed-top-desktop, - html.theme--documenter-dark body.has-navbar-fixed-top-desktop { - padding-top: 4rem; } - html.theme--documenter-dark html.has-navbar-fixed-bottom-desktop, - html.theme--documenter-dark body.has-navbar-fixed-bottom-desktop { - padding-bottom: 4rem; } - html.theme--documenter-dark html.has-spaced-navbar-fixed-top, - html.theme--documenter-dark body.has-spaced-navbar-fixed-top { - padding-top: 6rem; } - html.theme--documenter-dark html.has-spaced-navbar-fixed-bottom, - html.theme--documenter-dark body.has-spaced-navbar-fixed-bottom { - padding-bottom: 6rem; } - html.theme--documenter-dark a.navbar-item.is-active, - html.theme--documenter-dark .navbar-link.is-active { - color: #1abc9c; } - html.theme--documenter-dark a.navbar-item.is-active:not(:focus):not(:hover), - html.theme--documenter-dark .navbar-link.is-active:not(:focus):not(:hover) { - background-color: transparent; } - html.theme--documenter-dark .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .navbar-item.has-dropdown:hover .navbar-link, html.theme--documenter-dark .navbar-item.has-dropdown.is-active .navbar-link { - background-color: transparent; } } - html.theme--documenter-dark .hero.is-fullheight-with-navbar { - min-height: calc(100vh - 4rem); } - html.theme--documenter-dark .pagination { - font-size: 15px; - margin: -0.25rem; } - html.theme--documenter-dark .pagination.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination { - font-size: 0.85em; } - html.theme--documenter-dark .pagination.is-medium { - font-size: 1.25rem; } - html.theme--documenter-dark .pagination.is-large { - font-size: 1.5rem; } - html.theme--documenter-dark .pagination.is-rounded .pagination-previous, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-previous, - html.theme--documenter-dark .pagination.is-rounded .pagination-next, - html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-next { - padding-left: 1em; - padding-right: 1em; - border-radius: 290486px; } - html.theme--documenter-dark .pagination.is-rounded .pagination-link, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-link { - border-radius: 290486px; } - html.theme--documenter-dark .pagination, - html.theme--documenter-dark .pagination-list { - align-items: center; - display: flex; - justify-content: center; - text-align: center; } - html.theme--documenter-dark .pagination-previous, - html.theme--documenter-dark .pagination-next, - html.theme--documenter-dark .pagination-link, - html.theme--documenter-dark .pagination-ellipsis { - font-size: 1em; - justify-content: center; - margin: 0.25rem; - padding-left: 0.5em; - padding-right: 0.5em; - text-align: center; } - html.theme--documenter-dark .pagination-previous, - html.theme--documenter-dark .pagination-next, - html.theme--documenter-dark .pagination-link { - border-color: #5e6d6f; - color: #1abc9c; - min-width: 2.25em; } - html.theme--documenter-dark .pagination-previous:hover, - html.theme--documenter-dark .pagination-next:hover, - html.theme--documenter-dark .pagination-link:hover { - border-color: #8c9b9d; - color: #1dd2af; } - html.theme--documenter-dark .pagination-previous:focus, - html.theme--documenter-dark .pagination-next:focus, - html.theme--documenter-dark .pagination-link:focus { - border-color: #8c9b9d; } - html.theme--documenter-dark .pagination-previous:active, - html.theme--documenter-dark .pagination-next:active, - html.theme--documenter-dark .pagination-link:active { - box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); } - html.theme--documenter-dark .pagination-previous[disabled], - html.theme--documenter-dark .pagination-next[disabled], - html.theme--documenter-dark .pagination-link[disabled] { - background-color: #dbdee0; - border-color: #dbdee0; - box-shadow: none; - color: #5e6d6f; - opacity: 0.5; } - html.theme--documenter-dark .pagination-previous, - html.theme--documenter-dark .pagination-next { - padding-left: 0.75em; - padding-right: 0.75em; - white-space: nowrap; } - html.theme--documenter-dark .pagination-link.is-current { - background-color: #1abc9c; - border-color: #1abc9c; - color: #fff; } - html.theme--documenter-dark .pagination-ellipsis { - color: #8c9b9d; - pointer-events: none; } - html.theme--documenter-dark .pagination-list { - flex-wrap: wrap; } - @media screen and (max-width: 768px) { - html.theme--documenter-dark .pagination { - flex-wrap: wrap; } - html.theme--documenter-dark .pagination-previous, - html.theme--documenter-dark .pagination-next { - flex-grow: 1; - flex-shrink: 1; } - html.theme--documenter-dark .pagination-list li { - flex-grow: 1; - flex-shrink: 1; } } - @media screen and (min-width: 769px), print { - html.theme--documenter-dark .pagination-list { - flex-grow: 1; - flex-shrink: 1; - justify-content: flex-start; - order: 1; } - html.theme--documenter-dark .pagination-previous { - order: 2; } - html.theme--documenter-dark .pagination-next { - order: 3; } - html.theme--documenter-dark .pagination { - justify-content: space-between; } - html.theme--documenter-dark .pagination.is-centered .pagination-previous { - order: 1; } - html.theme--documenter-dark .pagination.is-centered .pagination-list { - justify-content: center; - order: 2; } - html.theme--documenter-dark .pagination.is-centered .pagination-next { - order: 3; } - html.theme--documenter-dark .pagination.is-right .pagination-previous { - order: 1; } - html.theme--documenter-dark .pagination.is-right .pagination-next { - order: 2; } - html.theme--documenter-dark .pagination.is-right .pagination-list { - justify-content: flex-end; - order: 3; } } - html.theme--documenter-dark .panel { - font-size: 15px; } - html.theme--documenter-dark .panel:not(:last-child) { - margin-bottom: 1.5rem; } - html.theme--documenter-dark .panel-heading, - html.theme--documenter-dark .panel-tabs, - html.theme--documenter-dark .panel-block { - border-bottom: 1px solid #5e6d6f; - border-left: 1px solid #5e6d6f; - border-right: 1px solid #5e6d6f; } - html.theme--documenter-dark .panel-heading:first-child, - html.theme--documenter-dark .panel-tabs:first-child, - html.theme--documenter-dark .panel-block:first-child { - border-top: 1px solid #5e6d6f; } - html.theme--documenter-dark .panel-heading { - background-color: #282f2f; - border-radius: 0.4em 0.4em 0 0; - color: #f2f2f2; - font-size: 1.25em; - font-weight: 300; - line-height: 1.25; - padding: 0.5em 0.75em; } - html.theme--documenter-dark .panel-tabs { - align-items: flex-end; - display: flex; - font-size: 0.875em; - justify-content: center; } - html.theme--documenter-dark .panel-tabs a { - border-bottom: 1px solid #5e6d6f; - margin-bottom: -1px; - padding: 0.5em; } - html.theme--documenter-dark .panel-tabs a.is-active { - border-bottom-color: #343c3d; - color: #17a689; } - html.theme--documenter-dark .panel-list a { - color: #fff; } - html.theme--documenter-dark .panel-list a:hover { - color: #1abc9c; } - html.theme--documenter-dark .panel-block { - align-items: center; - color: #f2f2f2; - display: flex; - justify-content: flex-start; - padding: 0.5em 0.75em; } - html.theme--documenter-dark .panel-block input[type="checkbox"] { - margin-right: 0.75em; } - html.theme--documenter-dark .panel-block > .control { - flex-grow: 1; - flex-shrink: 1; - width: 100%; } - html.theme--documenter-dark .panel-block.is-wrapped { - flex-wrap: wrap; } - html.theme--documenter-dark .panel-block.is-active { - border-left-color: #1abc9c; - color: #17a689; } - html.theme--documenter-dark .panel-block.is-active .panel-icon { - color: #1abc9c; } - html.theme--documenter-dark a.panel-block, - html.theme--documenter-dark label.panel-block { - cursor: pointer; } - html.theme--documenter-dark a.panel-block:hover, - html.theme--documenter-dark label.panel-block:hover { - background-color: #282f2f; } - html.theme--documenter-dark .panel-icon { - display: inline-block; - font-size: 14px; - height: 1em; - line-height: 1em; - text-align: center; - vertical-align: top; - width: 1em; - color: white; - margin-right: 0.75em; } - html.theme--documenter-dark .panel-icon .fa { - font-size: inherit; - line-height: inherit; } - html.theme--documenter-dark .tabs { - -webkit-overflow-scrolling: touch; - align-items: stretch; - display: flex; - font-size: 15px; - justify-content: space-between; - overflow: hidden; - overflow-x: auto; - white-space: nowrap; } - html.theme--documenter-dark .tabs a { - align-items: center; - border-bottom-color: #5e6d6f; - border-bottom-style: solid; - border-bottom-width: 1px; - color: #fff; - display: flex; - justify-content: center; - margin-bottom: -1px; - padding: 0.5em 1em; - vertical-align: top; } - html.theme--documenter-dark .tabs a:hover { - border-bottom-color: #f2f2f2; - color: #f2f2f2; } - html.theme--documenter-dark .tabs li { - display: block; } - html.theme--documenter-dark .tabs li.is-active a { - border-bottom-color: #1abc9c; - color: #1abc9c; } - html.theme--documenter-dark .tabs ul { - align-items: center; - border-bottom-color: #5e6d6f; - border-bottom-style: solid; - border-bottom-width: 1px; - display: flex; - flex-grow: 1; - flex-shrink: 0; - justify-content: flex-start; } - html.theme--documenter-dark .tabs ul.is-left { - padding-right: 0.75em; } - html.theme--documenter-dark .tabs ul.is-center { - flex: none; - justify-content: center; - padding-left: 0.75em; - padding-right: 0.75em; } - html.theme--documenter-dark .tabs ul.is-right { - justify-content: flex-end; - padding-left: 0.75em; } - html.theme--documenter-dark .tabs .icon:first-child { - margin-right: 0.5em; } - html.theme--documenter-dark .tabs .icon:last-child { - margin-left: 0.5em; } - html.theme--documenter-dark .tabs.is-centered ul { - justify-content: center; } - html.theme--documenter-dark .tabs.is-right ul { - justify-content: flex-end; } - html.theme--documenter-dark .tabs.is-boxed a { - border: 1px solid transparent; - border-radius: 0.4em 0.4em 0 0; } - html.theme--documenter-dark .tabs.is-boxed a:hover { - background-color: #282f2f; - border-bottom-color: #5e6d6f; } - html.theme--documenter-dark .tabs.is-boxed li.is-active a { - background-color: white; - border-color: #5e6d6f; - border-bottom-color: transparent !important; } - html.theme--documenter-dark .tabs.is-fullwidth li { - flex-grow: 1; - flex-shrink: 0; } - html.theme--documenter-dark .tabs.is-toggle a { - border-color: #5e6d6f; - border-style: solid; - border-width: 1px; - margin-bottom: 0; - position: relative; } - html.theme--documenter-dark .tabs.is-toggle a:hover { - background-color: #282f2f; - border-color: #8c9b9d; - z-index: 2; } - html.theme--documenter-dark .tabs.is-toggle li + li { - margin-left: -1px; } - html.theme--documenter-dark .tabs.is-toggle li:first-child a { - border-radius: 0.4em 0 0 0.4em; } - html.theme--documenter-dark .tabs.is-toggle li:last-child a { - border-radius: 0 0.4em 0.4em 0; } - html.theme--documenter-dark .tabs.is-toggle li.is-active a { - background-color: #1abc9c; - border-color: #1abc9c; - color: #fff; - z-index: 1; } - html.theme--documenter-dark .tabs.is-toggle ul { - border-bottom: none; } - html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:first-child a { - border-bottom-left-radius: 290486px; - border-top-left-radius: 290486px; - padding-left: 1.25em; } - html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:last-child a { - border-bottom-right-radius: 290486px; - border-top-right-radius: 290486px; - padding-right: 1.25em; } - html.theme--documenter-dark .tabs.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.tabs { - font-size: 0.85em; } - html.theme--documenter-dark .tabs.is-medium { - font-size: 1.25rem; } - html.theme--documenter-dark .tabs.is-large { - font-size: 1.5rem; } - html.theme--documenter-dark .column { - display: block; - flex-basis: 0; - flex-grow: 1; - flex-shrink: 1; - padding: 0.75rem; } - .columns.is-mobile > html.theme--documenter-dark .column.is-narrow { - flex: none; } - .columns.is-mobile > html.theme--documenter-dark .column.is-full { - flex: none; - width: 100%; } - .columns.is-mobile > html.theme--documenter-dark .column.is-three-quarters { - flex: none; - width: 75%; } - .columns.is-mobile > html.theme--documenter-dark .column.is-two-thirds { - flex: none; - width: 66.6666%; } - .columns.is-mobile > html.theme--documenter-dark .column.is-half { - flex: none; - width: 50%; } - .columns.is-mobile > html.theme--documenter-dark .column.is-one-third { - flex: none; - width: 33.3333%; } - .columns.is-mobile > html.theme--documenter-dark .column.is-one-quarter { - flex: none; - width: 25%; } - .columns.is-mobile > html.theme--documenter-dark .column.is-one-fifth { - flex: none; - width: 20%; } - .columns.is-mobile > html.theme--documenter-dark .column.is-two-fifths { - flex: none; - width: 40%; } - .columns.is-mobile > html.theme--documenter-dark .column.is-three-fifths { - flex: none; - width: 60%; } - .columns.is-mobile > html.theme--documenter-dark .column.is-four-fifths { - flex: none; - width: 80%; } - .columns.is-mobile > html.theme--documenter-dark .column.is-offset-three-quarters { - margin-left: 75%; } - .columns.is-mobile > html.theme--documenter-dark .column.is-offset-two-thirds { - margin-left: 66.6666%; } - .columns.is-mobile > html.theme--documenter-dark .column.is-offset-half { - margin-left: 50%; } - .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-third { - margin-left: 33.3333%; } - .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-quarter { - margin-left: 25%; } - .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-fifth { - margin-left: 20%; } - .columns.is-mobile > html.theme--documenter-dark .column.is-offset-two-fifths { - margin-left: 40%; } - .columns.is-mobile > html.theme--documenter-dark .column.is-offset-three-fifths { - margin-left: 60%; } - .columns.is-mobile > html.theme--documenter-dark .column.is-offset-four-fifths { - margin-left: 80%; } - .columns.is-mobile > html.theme--documenter-dark .column.is-0 { - flex: none; - width: 0%; } - .columns.is-mobile > html.theme--documenter-dark .column.is-offset-0 { - margin-left: 0%; } - .columns.is-mobile > html.theme--documenter-dark .column.is-1 { - flex: none; - width: 8.3333333333%; } - .columns.is-mobile > html.theme--documenter-dark .column.is-offset-1 { - margin-left: 8.3333333333%; } - .columns.is-mobile > html.theme--documenter-dark .column.is-2 { - flex: none; - width: 16.6666666667%; } - .columns.is-mobile > html.theme--documenter-dark .column.is-offset-2 { - margin-left: 16.6666666667%; } - .columns.is-mobile > html.theme--documenter-dark .column.is-3 { - flex: none; - width: 25%; } - .columns.is-mobile > html.theme--documenter-dark .column.is-offset-3 { - margin-left: 25%; } - .columns.is-mobile > html.theme--documenter-dark .column.is-4 { - flex: none; - width: 33.3333333333%; } - .columns.is-mobile > html.theme--documenter-dark .column.is-offset-4 { - margin-left: 33.3333333333%; } - .columns.is-mobile > html.theme--documenter-dark .column.is-5 { - flex: none; - width: 41.6666666667%; } - .columns.is-mobile > html.theme--documenter-dark .column.is-offset-5 { - margin-left: 41.6666666667%; } - .columns.is-mobile > html.theme--documenter-dark .column.is-6 { - flex: none; - width: 50%; } - .columns.is-mobile > html.theme--documenter-dark .column.is-offset-6 { - margin-left: 50%; } - .columns.is-mobile > html.theme--documenter-dark .column.is-7 { - flex: none; - width: 58.3333333333%; } - .columns.is-mobile > html.theme--documenter-dark .column.is-offset-7 { - margin-left: 58.3333333333%; } - .columns.is-mobile > html.theme--documenter-dark .column.is-8 { - flex: none; - width: 66.6666666667%; } - .columns.is-mobile > html.theme--documenter-dark .column.is-offset-8 { - margin-left: 66.6666666667%; } - .columns.is-mobile > html.theme--documenter-dark .column.is-9 { - flex: none; - width: 75%; } - .columns.is-mobile > html.theme--documenter-dark .column.is-offset-9 { - margin-left: 75%; } - .columns.is-mobile > html.theme--documenter-dark .column.is-10 { - flex: none; - width: 83.3333333333%; } - .columns.is-mobile > html.theme--documenter-dark .column.is-offset-10 { - margin-left: 83.3333333333%; } - .columns.is-mobile > html.theme--documenter-dark .column.is-11 { - flex: none; - width: 91.6666666667%; } - .columns.is-mobile > html.theme--documenter-dark .column.is-offset-11 { - margin-left: 91.6666666667%; } - .columns.is-mobile > html.theme--documenter-dark .column.is-12 { - flex: none; - width: 100%; } - .columns.is-mobile > html.theme--documenter-dark .column.is-offset-12 { - margin-left: 100%; } - @media screen and (max-width: 768px) { - html.theme--documenter-dark .column.is-narrow-mobile { - flex: none; } - html.theme--documenter-dark .column.is-full-mobile { - flex: none; - width: 100%; } - html.theme--documenter-dark .column.is-three-quarters-mobile { - flex: none; - width: 75%; } - html.theme--documenter-dark .column.is-two-thirds-mobile { - flex: none; - width: 66.6666%; } - html.theme--documenter-dark .column.is-half-mobile { - flex: none; - width: 50%; } - html.theme--documenter-dark .column.is-one-third-mobile { - flex: none; - width: 33.3333%; } - html.theme--documenter-dark .column.is-one-quarter-mobile { - flex: none; - width: 25%; } - html.theme--documenter-dark .column.is-one-fifth-mobile { - flex: none; - width: 20%; } - html.theme--documenter-dark .column.is-two-fifths-mobile { - flex: none; - width: 40%; } - html.theme--documenter-dark .column.is-three-fifths-mobile { - flex: none; - width: 60%; } - html.theme--documenter-dark .column.is-four-fifths-mobile { - flex: none; - width: 80%; } - html.theme--documenter-dark .column.is-offset-three-quarters-mobile { - margin-left: 75%; } - html.theme--documenter-dark .column.is-offset-two-thirds-mobile { - margin-left: 66.6666%; } - html.theme--documenter-dark .column.is-offset-half-mobile { - margin-left: 50%; } - html.theme--documenter-dark .column.is-offset-one-third-mobile { - margin-left: 33.3333%; } - html.theme--documenter-dark .column.is-offset-one-quarter-mobile { - margin-left: 25%; } - html.theme--documenter-dark .column.is-offset-one-fifth-mobile { - margin-left: 20%; } - html.theme--documenter-dark .column.is-offset-two-fifths-mobile { - margin-left: 40%; } - html.theme--documenter-dark .column.is-offset-three-fifths-mobile { - margin-left: 60%; } - html.theme--documenter-dark .column.is-offset-four-fifths-mobile { - margin-left: 80%; } - html.theme--documenter-dark .column.is-0-mobile { - flex: none; - width: 0%; } - html.theme--documenter-dark .column.is-offset-0-mobile { - margin-left: 0%; } - html.theme--documenter-dark .column.is-1-mobile { - flex: none; - width: 8.3333333333%; } - html.theme--documenter-dark .column.is-offset-1-mobile { - margin-left: 8.3333333333%; } - html.theme--documenter-dark .column.is-2-mobile { - flex: none; - width: 16.6666666667%; } - html.theme--documenter-dark .column.is-offset-2-mobile { - margin-left: 16.6666666667%; } - html.theme--documenter-dark .column.is-3-mobile { - flex: none; - width: 25%; } - html.theme--documenter-dark .column.is-offset-3-mobile { - margin-left: 25%; } - html.theme--documenter-dark .column.is-4-mobile { - flex: none; - width: 33.3333333333%; } - html.theme--documenter-dark .column.is-offset-4-mobile { - margin-left: 33.3333333333%; } - html.theme--documenter-dark .column.is-5-mobile { - flex: none; - width: 41.6666666667%; } - html.theme--documenter-dark .column.is-offset-5-mobile { - margin-left: 41.6666666667%; } - html.theme--documenter-dark .column.is-6-mobile { - flex: none; - width: 50%; } - html.theme--documenter-dark .column.is-offset-6-mobile { - margin-left: 50%; } - html.theme--documenter-dark .column.is-7-mobile { - flex: none; - width: 58.3333333333%; } - html.theme--documenter-dark .column.is-offset-7-mobile { - margin-left: 58.3333333333%; } - html.theme--documenter-dark .column.is-8-mobile { - flex: none; - width: 66.6666666667%; } - html.theme--documenter-dark .column.is-offset-8-mobile { - margin-left: 66.6666666667%; } - html.theme--documenter-dark .column.is-9-mobile { - flex: none; - width: 75%; } - html.theme--documenter-dark .column.is-offset-9-mobile { - margin-left: 75%; } - html.theme--documenter-dark .column.is-10-mobile { - flex: none; - width: 83.3333333333%; } - html.theme--documenter-dark .column.is-offset-10-mobile { - margin-left: 83.3333333333%; } - html.theme--documenter-dark .column.is-11-mobile { - flex: none; - width: 91.6666666667%; } - html.theme--documenter-dark .column.is-offset-11-mobile { - margin-left: 91.6666666667%; } - html.theme--documenter-dark .column.is-12-mobile { - flex: none; - width: 100%; } - html.theme--documenter-dark .column.is-offset-12-mobile { - margin-left: 100%; } } - @media screen and (min-width: 769px), print { - html.theme--documenter-dark .column.is-narrow, html.theme--documenter-dark .column.is-narrow-tablet { - flex: none; } - html.theme--documenter-dark .column.is-full, html.theme--documenter-dark .column.is-full-tablet { - flex: none; - width: 100%; } - html.theme--documenter-dark .column.is-three-quarters, html.theme--documenter-dark .column.is-three-quarters-tablet { - flex: none; - width: 75%; } - html.theme--documenter-dark .column.is-two-thirds, html.theme--documenter-dark .column.is-two-thirds-tablet { - flex: none; - width: 66.6666%; } - html.theme--documenter-dark .column.is-half, html.theme--documenter-dark .column.is-half-tablet { - flex: none; - width: 50%; } - html.theme--documenter-dark .column.is-one-third, html.theme--documenter-dark .column.is-one-third-tablet { - flex: none; - width: 33.3333%; } - html.theme--documenter-dark .column.is-one-quarter, html.theme--documenter-dark .column.is-one-quarter-tablet { - flex: none; - width: 25%; } - html.theme--documenter-dark .column.is-one-fifth, html.theme--documenter-dark .column.is-one-fifth-tablet { - flex: none; - width: 20%; } - html.theme--documenter-dark .column.is-two-fifths, html.theme--documenter-dark .column.is-two-fifths-tablet { - flex: none; - width: 40%; } - html.theme--documenter-dark .column.is-three-fifths, html.theme--documenter-dark .column.is-three-fifths-tablet { - flex: none; - width: 60%; } - html.theme--documenter-dark .column.is-four-fifths, html.theme--documenter-dark .column.is-four-fifths-tablet { - flex: none; - width: 80%; } - html.theme--documenter-dark .column.is-offset-three-quarters, html.theme--documenter-dark .column.is-offset-three-quarters-tablet { - margin-left: 75%; } - html.theme--documenter-dark .column.is-offset-two-thirds, html.theme--documenter-dark .column.is-offset-two-thirds-tablet { - margin-left: 66.6666%; } - html.theme--documenter-dark .column.is-offset-half, html.theme--documenter-dark .column.is-offset-half-tablet { - margin-left: 50%; } - html.theme--documenter-dark .column.is-offset-one-third, html.theme--documenter-dark .column.is-offset-one-third-tablet { - margin-left: 33.3333%; } - html.theme--documenter-dark .column.is-offset-one-quarter, html.theme--documenter-dark .column.is-offset-one-quarter-tablet { - margin-left: 25%; } - html.theme--documenter-dark .column.is-offset-one-fifth, html.theme--documenter-dark .column.is-offset-one-fifth-tablet { - margin-left: 20%; } - html.theme--documenter-dark .column.is-offset-two-fifths, html.theme--documenter-dark .column.is-offset-two-fifths-tablet { - margin-left: 40%; } - html.theme--documenter-dark .column.is-offset-three-fifths, html.theme--documenter-dark .column.is-offset-three-fifths-tablet { - margin-left: 60%; } - html.theme--documenter-dark .column.is-offset-four-fifths, html.theme--documenter-dark .column.is-offset-four-fifths-tablet { - margin-left: 80%; } - html.theme--documenter-dark .column.is-0, html.theme--documenter-dark .column.is-0-tablet { - flex: none; - width: 0%; } - html.theme--documenter-dark .column.is-offset-0, html.theme--documenter-dark .column.is-offset-0-tablet { - margin-left: 0%; } - html.theme--documenter-dark .column.is-1, html.theme--documenter-dark .column.is-1-tablet { - flex: none; - width: 8.3333333333%; } - html.theme--documenter-dark .column.is-offset-1, html.theme--documenter-dark .column.is-offset-1-tablet { - margin-left: 8.3333333333%; } - html.theme--documenter-dark .column.is-2, html.theme--documenter-dark .column.is-2-tablet { - flex: none; - width: 16.6666666667%; } - html.theme--documenter-dark .column.is-offset-2, html.theme--documenter-dark .column.is-offset-2-tablet { - margin-left: 16.6666666667%; } - html.theme--documenter-dark .column.is-3, html.theme--documenter-dark .column.is-3-tablet { - flex: none; - width: 25%; } - html.theme--documenter-dark .column.is-offset-3, html.theme--documenter-dark .column.is-offset-3-tablet { - margin-left: 25%; } - html.theme--documenter-dark .column.is-4, html.theme--documenter-dark .column.is-4-tablet { - flex: none; - width: 33.3333333333%; } - html.theme--documenter-dark .column.is-offset-4, html.theme--documenter-dark .column.is-offset-4-tablet { - margin-left: 33.3333333333%; } - html.theme--documenter-dark .column.is-5, html.theme--documenter-dark .column.is-5-tablet { - flex: none; - width: 41.6666666667%; } - html.theme--documenter-dark .column.is-offset-5, html.theme--documenter-dark .column.is-offset-5-tablet { - margin-left: 41.6666666667%; } - html.theme--documenter-dark .column.is-6, html.theme--documenter-dark .column.is-6-tablet { - flex: none; - width: 50%; } - html.theme--documenter-dark .column.is-offset-6, html.theme--documenter-dark .column.is-offset-6-tablet { - margin-left: 50%; } - html.theme--documenter-dark .column.is-7, html.theme--documenter-dark .column.is-7-tablet { - flex: none; - width: 58.3333333333%; } - html.theme--documenter-dark .column.is-offset-7, html.theme--documenter-dark .column.is-offset-7-tablet { - margin-left: 58.3333333333%; } - html.theme--documenter-dark .column.is-8, html.theme--documenter-dark .column.is-8-tablet { - flex: none; - width: 66.6666666667%; } - html.theme--documenter-dark .column.is-offset-8, html.theme--documenter-dark .column.is-offset-8-tablet { - margin-left: 66.6666666667%; } - html.theme--documenter-dark .column.is-9, html.theme--documenter-dark .column.is-9-tablet { - flex: none; - width: 75%; } - html.theme--documenter-dark .column.is-offset-9, html.theme--documenter-dark .column.is-offset-9-tablet { - margin-left: 75%; } - html.theme--documenter-dark .column.is-10, html.theme--documenter-dark .column.is-10-tablet { - flex: none; - width: 83.3333333333%; } - html.theme--documenter-dark .column.is-offset-10, html.theme--documenter-dark .column.is-offset-10-tablet { - margin-left: 83.3333333333%; } - html.theme--documenter-dark .column.is-11, html.theme--documenter-dark .column.is-11-tablet { - flex: none; - width: 91.6666666667%; } - html.theme--documenter-dark .column.is-offset-11, html.theme--documenter-dark .column.is-offset-11-tablet { - margin-left: 91.6666666667%; } - html.theme--documenter-dark .column.is-12, html.theme--documenter-dark .column.is-12-tablet { - flex: none; - width: 100%; } - html.theme--documenter-dark .column.is-offset-12, html.theme--documenter-dark .column.is-offset-12-tablet { - margin-left: 100%; } } - @media screen and (max-width: 1055px) { - html.theme--documenter-dark .column.is-narrow-touch { - flex: none; } - html.theme--documenter-dark .column.is-full-touch { - flex: none; - width: 100%; } - html.theme--documenter-dark .column.is-three-quarters-touch { - flex: none; - width: 75%; } - html.theme--documenter-dark .column.is-two-thirds-touch { - flex: none; - width: 66.6666%; } - html.theme--documenter-dark .column.is-half-touch { - flex: none; - width: 50%; } - html.theme--documenter-dark .column.is-one-third-touch { - flex: none; - width: 33.3333%; } - html.theme--documenter-dark .column.is-one-quarter-touch { - flex: none; - width: 25%; } - html.theme--documenter-dark .column.is-one-fifth-touch { - flex: none; - width: 20%; } - html.theme--documenter-dark .column.is-two-fifths-touch { - flex: none; - width: 40%; } - html.theme--documenter-dark .column.is-three-fifths-touch { - flex: none; - width: 60%; } - html.theme--documenter-dark .column.is-four-fifths-touch { - flex: none; - width: 80%; } - html.theme--documenter-dark .column.is-offset-three-quarters-touch { - margin-left: 75%; } - html.theme--documenter-dark .column.is-offset-two-thirds-touch { - margin-left: 66.6666%; } - html.theme--documenter-dark .column.is-offset-half-touch { - margin-left: 50%; } - html.theme--documenter-dark .column.is-offset-one-third-touch { - margin-left: 33.3333%; } - html.theme--documenter-dark .column.is-offset-one-quarter-touch { - margin-left: 25%; } - html.theme--documenter-dark .column.is-offset-one-fifth-touch { - margin-left: 20%; } - html.theme--documenter-dark .column.is-offset-two-fifths-touch { - margin-left: 40%; } - html.theme--documenter-dark .column.is-offset-three-fifths-touch { - margin-left: 60%; } - html.theme--documenter-dark .column.is-offset-four-fifths-touch { - margin-left: 80%; } - html.theme--documenter-dark .column.is-0-touch { - flex: none; - width: 0%; } - html.theme--documenter-dark .column.is-offset-0-touch { - margin-left: 0%; } - html.theme--documenter-dark .column.is-1-touch { - flex: none; - width: 8.3333333333%; } - html.theme--documenter-dark .column.is-offset-1-touch { - margin-left: 8.3333333333%; } - html.theme--documenter-dark .column.is-2-touch { - flex: none; - width: 16.6666666667%; } - html.theme--documenter-dark .column.is-offset-2-touch { - margin-left: 16.6666666667%; } - html.theme--documenter-dark .column.is-3-touch { - flex: none; - width: 25%; } - html.theme--documenter-dark .column.is-offset-3-touch { - margin-left: 25%; } - html.theme--documenter-dark .column.is-4-touch { - flex: none; - width: 33.3333333333%; } - html.theme--documenter-dark .column.is-offset-4-touch { - margin-left: 33.3333333333%; } - html.theme--documenter-dark .column.is-5-touch { - flex: none; - width: 41.6666666667%; } - html.theme--documenter-dark .column.is-offset-5-touch { - margin-left: 41.6666666667%; } - html.theme--documenter-dark .column.is-6-touch { - flex: none; - width: 50%; } - html.theme--documenter-dark .column.is-offset-6-touch { - margin-left: 50%; } - html.theme--documenter-dark .column.is-7-touch { - flex: none; - width: 58.3333333333%; } - html.theme--documenter-dark .column.is-offset-7-touch { - margin-left: 58.3333333333%; } - html.theme--documenter-dark .column.is-8-touch { - flex: none; - width: 66.6666666667%; } - html.theme--documenter-dark .column.is-offset-8-touch { - margin-left: 66.6666666667%; } - html.theme--documenter-dark .column.is-9-touch { - flex: none; - width: 75%; } - html.theme--documenter-dark .column.is-offset-9-touch { - margin-left: 75%; } - html.theme--documenter-dark .column.is-10-touch { - flex: none; - width: 83.3333333333%; } - html.theme--documenter-dark .column.is-offset-10-touch { - margin-left: 83.3333333333%; } - html.theme--documenter-dark .column.is-11-touch { - flex: none; - width: 91.6666666667%; } - html.theme--documenter-dark .column.is-offset-11-touch { - margin-left: 91.6666666667%; } - html.theme--documenter-dark .column.is-12-touch { - flex: none; - width: 100%; } - html.theme--documenter-dark .column.is-offset-12-touch { - margin-left: 100%; } } - @media screen and (min-width: 1056px) { - html.theme--documenter-dark .column.is-narrow-desktop { - flex: none; } - html.theme--documenter-dark .column.is-full-desktop { - flex: none; - width: 100%; } - html.theme--documenter-dark .column.is-three-quarters-desktop { - flex: none; - width: 75%; } - html.theme--documenter-dark .column.is-two-thirds-desktop { - flex: none; - width: 66.6666%; } - html.theme--documenter-dark .column.is-half-desktop { - flex: none; - width: 50%; } - html.theme--documenter-dark .column.is-one-third-desktop { - flex: none; - width: 33.3333%; } - html.theme--documenter-dark .column.is-one-quarter-desktop { - flex: none; - width: 25%; } - html.theme--documenter-dark .column.is-one-fifth-desktop { - flex: none; - width: 20%; } - html.theme--documenter-dark .column.is-two-fifths-desktop { - flex: none; - width: 40%; } - html.theme--documenter-dark .column.is-three-fifths-desktop { - flex: none; - width: 60%; } - html.theme--documenter-dark .column.is-four-fifths-desktop { - flex: none; - width: 80%; } - html.theme--documenter-dark .column.is-offset-three-quarters-desktop { - margin-left: 75%; } - html.theme--documenter-dark .column.is-offset-two-thirds-desktop { - margin-left: 66.6666%; } - html.theme--documenter-dark .column.is-offset-half-desktop { - margin-left: 50%; } - html.theme--documenter-dark .column.is-offset-one-third-desktop { - margin-left: 33.3333%; } - html.theme--documenter-dark .column.is-offset-one-quarter-desktop { - margin-left: 25%; } - html.theme--documenter-dark .column.is-offset-one-fifth-desktop { - margin-left: 20%; } - html.theme--documenter-dark .column.is-offset-two-fifths-desktop { - margin-left: 40%; } - html.theme--documenter-dark .column.is-offset-three-fifths-desktop { - margin-left: 60%; } - html.theme--documenter-dark .column.is-offset-four-fifths-desktop { - margin-left: 80%; } - html.theme--documenter-dark .column.is-0-desktop { - flex: none; - width: 0%; } - html.theme--documenter-dark .column.is-offset-0-desktop { - margin-left: 0%; } - html.theme--documenter-dark .column.is-1-desktop { - flex: none; - width: 8.3333333333%; } - html.theme--documenter-dark .column.is-offset-1-desktop { - margin-left: 8.3333333333%; } - html.theme--documenter-dark .column.is-2-desktop { - flex: none; - width: 16.6666666667%; } - html.theme--documenter-dark .column.is-offset-2-desktop { - margin-left: 16.6666666667%; } - html.theme--documenter-dark .column.is-3-desktop { - flex: none; - width: 25%; } - html.theme--documenter-dark .column.is-offset-3-desktop { - margin-left: 25%; } - html.theme--documenter-dark .column.is-4-desktop { - flex: none; - width: 33.3333333333%; } - html.theme--documenter-dark .column.is-offset-4-desktop { - margin-left: 33.3333333333%; } - html.theme--documenter-dark .column.is-5-desktop { - flex: none; - width: 41.6666666667%; } - html.theme--documenter-dark .column.is-offset-5-desktop { - margin-left: 41.6666666667%; } - html.theme--documenter-dark .column.is-6-desktop { - flex: none; - width: 50%; } - html.theme--documenter-dark .column.is-offset-6-desktop { - margin-left: 50%; } - html.theme--documenter-dark .column.is-7-desktop { - flex: none; - width: 58.3333333333%; } - html.theme--documenter-dark .column.is-offset-7-desktop { - margin-left: 58.3333333333%; } - html.theme--documenter-dark .column.is-8-desktop { - flex: none; - width: 66.6666666667%; } - html.theme--documenter-dark .column.is-offset-8-desktop { - margin-left: 66.6666666667%; } - html.theme--documenter-dark .column.is-9-desktop { - flex: none; - width: 75%; } - html.theme--documenter-dark .column.is-offset-9-desktop { - margin-left: 75%; } - html.theme--documenter-dark .column.is-10-desktop { - flex: none; - width: 83.3333333333%; } - html.theme--documenter-dark .column.is-offset-10-desktop { - margin-left: 83.3333333333%; } - html.theme--documenter-dark .column.is-11-desktop { - flex: none; - width: 91.6666666667%; } - html.theme--documenter-dark .column.is-offset-11-desktop { - margin-left: 91.6666666667%; } - html.theme--documenter-dark .column.is-12-desktop { - flex: none; - width: 100%; } - html.theme--documenter-dark .column.is-offset-12-desktop { - margin-left: 100%; } } - @media screen and (min-width: 1216px) { - html.theme--documenter-dark .column.is-narrow-widescreen { - flex: none; } - html.theme--documenter-dark .column.is-full-widescreen { - flex: none; - width: 100%; } - html.theme--documenter-dark .column.is-three-quarters-widescreen { - flex: none; - width: 75%; } - html.theme--documenter-dark .column.is-two-thirds-widescreen { - flex: none; - width: 66.6666%; } - html.theme--documenter-dark .column.is-half-widescreen { - flex: none; - width: 50%; } - html.theme--documenter-dark .column.is-one-third-widescreen { - flex: none; - width: 33.3333%; } - html.theme--documenter-dark .column.is-one-quarter-widescreen { - flex: none; - width: 25%; } - html.theme--documenter-dark .column.is-one-fifth-widescreen { - flex: none; - width: 20%; } - html.theme--documenter-dark .column.is-two-fifths-widescreen { - flex: none; - width: 40%; } - html.theme--documenter-dark .column.is-three-fifths-widescreen { - flex: none; - width: 60%; } - html.theme--documenter-dark .column.is-four-fifths-widescreen { - flex: none; - width: 80%; } - html.theme--documenter-dark .column.is-offset-three-quarters-widescreen { - margin-left: 75%; } - html.theme--documenter-dark .column.is-offset-two-thirds-widescreen { - margin-left: 66.6666%; } - html.theme--documenter-dark .column.is-offset-half-widescreen { - margin-left: 50%; } - html.theme--documenter-dark .column.is-offset-one-third-widescreen { - margin-left: 33.3333%; } - html.theme--documenter-dark .column.is-offset-one-quarter-widescreen { - margin-left: 25%; } - html.theme--documenter-dark .column.is-offset-one-fifth-widescreen { - margin-left: 20%; } - html.theme--documenter-dark .column.is-offset-two-fifths-widescreen { - margin-left: 40%; } - html.theme--documenter-dark .column.is-offset-three-fifths-widescreen { - margin-left: 60%; } - html.theme--documenter-dark .column.is-offset-four-fifths-widescreen { - margin-left: 80%; } - html.theme--documenter-dark .column.is-0-widescreen { - flex: none; - width: 0%; } - html.theme--documenter-dark .column.is-offset-0-widescreen { - margin-left: 0%; } - html.theme--documenter-dark .column.is-1-widescreen { - flex: none; - width: 8.3333333333%; } - html.theme--documenter-dark .column.is-offset-1-widescreen { - margin-left: 8.3333333333%; } - html.theme--documenter-dark .column.is-2-widescreen { - flex: none; - width: 16.6666666667%; } - html.theme--documenter-dark .column.is-offset-2-widescreen { - margin-left: 16.6666666667%; } - html.theme--documenter-dark .column.is-3-widescreen { - flex: none; - width: 25%; } - html.theme--documenter-dark .column.is-offset-3-widescreen { - margin-left: 25%; } - html.theme--documenter-dark .column.is-4-widescreen { - flex: none; - width: 33.3333333333%; } - html.theme--documenter-dark .column.is-offset-4-widescreen { - margin-left: 33.3333333333%; } - html.theme--documenter-dark .column.is-5-widescreen { - flex: none; - width: 41.6666666667%; } - html.theme--documenter-dark .column.is-offset-5-widescreen { - margin-left: 41.6666666667%; } - html.theme--documenter-dark .column.is-6-widescreen { - flex: none; - width: 50%; } - html.theme--documenter-dark .column.is-offset-6-widescreen { - margin-left: 50%; } - html.theme--documenter-dark .column.is-7-widescreen { - flex: none; - width: 58.3333333333%; } - html.theme--documenter-dark .column.is-offset-7-widescreen { - margin-left: 58.3333333333%; } - html.theme--documenter-dark .column.is-8-widescreen { - flex: none; - width: 66.6666666667%; } - html.theme--documenter-dark .column.is-offset-8-widescreen { - margin-left: 66.6666666667%; } - html.theme--documenter-dark .column.is-9-widescreen { - flex: none; - width: 75%; } - html.theme--documenter-dark .column.is-offset-9-widescreen { - margin-left: 75%; } - html.theme--documenter-dark .column.is-10-widescreen { - flex: none; - width: 83.3333333333%; } - html.theme--documenter-dark .column.is-offset-10-widescreen { - margin-left: 83.3333333333%; } - html.theme--documenter-dark .column.is-11-widescreen { - flex: none; - width: 91.6666666667%; } - html.theme--documenter-dark .column.is-offset-11-widescreen { - margin-left: 91.6666666667%; } - html.theme--documenter-dark .column.is-12-widescreen { - flex: none; - width: 100%; } - html.theme--documenter-dark .column.is-offset-12-widescreen { - margin-left: 100%; } } - @media screen and (min-width: 1408px) { - html.theme--documenter-dark .column.is-narrow-fullhd { - flex: none; } - html.theme--documenter-dark .column.is-full-fullhd { - flex: none; - width: 100%; } - html.theme--documenter-dark .column.is-three-quarters-fullhd { - flex: none; - width: 75%; } - html.theme--documenter-dark .column.is-two-thirds-fullhd { - flex: none; - width: 66.6666%; } - html.theme--documenter-dark .column.is-half-fullhd { - flex: none; - width: 50%; } - html.theme--documenter-dark .column.is-one-third-fullhd { - flex: none; - width: 33.3333%; } - html.theme--documenter-dark .column.is-one-quarter-fullhd { - flex: none; - width: 25%; } - html.theme--documenter-dark .column.is-one-fifth-fullhd { - flex: none; - width: 20%; } - html.theme--documenter-dark .column.is-two-fifths-fullhd { - flex: none; - width: 40%; } - html.theme--documenter-dark .column.is-three-fifths-fullhd { - flex: none; - width: 60%; } - html.theme--documenter-dark .column.is-four-fifths-fullhd { - flex: none; - width: 80%; } - html.theme--documenter-dark .column.is-offset-three-quarters-fullhd { - margin-left: 75%; } - html.theme--documenter-dark .column.is-offset-two-thirds-fullhd { - margin-left: 66.6666%; } - html.theme--documenter-dark .column.is-offset-half-fullhd { - margin-left: 50%; } - html.theme--documenter-dark .column.is-offset-one-third-fullhd { - margin-left: 33.3333%; } - html.theme--documenter-dark .column.is-offset-one-quarter-fullhd { - margin-left: 25%; } - html.theme--documenter-dark .column.is-offset-one-fifth-fullhd { - margin-left: 20%; } - html.theme--documenter-dark .column.is-offset-two-fifths-fullhd { - margin-left: 40%; } - html.theme--documenter-dark .column.is-offset-three-fifths-fullhd { - margin-left: 60%; } - html.theme--documenter-dark .column.is-offset-four-fifths-fullhd { - margin-left: 80%; } - html.theme--documenter-dark .column.is-0-fullhd { - flex: none; - width: 0%; } - html.theme--documenter-dark .column.is-offset-0-fullhd { - margin-left: 0%; } - html.theme--documenter-dark .column.is-1-fullhd { - flex: none; - width: 8.3333333333%; } - html.theme--documenter-dark .column.is-offset-1-fullhd { - margin-left: 8.3333333333%; } - html.theme--documenter-dark .column.is-2-fullhd { - flex: none; - width: 16.6666666667%; } - html.theme--documenter-dark .column.is-offset-2-fullhd { - margin-left: 16.6666666667%; } - html.theme--documenter-dark .column.is-3-fullhd { - flex: none; - width: 25%; } - html.theme--documenter-dark .column.is-offset-3-fullhd { - margin-left: 25%; } - html.theme--documenter-dark .column.is-4-fullhd { - flex: none; - width: 33.3333333333%; } - html.theme--documenter-dark .column.is-offset-4-fullhd { - margin-left: 33.3333333333%; } - html.theme--documenter-dark .column.is-5-fullhd { - flex: none; - width: 41.6666666667%; } - html.theme--documenter-dark .column.is-offset-5-fullhd { - margin-left: 41.6666666667%; } - html.theme--documenter-dark .column.is-6-fullhd { - flex: none; - width: 50%; } - html.theme--documenter-dark .column.is-offset-6-fullhd { - margin-left: 50%; } - html.theme--documenter-dark .column.is-7-fullhd { - flex: none; - width: 58.3333333333%; } - html.theme--documenter-dark .column.is-offset-7-fullhd { - margin-left: 58.3333333333%; } - html.theme--documenter-dark .column.is-8-fullhd { - flex: none; - width: 66.6666666667%; } - html.theme--documenter-dark .column.is-offset-8-fullhd { - margin-left: 66.6666666667%; } - html.theme--documenter-dark .column.is-9-fullhd { - flex: none; - width: 75%; } - html.theme--documenter-dark .column.is-offset-9-fullhd { - margin-left: 75%; } - html.theme--documenter-dark .column.is-10-fullhd { - flex: none; - width: 83.3333333333%; } - html.theme--documenter-dark .column.is-offset-10-fullhd { - margin-left: 83.3333333333%; } - html.theme--documenter-dark .column.is-11-fullhd { - flex: none; - width: 91.6666666667%; } - html.theme--documenter-dark .column.is-offset-11-fullhd { - margin-left: 91.6666666667%; } - html.theme--documenter-dark .column.is-12-fullhd { - flex: none; - width: 100%; } - html.theme--documenter-dark .column.is-offset-12-fullhd { - margin-left: 100%; } } - html.theme--documenter-dark .columns { - margin-left: -0.75rem; - margin-right: -0.75rem; - margin-top: -0.75rem; } - html.theme--documenter-dark .columns:last-child { - margin-bottom: -0.75rem; } - html.theme--documenter-dark .columns:not(:last-child) { - margin-bottom: calc(1.5rem - 0.75rem); } - html.theme--documenter-dark .columns.is-centered { - justify-content: center; } - html.theme--documenter-dark .columns.is-gapless { - margin-left: 0; - margin-right: 0; - margin-top: 0; } - html.theme--documenter-dark .columns.is-gapless > .column { - margin: 0; - padding: 0 !important; } - html.theme--documenter-dark .columns.is-gapless:not(:last-child) { - margin-bottom: 1.5rem; } - html.theme--documenter-dark .columns.is-gapless:last-child { - margin-bottom: 0; } - html.theme--documenter-dark .columns.is-mobile { - display: flex; } - html.theme--documenter-dark .columns.is-multiline { - flex-wrap: wrap; } - html.theme--documenter-dark .columns.is-vcentered { - align-items: center; } - @media screen and (min-width: 769px), print { - html.theme--documenter-dark .columns:not(.is-desktop) { - display: flex; } } - @media screen and (min-width: 1056px) { - html.theme--documenter-dark .columns.is-desktop { - display: flex; } } - html.theme--documenter-dark .columns.is-variable { - --columnGap: 0.75rem; - margin-left: calc(-1 * var(--columnGap)); - margin-right: calc(-1 * var(--columnGap)); } - html.theme--documenter-dark .columns.is-variable .column { - padding-left: var(--columnGap); - padding-right: var(--columnGap); } - html.theme--documenter-dark .columns.is-variable.is-0 { - --columnGap: 0rem; } - @media screen and (max-width: 768px) { - html.theme--documenter-dark .columns.is-variable.is-0-mobile { - --columnGap: 0rem; } } - @media screen and (min-width: 769px), print { - html.theme--documenter-dark .columns.is-variable.is-0-tablet { - --columnGap: 0rem; } } - @media screen and (min-width: 769px) and (max-width: 1055px) { - html.theme--documenter-dark .columns.is-variable.is-0-tablet-only { - --columnGap: 0rem; } } - @media screen and (max-width: 1055px) { - html.theme--documenter-dark .columns.is-variable.is-0-touch { - --columnGap: 0rem; } } - @media screen and (min-width: 1056px) { - html.theme--documenter-dark .columns.is-variable.is-0-desktop { - --columnGap: 0rem; } } - @media screen and (min-width: 1056px) and (max-width: 1215px) { - html.theme--documenter-dark .columns.is-variable.is-0-desktop-only { - --columnGap: 0rem; } } - @media screen and (min-width: 1216px) { - html.theme--documenter-dark .columns.is-variable.is-0-widescreen { - --columnGap: 0rem; } } - @media screen and (min-width: 1216px) and (max-width: 1407px) { - html.theme--documenter-dark .columns.is-variable.is-0-widescreen-only { - --columnGap: 0rem; } } - @media screen and (min-width: 1408px) { - html.theme--documenter-dark .columns.is-variable.is-0-fullhd { - --columnGap: 0rem; } } - html.theme--documenter-dark .columns.is-variable.is-1 { - --columnGap: 0.25rem; } - @media screen and (max-width: 768px) { - html.theme--documenter-dark .columns.is-variable.is-1-mobile { - --columnGap: 0.25rem; } } - @media screen and (min-width: 769px), print { - html.theme--documenter-dark .columns.is-variable.is-1-tablet { - --columnGap: 0.25rem; } } - @media screen and (min-width: 769px) and (max-width: 1055px) { - html.theme--documenter-dark .columns.is-variable.is-1-tablet-only { - --columnGap: 0.25rem; } } - @media screen and (max-width: 1055px) { - html.theme--documenter-dark .columns.is-variable.is-1-touch { - --columnGap: 0.25rem; } } - @media screen and (min-width: 1056px) { - html.theme--documenter-dark .columns.is-variable.is-1-desktop { - --columnGap: 0.25rem; } } - @media screen and (min-width: 1056px) and (max-width: 1215px) { - html.theme--documenter-dark .columns.is-variable.is-1-desktop-only { - --columnGap: 0.25rem; } } - @media screen and (min-width: 1216px) { - html.theme--documenter-dark .columns.is-variable.is-1-widescreen { - --columnGap: 0.25rem; } } - @media screen and (min-width: 1216px) and (max-width: 1407px) { - html.theme--documenter-dark .columns.is-variable.is-1-widescreen-only { - --columnGap: 0.25rem; } } - @media screen and (min-width: 1408px) { - html.theme--documenter-dark .columns.is-variable.is-1-fullhd { - --columnGap: 0.25rem; } } - html.theme--documenter-dark .columns.is-variable.is-2 { - --columnGap: 0.5rem; } - @media screen and (max-width: 768px) { - html.theme--documenter-dark .columns.is-variable.is-2-mobile { - --columnGap: 0.5rem; } } - @media screen and (min-width: 769px), print { - html.theme--documenter-dark .columns.is-variable.is-2-tablet { - --columnGap: 0.5rem; } } - @media screen and (min-width: 769px) and (max-width: 1055px) { - html.theme--documenter-dark .columns.is-variable.is-2-tablet-only { - --columnGap: 0.5rem; } } - @media screen and (max-width: 1055px) { - html.theme--documenter-dark .columns.is-variable.is-2-touch { - --columnGap: 0.5rem; } } - @media screen and (min-width: 1056px) { - html.theme--documenter-dark .columns.is-variable.is-2-desktop { - --columnGap: 0.5rem; } } - @media screen and (min-width: 1056px) and (max-width: 1215px) { - html.theme--documenter-dark .columns.is-variable.is-2-desktop-only { - --columnGap: 0.5rem; } } - @media screen and (min-width: 1216px) { - html.theme--documenter-dark .columns.is-variable.is-2-widescreen { - --columnGap: 0.5rem; } } - @media screen and (min-width: 1216px) and (max-width: 1407px) { - html.theme--documenter-dark .columns.is-variable.is-2-widescreen-only { - --columnGap: 0.5rem; } } - @media screen and (min-width: 1408px) { - html.theme--documenter-dark .columns.is-variable.is-2-fullhd { - --columnGap: 0.5rem; } } - html.theme--documenter-dark .columns.is-variable.is-3 { - --columnGap: 0.75rem; } - @media screen and (max-width: 768px) { - html.theme--documenter-dark .columns.is-variable.is-3-mobile { - --columnGap: 0.75rem; } } - @media screen and (min-width: 769px), print { - html.theme--documenter-dark .columns.is-variable.is-3-tablet { - --columnGap: 0.75rem; } } - @media screen and (min-width: 769px) and (max-width: 1055px) { - html.theme--documenter-dark .columns.is-variable.is-3-tablet-only { - --columnGap: 0.75rem; } } - @media screen and (max-width: 1055px) { - html.theme--documenter-dark .columns.is-variable.is-3-touch { - --columnGap: 0.75rem; } } - @media screen and (min-width: 1056px) { - html.theme--documenter-dark .columns.is-variable.is-3-desktop { - --columnGap: 0.75rem; } } - @media screen and (min-width: 1056px) and (max-width: 1215px) { - html.theme--documenter-dark .columns.is-variable.is-3-desktop-only { - --columnGap: 0.75rem; } } - @media screen and (min-width: 1216px) { - html.theme--documenter-dark .columns.is-variable.is-3-widescreen { - --columnGap: 0.75rem; } } - @media screen and (min-width: 1216px) and (max-width: 1407px) { - html.theme--documenter-dark .columns.is-variable.is-3-widescreen-only { - --columnGap: 0.75rem; } } - @media screen and (min-width: 1408px) { - html.theme--documenter-dark .columns.is-variable.is-3-fullhd { - --columnGap: 0.75rem; } } - html.theme--documenter-dark .columns.is-variable.is-4 { - --columnGap: 1rem; } - @media screen and (max-width: 768px) { - html.theme--documenter-dark .columns.is-variable.is-4-mobile { - --columnGap: 1rem; } } - @media screen and (min-width: 769px), print { - html.theme--documenter-dark .columns.is-variable.is-4-tablet { - --columnGap: 1rem; } } - @media screen and (min-width: 769px) and (max-width: 1055px) { - html.theme--documenter-dark .columns.is-variable.is-4-tablet-only { - --columnGap: 1rem; } } - @media screen and (max-width: 1055px) { - html.theme--documenter-dark .columns.is-variable.is-4-touch { - --columnGap: 1rem; } } - @media screen and (min-width: 1056px) { - html.theme--documenter-dark .columns.is-variable.is-4-desktop { - --columnGap: 1rem; } } - @media screen and (min-width: 1056px) and (max-width: 1215px) { - html.theme--documenter-dark .columns.is-variable.is-4-desktop-only { - --columnGap: 1rem; } } - @media screen and (min-width: 1216px) { - html.theme--documenter-dark .columns.is-variable.is-4-widescreen { - --columnGap: 1rem; } } - @media screen and (min-width: 1216px) and (max-width: 1407px) { - html.theme--documenter-dark .columns.is-variable.is-4-widescreen-only { - --columnGap: 1rem; } } - @media screen and (min-width: 1408px) { - html.theme--documenter-dark .columns.is-variable.is-4-fullhd { - --columnGap: 1rem; } } - html.theme--documenter-dark .columns.is-variable.is-5 { - --columnGap: 1.25rem; } - @media screen and (max-width: 768px) { - html.theme--documenter-dark .columns.is-variable.is-5-mobile { - --columnGap: 1.25rem; } } - @media screen and (min-width: 769px), print { - html.theme--documenter-dark .columns.is-variable.is-5-tablet { - --columnGap: 1.25rem; } } - @media screen and (min-width: 769px) and (max-width: 1055px) { - html.theme--documenter-dark .columns.is-variable.is-5-tablet-only { - --columnGap: 1.25rem; } } - @media screen and (max-width: 1055px) { - html.theme--documenter-dark .columns.is-variable.is-5-touch { - --columnGap: 1.25rem; } } - @media screen and (min-width: 1056px) { - html.theme--documenter-dark .columns.is-variable.is-5-desktop { - --columnGap: 1.25rem; } } - @media screen and (min-width: 1056px) and (max-width: 1215px) { - html.theme--documenter-dark .columns.is-variable.is-5-desktop-only { - --columnGap: 1.25rem; } } - @media screen and (min-width: 1216px) { - html.theme--documenter-dark .columns.is-variable.is-5-widescreen { - --columnGap: 1.25rem; } } - @media screen and (min-width: 1216px) and (max-width: 1407px) { - html.theme--documenter-dark .columns.is-variable.is-5-widescreen-only { - --columnGap: 1.25rem; } } - @media screen and (min-width: 1408px) { - html.theme--documenter-dark .columns.is-variable.is-5-fullhd { - --columnGap: 1.25rem; } } - html.theme--documenter-dark .columns.is-variable.is-6 { - --columnGap: 1.5rem; } - @media screen and (max-width: 768px) { - html.theme--documenter-dark .columns.is-variable.is-6-mobile { - --columnGap: 1.5rem; } } - @media screen and (min-width: 769px), print { - html.theme--documenter-dark .columns.is-variable.is-6-tablet { - --columnGap: 1.5rem; } } - @media screen and (min-width: 769px) and (max-width: 1055px) { - html.theme--documenter-dark .columns.is-variable.is-6-tablet-only { - --columnGap: 1.5rem; } } - @media screen and (max-width: 1055px) { - html.theme--documenter-dark .columns.is-variable.is-6-touch { - --columnGap: 1.5rem; } } - @media screen and (min-width: 1056px) { - html.theme--documenter-dark .columns.is-variable.is-6-desktop { - --columnGap: 1.5rem; } } - @media screen and (min-width: 1056px) and (max-width: 1215px) { - html.theme--documenter-dark .columns.is-variable.is-6-desktop-only { - --columnGap: 1.5rem; } } - @media screen and (min-width: 1216px) { - html.theme--documenter-dark .columns.is-variable.is-6-widescreen { - --columnGap: 1.5rem; } } - @media screen and (min-width: 1216px) and (max-width: 1407px) { - html.theme--documenter-dark .columns.is-variable.is-6-widescreen-only { - --columnGap: 1.5rem; } } - @media screen and (min-width: 1408px) { - html.theme--documenter-dark .columns.is-variable.is-6-fullhd { - --columnGap: 1.5rem; } } - html.theme--documenter-dark .columns.is-variable.is-7 { - --columnGap: 1.75rem; } - @media screen and (max-width: 768px) { - html.theme--documenter-dark .columns.is-variable.is-7-mobile { - --columnGap: 1.75rem; } } - @media screen and (min-width: 769px), print { - html.theme--documenter-dark .columns.is-variable.is-7-tablet { - --columnGap: 1.75rem; } } - @media screen and (min-width: 769px) and (max-width: 1055px) { - html.theme--documenter-dark .columns.is-variable.is-7-tablet-only { - --columnGap: 1.75rem; } } - @media screen and (max-width: 1055px) { - html.theme--documenter-dark .columns.is-variable.is-7-touch { - --columnGap: 1.75rem; } } - @media screen and (min-width: 1056px) { - html.theme--documenter-dark .columns.is-variable.is-7-desktop { - --columnGap: 1.75rem; } } - @media screen and (min-width: 1056px) and (max-width: 1215px) { - html.theme--documenter-dark .columns.is-variable.is-7-desktop-only { - --columnGap: 1.75rem; } } - @media screen and (min-width: 1216px) { - html.theme--documenter-dark .columns.is-variable.is-7-widescreen { - --columnGap: 1.75rem; } } - @media screen and (min-width: 1216px) and (max-width: 1407px) { - html.theme--documenter-dark .columns.is-variable.is-7-widescreen-only { - --columnGap: 1.75rem; } } - @media screen and (min-width: 1408px) { - html.theme--documenter-dark .columns.is-variable.is-7-fullhd { - --columnGap: 1.75rem; } } - html.theme--documenter-dark .columns.is-variable.is-8 { - --columnGap: 2rem; } - @media screen and (max-width: 768px) { - html.theme--documenter-dark .columns.is-variable.is-8-mobile { - --columnGap: 2rem; } } - @media screen and (min-width: 769px), print { - html.theme--documenter-dark .columns.is-variable.is-8-tablet { - --columnGap: 2rem; } } - @media screen and (min-width: 769px) and (max-width: 1055px) { - html.theme--documenter-dark .columns.is-variable.is-8-tablet-only { - --columnGap: 2rem; } } - @media screen and (max-width: 1055px) { - html.theme--documenter-dark .columns.is-variable.is-8-touch { - --columnGap: 2rem; } } - @media screen and (min-width: 1056px) { - html.theme--documenter-dark .columns.is-variable.is-8-desktop { - --columnGap: 2rem; } } - @media screen and (min-width: 1056px) and (max-width: 1215px) { - html.theme--documenter-dark .columns.is-variable.is-8-desktop-only { - --columnGap: 2rem; } } - @media screen and (min-width: 1216px) { - html.theme--documenter-dark .columns.is-variable.is-8-widescreen { - --columnGap: 2rem; } } - @media screen and (min-width: 1216px) and (max-width: 1407px) { - html.theme--documenter-dark .columns.is-variable.is-8-widescreen-only { - --columnGap: 2rem; } } - @media screen and (min-width: 1408px) { - html.theme--documenter-dark .columns.is-variable.is-8-fullhd { - --columnGap: 2rem; } } - html.theme--documenter-dark .tile { - align-items: stretch; - display: block; - flex-basis: 0; - flex-grow: 1; - flex-shrink: 1; - min-height: min-content; } - html.theme--documenter-dark .tile.is-ancestor { - margin-left: -0.75rem; - margin-right: -0.75rem; - margin-top: -0.75rem; } - html.theme--documenter-dark .tile.is-ancestor:last-child { - margin-bottom: -0.75rem; } - html.theme--documenter-dark .tile.is-ancestor:not(:last-child) { - margin-bottom: 0.75rem; } - html.theme--documenter-dark .tile.is-child { - margin: 0 !important; } - html.theme--documenter-dark .tile.is-parent { - padding: 0.75rem; } - html.theme--documenter-dark .tile.is-vertical { - flex-direction: column; } - html.theme--documenter-dark .tile.is-vertical > .tile.is-child:not(:last-child) { - margin-bottom: 1.5rem !important; } - @media screen and (min-width: 769px), print { - html.theme--documenter-dark .tile:not(.is-child) { - display: flex; } - html.theme--documenter-dark .tile.is-1 { - flex: none; - width: 8.3333333333%; } - html.theme--documenter-dark .tile.is-2 { - flex: none; - width: 16.6666666667%; } - html.theme--documenter-dark .tile.is-3 { - flex: none; - width: 25%; } - html.theme--documenter-dark .tile.is-4 { - flex: none; - width: 33.3333333333%; } - html.theme--documenter-dark .tile.is-5 { - flex: none; - width: 41.6666666667%; } - html.theme--documenter-dark .tile.is-6 { - flex: none; - width: 50%; } - html.theme--documenter-dark .tile.is-7 { - flex: none; - width: 58.3333333333%; } - html.theme--documenter-dark .tile.is-8 { - flex: none; - width: 66.6666666667%; } - html.theme--documenter-dark .tile.is-9 { - flex: none; - width: 75%; } - html.theme--documenter-dark .tile.is-10 { - flex: none; - width: 83.3333333333%; } - html.theme--documenter-dark .tile.is-11 { - flex: none; - width: 91.6666666667%; } - html.theme--documenter-dark .tile.is-12 { - flex: none; - width: 100%; } } - html.theme--documenter-dark .hero { - align-items: stretch; - display: flex; - flex-direction: column; - justify-content: space-between; } - html.theme--documenter-dark .hero .navbar { - background: none; } - html.theme--documenter-dark .hero .tabs ul { - border-bottom: none; } - html.theme--documenter-dark .hero.is-white { - background-color: white; - color: #0a0a0a; } - html.theme--documenter-dark .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), - html.theme--documenter-dark .hero.is-white strong { - color: inherit; } - html.theme--documenter-dark .hero.is-white .title { - color: #0a0a0a; } - html.theme--documenter-dark .hero.is-white .subtitle { - color: rgba(10, 10, 10, 0.9); } - html.theme--documenter-dark .hero.is-white .subtitle a:not(.button), - html.theme--documenter-dark .hero.is-white .subtitle strong { - color: #0a0a0a; } - @media screen and (max-width: 1055px) { - html.theme--documenter-dark .hero.is-white .navbar-menu { - background-color: white; } } - html.theme--documenter-dark .hero.is-white .navbar-item, - html.theme--documenter-dark .hero.is-white .navbar-link { - color: rgba(10, 10, 10, 0.7); } - html.theme--documenter-dark .hero.is-white a.navbar-item:hover, html.theme--documenter-dark .hero.is-white a.navbar-item.is-active, - html.theme--documenter-dark .hero.is-white .navbar-link:hover, - html.theme--documenter-dark .hero.is-white .navbar-link.is-active { - background-color: #f2f2f2; - color: #0a0a0a; } - html.theme--documenter-dark .hero.is-white .tabs a { - color: #0a0a0a; - opacity: 0.9; } - html.theme--documenter-dark .hero.is-white .tabs a:hover { - opacity: 1; } - html.theme--documenter-dark .hero.is-white .tabs li.is-active a { - opacity: 1; } - html.theme--documenter-dark .hero.is-white .tabs.is-boxed a, html.theme--documenter-dark .hero.is-white .tabs.is-toggle a { - color: #0a0a0a; } - html.theme--documenter-dark .hero.is-white .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-white .tabs.is-toggle a:hover { - background-color: rgba(10, 10, 10, 0.1); } - html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a:hover { - background-color: #0a0a0a; - border-color: #0a0a0a; - color: white; } - html.theme--documenter-dark .hero.is-white.is-bold { - background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } - @media screen and (max-width: 768px) { - html.theme--documenter-dark .hero.is-white.is-bold .navbar-menu { - background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } } - html.theme--documenter-dark .hero.is-black { - background-color: #0a0a0a; - color: white; } - html.theme--documenter-dark .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), - html.theme--documenter-dark .hero.is-black strong { - color: inherit; } - html.theme--documenter-dark .hero.is-black .title { - color: white; } - html.theme--documenter-dark .hero.is-black .subtitle { - color: rgba(255, 255, 255, 0.9); } - html.theme--documenter-dark .hero.is-black .subtitle a:not(.button), - html.theme--documenter-dark .hero.is-black .subtitle strong { - color: white; } - @media screen and (max-width: 1055px) { - html.theme--documenter-dark .hero.is-black .navbar-menu { - background-color: #0a0a0a; } } - html.theme--documenter-dark .hero.is-black .navbar-item, - html.theme--documenter-dark .hero.is-black .navbar-link { - color: rgba(255, 255, 255, 0.7); } - html.theme--documenter-dark .hero.is-black a.navbar-item:hover, html.theme--documenter-dark .hero.is-black a.navbar-item.is-active, - html.theme--documenter-dark .hero.is-black .navbar-link:hover, - html.theme--documenter-dark .hero.is-black .navbar-link.is-active { - background-color: black; - color: white; } - html.theme--documenter-dark .hero.is-black .tabs a { - color: white; - opacity: 0.9; } - html.theme--documenter-dark .hero.is-black .tabs a:hover { - opacity: 1; } - html.theme--documenter-dark .hero.is-black .tabs li.is-active a { - opacity: 1; } - html.theme--documenter-dark .hero.is-black .tabs.is-boxed a, html.theme--documenter-dark .hero.is-black .tabs.is-toggle a { - color: white; } - html.theme--documenter-dark .hero.is-black .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-black .tabs.is-toggle a:hover { - background-color: rgba(10, 10, 10, 0.1); } - html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a:hover { - background-color: white; - border-color: white; - color: #0a0a0a; } - html.theme--documenter-dark .hero.is-black.is-bold { - background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } - @media screen and (max-width: 768px) { - html.theme--documenter-dark .hero.is-black.is-bold .navbar-menu { - background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } } - html.theme--documenter-dark .hero.is-light { - background-color: #ecf0f1; - color: #282f2f; } - html.theme--documenter-dark .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), - html.theme--documenter-dark .hero.is-light strong { - color: inherit; } - html.theme--documenter-dark .hero.is-light .title { - color: #282f2f; } - html.theme--documenter-dark .hero.is-light .subtitle { - color: rgba(40, 47, 47, 0.9); } - html.theme--documenter-dark .hero.is-light .subtitle a:not(.button), - html.theme--documenter-dark .hero.is-light .subtitle strong { - color: #282f2f; } - @media screen and (max-width: 1055px) { - html.theme--documenter-dark .hero.is-light .navbar-menu { - background-color: #ecf0f1; } } - html.theme--documenter-dark .hero.is-light .navbar-item, - html.theme--documenter-dark .hero.is-light .navbar-link { - color: rgba(40, 47, 47, 0.7); } - html.theme--documenter-dark .hero.is-light a.navbar-item:hover, html.theme--documenter-dark .hero.is-light a.navbar-item.is-active, - html.theme--documenter-dark .hero.is-light .navbar-link:hover, - html.theme--documenter-dark .hero.is-light .navbar-link.is-active { - background-color: #dde4e6; - color: #282f2f; } - html.theme--documenter-dark .hero.is-light .tabs a { - color: #282f2f; - opacity: 0.9; } - html.theme--documenter-dark .hero.is-light .tabs a:hover { - opacity: 1; } - html.theme--documenter-dark .hero.is-light .tabs li.is-active a { - opacity: 1; } - html.theme--documenter-dark .hero.is-light .tabs.is-boxed a, html.theme--documenter-dark .hero.is-light .tabs.is-toggle a { - color: #282f2f; } - html.theme--documenter-dark .hero.is-light .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-light .tabs.is-toggle a:hover { - background-color: rgba(10, 10, 10, 0.1); } - html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a:hover { - background-color: #282f2f; - border-color: #282f2f; - color: #ecf0f1; } - html.theme--documenter-dark .hero.is-light.is-bold { - background-image: linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%); } - @media screen and (max-width: 768px) { - html.theme--documenter-dark .hero.is-light.is-bold .navbar-menu { - background-image: linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%); } } - html.theme--documenter-dark .hero.is-dark, html.theme--documenter-dark .content kbd.hero { - background-color: #282f2f; - color: #ecf0f1; } - html.theme--documenter-dark .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), html.theme--documenter-dark .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), - html.theme--documenter-dark .hero.is-dark strong, - html.theme--documenter-dark .content kbd.hero strong { - color: inherit; } - html.theme--documenter-dark .hero.is-dark .title, html.theme--documenter-dark .content kbd.hero .title { - color: #ecf0f1; } - html.theme--documenter-dark .hero.is-dark .subtitle, html.theme--documenter-dark .content kbd.hero .subtitle { - color: rgba(236, 240, 241, 0.9); } - html.theme--documenter-dark .hero.is-dark .subtitle a:not(.button), html.theme--documenter-dark .content kbd.hero .subtitle a:not(.button), - html.theme--documenter-dark .hero.is-dark .subtitle strong, - html.theme--documenter-dark .content kbd.hero .subtitle strong { - color: #ecf0f1; } - @media screen and (max-width: 1055px) { - html.theme--documenter-dark .hero.is-dark .navbar-menu, html.theme--documenter-dark .content kbd.hero .navbar-menu { - background-color: #282f2f; } } - html.theme--documenter-dark .hero.is-dark .navbar-item, html.theme--documenter-dark .content kbd.hero .navbar-item, - html.theme--documenter-dark .hero.is-dark .navbar-link, - html.theme--documenter-dark .content kbd.hero .navbar-link { - color: rgba(236, 240, 241, 0.7); } - html.theme--documenter-dark .hero.is-dark a.navbar-item:hover, html.theme--documenter-dark .content kbd.hero a.navbar-item:hover, html.theme--documenter-dark .hero.is-dark a.navbar-item.is-active, html.theme--documenter-dark .content kbd.hero a.navbar-item.is-active, - html.theme--documenter-dark .hero.is-dark .navbar-link:hover, - html.theme--documenter-dark .content kbd.hero .navbar-link:hover, - html.theme--documenter-dark .hero.is-dark .navbar-link.is-active, - html.theme--documenter-dark .content kbd.hero .navbar-link.is-active { - background-color: #1d2122; - color: #ecf0f1; } - html.theme--documenter-dark .hero.is-dark .tabs a, html.theme--documenter-dark .content kbd.hero .tabs a { - color: #ecf0f1; - opacity: 0.9; } - html.theme--documenter-dark .hero.is-dark .tabs a:hover, html.theme--documenter-dark .content kbd.hero .tabs a:hover { - opacity: 1; } - html.theme--documenter-dark .hero.is-dark .tabs li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs li.is-active a { - opacity: 1; } - html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a { - color: #ecf0f1; } - html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a:hover { - background-color: rgba(10, 10, 10, 0.1); } - html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a:hover { - background-color: #ecf0f1; - border-color: #ecf0f1; - color: #282f2f; } - html.theme--documenter-dark .hero.is-dark.is-bold, html.theme--documenter-dark .content kbd.hero.is-bold { - background-image: linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%); } - @media screen and (max-width: 768px) { - html.theme--documenter-dark .hero.is-dark.is-bold .navbar-menu, html.theme--documenter-dark .content kbd.hero.is-bold .navbar-menu { - background-image: linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%); } } - html.theme--documenter-dark .hero.is-primary, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink { - background-color: #375a7f; - color: #fff; } - html.theme--documenter-dark .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), - html.theme--documenter-dark .hero.is-primary strong, - html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink strong { - color: inherit; } - html.theme--documenter-dark .hero.is-primary .title, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .title { - color: #fff; } - html.theme--documenter-dark .hero.is-primary .subtitle, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle { - color: rgba(255, 255, 255, 0.9); } - html.theme--documenter-dark .hero.is-primary .subtitle a:not(.button), html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle a:not(.button), - html.theme--documenter-dark .hero.is-primary .subtitle strong, - html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle strong { - color: #fff; } - @media screen and (max-width: 1055px) { - html.theme--documenter-dark .hero.is-primary .navbar-menu, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-menu { - background-color: #375a7f; } } - html.theme--documenter-dark .hero.is-primary .navbar-item, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-item, - html.theme--documenter-dark .hero.is-primary .navbar-link, - html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link { - color: rgba(255, 255, 255, 0.7); } - html.theme--documenter-dark .hero.is-primary a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a.navbar-item:hover, html.theme--documenter-dark .hero.is-primary a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a.navbar-item.is-active, - html.theme--documenter-dark .hero.is-primary .navbar-link:hover, - html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link:hover, - html.theme--documenter-dark .hero.is-primary .navbar-link.is-active, - html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link.is-active { - background-color: #2f4d6d; - color: #fff; } - html.theme--documenter-dark .hero.is-primary .tabs a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs a { - color: #fff; - opacity: 0.9; } - html.theme--documenter-dark .hero.is-primary .tabs a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs a:hover { - opacity: 1; } - html.theme--documenter-dark .hero.is-primary .tabs li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs li.is-active a { - opacity: 1; } - html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a { - color: #fff; } - html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a:hover { - background-color: rgba(10, 10, 10, 0.1); } - html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a:hover { - background-color: #fff; - border-color: #fff; - color: #375a7f; } - html.theme--documenter-dark .hero.is-primary.is-bold, html.theme--documenter-dark .docstring > section > a.hero.is-bold.docs-sourcelink { - background-image: linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%); } - @media screen and (max-width: 768px) { - html.theme--documenter-dark .hero.is-primary.is-bold .navbar-menu, html.theme--documenter-dark .docstring > section > a.hero.is-bold.docs-sourcelink .navbar-menu { - background-image: linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%); } } - html.theme--documenter-dark .hero.is-link { - background-color: #1abc9c; - color: #fff; } - html.theme--documenter-dark .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), - html.theme--documenter-dark .hero.is-link strong { - color: inherit; } - html.theme--documenter-dark .hero.is-link .title { - color: #fff; } - html.theme--documenter-dark .hero.is-link .subtitle { - color: rgba(255, 255, 255, 0.9); } - html.theme--documenter-dark .hero.is-link .subtitle a:not(.button), - html.theme--documenter-dark .hero.is-link .subtitle strong { - color: #fff; } - @media screen and (max-width: 1055px) { - html.theme--documenter-dark .hero.is-link .navbar-menu { - background-color: #1abc9c; } } - html.theme--documenter-dark .hero.is-link .navbar-item, - html.theme--documenter-dark .hero.is-link .navbar-link { - color: rgba(255, 255, 255, 0.7); } - html.theme--documenter-dark .hero.is-link a.navbar-item:hover, html.theme--documenter-dark .hero.is-link a.navbar-item.is-active, - html.theme--documenter-dark .hero.is-link .navbar-link:hover, - html.theme--documenter-dark .hero.is-link .navbar-link.is-active { - background-color: #17a689; - color: #fff; } - html.theme--documenter-dark .hero.is-link .tabs a { - color: #fff; - opacity: 0.9; } - html.theme--documenter-dark .hero.is-link .tabs a:hover { - opacity: 1; } - html.theme--documenter-dark .hero.is-link .tabs li.is-active a { - opacity: 1; } - html.theme--documenter-dark .hero.is-link .tabs.is-boxed a, html.theme--documenter-dark .hero.is-link .tabs.is-toggle a { - color: #fff; } - html.theme--documenter-dark .hero.is-link .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-link .tabs.is-toggle a:hover { - background-color: rgba(10, 10, 10, 0.1); } - html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a:hover { - background-color: #fff; - border-color: #fff; - color: #1abc9c; } - html.theme--documenter-dark .hero.is-link.is-bold { - background-image: linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%); } - @media screen and (max-width: 768px) { - html.theme--documenter-dark .hero.is-link.is-bold .navbar-menu { - background-image: linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%); } } - html.theme--documenter-dark .hero.is-info { - background-color: #024c7d; - color: #fff; } - html.theme--documenter-dark .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), - html.theme--documenter-dark .hero.is-info strong { - color: inherit; } - html.theme--documenter-dark .hero.is-info .title { - color: #fff; } - html.theme--documenter-dark .hero.is-info .subtitle { - color: rgba(255, 255, 255, 0.9); } - html.theme--documenter-dark .hero.is-info .subtitle a:not(.button), - html.theme--documenter-dark .hero.is-info .subtitle strong { - color: #fff; } - @media screen and (max-width: 1055px) { - html.theme--documenter-dark .hero.is-info .navbar-menu { - background-color: #024c7d; } } - html.theme--documenter-dark .hero.is-info .navbar-item, - html.theme--documenter-dark .hero.is-info .navbar-link { - color: rgba(255, 255, 255, 0.7); } - html.theme--documenter-dark .hero.is-info a.navbar-item:hover, html.theme--documenter-dark .hero.is-info a.navbar-item.is-active, - html.theme--documenter-dark .hero.is-info .navbar-link:hover, - html.theme--documenter-dark .hero.is-info .navbar-link.is-active { - background-color: #023d64; - color: #fff; } - html.theme--documenter-dark .hero.is-info .tabs a { - color: #fff; - opacity: 0.9; } - html.theme--documenter-dark .hero.is-info .tabs a:hover { - opacity: 1; } - html.theme--documenter-dark .hero.is-info .tabs li.is-active a { - opacity: 1; } - html.theme--documenter-dark .hero.is-info .tabs.is-boxed a, html.theme--documenter-dark .hero.is-info .tabs.is-toggle a { - color: #fff; } - html.theme--documenter-dark .hero.is-info .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-info .tabs.is-toggle a:hover { - background-color: rgba(10, 10, 10, 0.1); } - html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a:hover { - background-color: #fff; - border-color: #fff; - color: #024c7d; } - html.theme--documenter-dark .hero.is-info.is-bold { - background-image: linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%); } - @media screen and (max-width: 768px) { - html.theme--documenter-dark .hero.is-info.is-bold .navbar-menu { - background-image: linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%); } } - html.theme--documenter-dark .hero.is-success { - background-color: #008438; - color: #fff; } - html.theme--documenter-dark .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), - html.theme--documenter-dark .hero.is-success strong { - color: inherit; } - html.theme--documenter-dark .hero.is-success .title { - color: #fff; } - html.theme--documenter-dark .hero.is-success .subtitle { - color: rgba(255, 255, 255, 0.9); } - html.theme--documenter-dark .hero.is-success .subtitle a:not(.button), - html.theme--documenter-dark .hero.is-success .subtitle strong { - color: #fff; } - @media screen and (max-width: 1055px) { - html.theme--documenter-dark .hero.is-success .navbar-menu { - background-color: #008438; } } - html.theme--documenter-dark .hero.is-success .navbar-item, - html.theme--documenter-dark .hero.is-success .navbar-link { - color: rgba(255, 255, 255, 0.7); } - html.theme--documenter-dark .hero.is-success a.navbar-item:hover, html.theme--documenter-dark .hero.is-success a.navbar-item.is-active, - html.theme--documenter-dark .hero.is-success .navbar-link:hover, - html.theme--documenter-dark .hero.is-success .navbar-link.is-active { - background-color: #006b2d; - color: #fff; } - html.theme--documenter-dark .hero.is-success .tabs a { - color: #fff; - opacity: 0.9; } - html.theme--documenter-dark .hero.is-success .tabs a:hover { - opacity: 1; } - html.theme--documenter-dark .hero.is-success .tabs li.is-active a { - opacity: 1; } - html.theme--documenter-dark .hero.is-success .tabs.is-boxed a, html.theme--documenter-dark .hero.is-success .tabs.is-toggle a { - color: #fff; } - html.theme--documenter-dark .hero.is-success .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-success .tabs.is-toggle a:hover { - background-color: rgba(10, 10, 10, 0.1); } - html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a:hover { - background-color: #fff; - border-color: #fff; - color: #008438; } - html.theme--documenter-dark .hero.is-success.is-bold { - background-image: linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%); } - @media screen and (max-width: 768px) { - html.theme--documenter-dark .hero.is-success.is-bold .navbar-menu { - background-image: linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%); } } - html.theme--documenter-dark .hero.is-warning { - background-color: #ad8100; - color: #fff; } - html.theme--documenter-dark .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), - html.theme--documenter-dark .hero.is-warning strong { - color: inherit; } - html.theme--documenter-dark .hero.is-warning .title { - color: #fff; } - html.theme--documenter-dark .hero.is-warning .subtitle { - color: rgba(255, 255, 255, 0.9); } - html.theme--documenter-dark .hero.is-warning .subtitle a:not(.button), - html.theme--documenter-dark .hero.is-warning .subtitle strong { - color: #fff; } - @media screen and (max-width: 1055px) { - html.theme--documenter-dark .hero.is-warning .navbar-menu { - background-color: #ad8100; } } - html.theme--documenter-dark .hero.is-warning .navbar-item, - html.theme--documenter-dark .hero.is-warning .navbar-link { - color: rgba(255, 255, 255, 0.7); } - html.theme--documenter-dark .hero.is-warning a.navbar-item:hover, html.theme--documenter-dark .hero.is-warning a.navbar-item.is-active, - html.theme--documenter-dark .hero.is-warning .navbar-link:hover, - html.theme--documenter-dark .hero.is-warning .navbar-link.is-active { - background-color: #946e00; - color: #fff; } - html.theme--documenter-dark .hero.is-warning .tabs a { - color: #fff; - opacity: 0.9; } - html.theme--documenter-dark .hero.is-warning .tabs a:hover { - opacity: 1; } - html.theme--documenter-dark .hero.is-warning .tabs li.is-active a { - opacity: 1; } - html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a { - color: #fff; } - html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a:hover { - background-color: rgba(10, 10, 10, 0.1); } - html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a:hover { - background-color: #fff; - border-color: #fff; - color: #ad8100; } - html.theme--documenter-dark .hero.is-warning.is-bold { - background-image: linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%); } - @media screen and (max-width: 768px) { - html.theme--documenter-dark .hero.is-warning.is-bold .navbar-menu { - background-image: linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%); } } - html.theme--documenter-dark .hero.is-danger { - background-color: #9e1b0d; - color: #fff; } - html.theme--documenter-dark .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), - html.theme--documenter-dark .hero.is-danger strong { - color: inherit; } - html.theme--documenter-dark .hero.is-danger .title { - color: #fff; } - html.theme--documenter-dark .hero.is-danger .subtitle { - color: rgba(255, 255, 255, 0.9); } - html.theme--documenter-dark .hero.is-danger .subtitle a:not(.button), - html.theme--documenter-dark .hero.is-danger .subtitle strong { - color: #fff; } - @media screen and (max-width: 1055px) { - html.theme--documenter-dark .hero.is-danger .navbar-menu { - background-color: #9e1b0d; } } - html.theme--documenter-dark .hero.is-danger .navbar-item, - html.theme--documenter-dark .hero.is-danger .navbar-link { - color: rgba(255, 255, 255, 0.7); } - html.theme--documenter-dark .hero.is-danger a.navbar-item:hover, html.theme--documenter-dark .hero.is-danger a.navbar-item.is-active, - html.theme--documenter-dark .hero.is-danger .navbar-link:hover, - html.theme--documenter-dark .hero.is-danger .navbar-link.is-active { - background-color: #86170b; - color: #fff; } - html.theme--documenter-dark .hero.is-danger .tabs a { - color: #fff; - opacity: 0.9; } - html.theme--documenter-dark .hero.is-danger .tabs a:hover { - opacity: 1; } - html.theme--documenter-dark .hero.is-danger .tabs li.is-active a { - opacity: 1; } - html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a { - color: #fff; } - html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a:hover { - background-color: rgba(10, 10, 10, 0.1); } - html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a:hover { - background-color: #fff; - border-color: #fff; - color: #9e1b0d; } - html.theme--documenter-dark .hero.is-danger.is-bold { - background-image: linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%); } - @media screen and (max-width: 768px) { - html.theme--documenter-dark .hero.is-danger.is-bold .navbar-menu { - background-image: linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%); } } - html.theme--documenter-dark .hero.is-small .hero-body, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.hero .hero-body { - padding-bottom: 1.5rem; - padding-top: 1.5rem; } - @media screen and (min-width: 769px), print { - html.theme--documenter-dark .hero.is-medium .hero-body { - padding-bottom: 9rem; - padding-top: 9rem; } } - @media screen and (min-width: 769px), print { - html.theme--documenter-dark .hero.is-large .hero-body { - padding-bottom: 18rem; - padding-top: 18rem; } } - html.theme--documenter-dark .hero.is-halfheight .hero-body, html.theme--documenter-dark .hero.is-fullheight .hero-body, html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body { - align-items: center; - display: flex; } - html.theme--documenter-dark .hero.is-halfheight .hero-body > .container, html.theme--documenter-dark .hero.is-fullheight .hero-body > .container, html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body > .container { - flex-grow: 1; - flex-shrink: 1; } - html.theme--documenter-dark .hero.is-halfheight { - min-height: 50vh; } - html.theme--documenter-dark .hero.is-fullheight { - min-height: 100vh; } - html.theme--documenter-dark .hero-video { - overflow: hidden; } - html.theme--documenter-dark .hero-video video { - left: 50%; - min-height: 100%; - min-width: 100%; - position: absolute; - top: 50%; - transform: translate3d(-50%, -50%, 0); } - html.theme--documenter-dark .hero-video.is-transparent { - opacity: 0.3; } - @media screen and (max-width: 768px) { - html.theme--documenter-dark .hero-video { - display: none; } } - html.theme--documenter-dark .hero-buttons { - margin-top: 1.5rem; } - @media screen and (max-width: 768px) { - html.theme--documenter-dark .hero-buttons .button { - display: flex; } - html.theme--documenter-dark .hero-buttons .button:not(:last-child) { - margin-bottom: 0.75rem; } } - @media screen and (min-width: 769px), print { - html.theme--documenter-dark .hero-buttons { - display: flex; - justify-content: center; } - html.theme--documenter-dark .hero-buttons .button:not(:last-child) { - margin-right: 1.5rem; } } - html.theme--documenter-dark .hero-head, - html.theme--documenter-dark .hero-foot { - flex-grow: 0; - flex-shrink: 0; } - html.theme--documenter-dark .hero-body { - flex-grow: 1; - flex-shrink: 0; - padding: 3rem 1.5rem; } - html.theme--documenter-dark .section { - padding: 3rem 1.5rem; } - @media screen and (min-width: 1056px) { - html.theme--documenter-dark .section.is-medium { - padding: 9rem 1.5rem; } - html.theme--documenter-dark .section.is-large { - padding: 18rem 1.5rem; } } - html.theme--documenter-dark .footer { - background-color: #282f2f; - padding: 3rem 1.5rem 6rem; } - html.theme--documenter-dark hr { - height: 1px; } - html.theme--documenter-dark h6 { - text-transform: uppercase; - letter-spacing: 0.5px; } - html.theme--documenter-dark .hero { - background-color: #343c3d; } - html.theme--documenter-dark a { - transition: all 200ms ease; } - html.theme--documenter-dark .button { - transition: all 200ms ease; - border-width: 1px; - color: white; } - html.theme--documenter-dark .button.is-active, html.theme--documenter-dark .button.is-focused, html.theme--documenter-dark .button:active, html.theme--documenter-dark .button:focus { - box-shadow: 0 0 0 2px rgba(140, 155, 157, 0.5); } - html.theme--documenter-dark .button.is-white.is-hovered, html.theme--documenter-dark .button.is-white:hover { - background-color: white; } - html.theme--documenter-dark .button.is-white.is-active, html.theme--documenter-dark .button.is-white.is-focused, html.theme--documenter-dark .button.is-white:active, html.theme--documenter-dark .button.is-white:focus { - border-color: white; - box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.5); } - html.theme--documenter-dark .button.is-black.is-hovered, html.theme--documenter-dark .button.is-black:hover { - background-color: #1d1d1d; } - html.theme--documenter-dark .button.is-black.is-active, html.theme--documenter-dark .button.is-black.is-focused, html.theme--documenter-dark .button.is-black:active, html.theme--documenter-dark .button.is-black:focus { - border-color: #0a0a0a; - box-shadow: 0 0 0 2px rgba(10, 10, 10, 0.5); } - html.theme--documenter-dark .button.is-light.is-hovered, html.theme--documenter-dark .button.is-light:hover { - background-color: white; } - html.theme--documenter-dark .button.is-light.is-active, html.theme--documenter-dark .button.is-light.is-focused, html.theme--documenter-dark .button.is-light:active, html.theme--documenter-dark .button.is-light:focus { - border-color: #ecf0f1; - box-shadow: 0 0 0 2px rgba(236, 240, 241, 0.5); } - html.theme--documenter-dark .button.is-dark.is-hovered, html.theme--documenter-dark .content kbd.button.is-hovered, html.theme--documenter-dark .button.is-dark:hover, html.theme--documenter-dark .content kbd.button:hover { - background-color: #3a4344; } - html.theme--documenter-dark .button.is-dark.is-active, html.theme--documenter-dark .content kbd.button.is-active, html.theme--documenter-dark .button.is-dark.is-focused, html.theme--documenter-dark .content kbd.button.is-focused, html.theme--documenter-dark .button.is-dark:active, html.theme--documenter-dark .content kbd.button:active, html.theme--documenter-dark .button.is-dark:focus, html.theme--documenter-dark .content kbd.button:focus { - border-color: #282f2f; - box-shadow: 0 0 0 2px rgba(40, 47, 47, 0.5); } - html.theme--documenter-dark .button.is-primary.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary:hover, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:hover { - background-color: #436d9a; } - html.theme--documenter-dark .button.is-primary.is-active, html.theme--documenter-dark .docstring > section > a.button.is-active.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink, html.theme--documenter-dark .button.is-primary:active, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:active, html.theme--documenter-dark .button.is-primary:focus, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus { - border-color: #375a7f; - box-shadow: 0 0 0 2px rgba(55, 90, 127, 0.5); } - html.theme--documenter-dark .button.is-link.is-hovered, html.theme--documenter-dark .button.is-link:hover { - background-color: #1fdeb8; } - html.theme--documenter-dark .button.is-link.is-active, html.theme--documenter-dark .button.is-link.is-focused, html.theme--documenter-dark .button.is-link:active, html.theme--documenter-dark .button.is-link:focus { - border-color: #1abc9c; - box-shadow: 0 0 0 2px rgba(26, 188, 156, 0.5); } - html.theme--documenter-dark .button.is-info.is-hovered, html.theme--documenter-dark .button.is-info:hover { - background-color: #0363a3; } - html.theme--documenter-dark .button.is-info.is-active, html.theme--documenter-dark .button.is-info.is-focused, html.theme--documenter-dark .button.is-info:active, html.theme--documenter-dark .button.is-info:focus { - border-color: #024c7d; - box-shadow: 0 0 0 2px rgba(2, 76, 125, 0.5); } - html.theme--documenter-dark .button.is-success.is-hovered, html.theme--documenter-dark .button.is-success:hover { - background-color: #00aa48; } - html.theme--documenter-dark .button.is-success.is-active, html.theme--documenter-dark .button.is-success.is-focused, html.theme--documenter-dark .button.is-success:active, html.theme--documenter-dark .button.is-success:focus { - border-color: #008438; - box-shadow: 0 0 0 2px rgba(0, 132, 56, 0.5); } - html.theme--documenter-dark .button.is-warning.is-hovered, html.theme--documenter-dark .button.is-warning:hover { - background-color: #d39e00; } - html.theme--documenter-dark .button.is-warning.is-active, html.theme--documenter-dark .button.is-warning.is-focused, html.theme--documenter-dark .button.is-warning:active, html.theme--documenter-dark .button.is-warning:focus { - border-color: #ad8100; - box-shadow: 0 0 0 2px rgba(173, 129, 0, 0.5); } - html.theme--documenter-dark .button.is-danger.is-hovered, html.theme--documenter-dark .button.is-danger:hover { - background-color: #c12110; } - html.theme--documenter-dark .button.is-danger.is-active, html.theme--documenter-dark .button.is-danger.is-focused, html.theme--documenter-dark .button.is-danger:active, html.theme--documenter-dark .button.is-danger:focus { - border-color: #9e1b0d; - box-shadow: 0 0 0 2px rgba(158, 27, 13, 0.5); } - html.theme--documenter-dark .label { - color: #dbdee0; } - html.theme--documenter-dark .button, - html.theme--documenter-dark .control.has-icons-left .icon, - html.theme--documenter-dark .control.has-icons-right .icon, - html.theme--documenter-dark .input, - html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, - html.theme--documenter-dark .pagination-ellipsis, - html.theme--documenter-dark .pagination-link, - html.theme--documenter-dark .pagination-next, - html.theme--documenter-dark .pagination-previous, - html.theme--documenter-dark .select, - html.theme--documenter-dark .select select, - html.theme--documenter-dark .textarea { - height: 2.5em; } - html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, - html.theme--documenter-dark .textarea { - transition: all 200ms ease; - box-shadow: none; - border-width: 1px; - padding-left: 1em; - padding-right: 1em; } - html.theme--documenter-dark .select:after, - html.theme--documenter-dark .select select { - border-width: 1px; } - html.theme--documenter-dark .control.has-addons .button, - html.theme--documenter-dark .control.has-addons .input, - html.theme--documenter-dark .control.has-addons #documenter .docs-sidebar form.docs-search > input, - html.theme--documenter-dark #documenter .docs-sidebar .control.has-addons form.docs-search > input, - html.theme--documenter-dark .control.has-addons .select { - margin-right: -1px; } - html.theme--documenter-dark .notification { - background-color: #343c3d; } - html.theme--documenter-dark .card { - box-shadow: none; - border: 1px solid #343c3d; - background-color: #282f2f; - border-radius: 0.4em; } - html.theme--documenter-dark .card .card-image img { - border-radius: 0.4em 0.4em 0 0; } - html.theme--documenter-dark .card .card-header { - box-shadow: none; - background-color: rgba(18, 18, 18, 0.2); - border-radius: 0.4em 0.4em 0 0; } - html.theme--documenter-dark .card .card-footer { - background-color: rgba(18, 18, 18, 0.2); } - html.theme--documenter-dark .card .card-footer, - html.theme--documenter-dark .card .card-footer-item { - border-width: 1px; - border-color: #343c3d; } - html.theme--documenter-dark .notification.is-white a:not(.button) { - color: #0a0a0a; - text-decoration: underline; } - html.theme--documenter-dark .notification.is-black a:not(.button) { - color: white; - text-decoration: underline; } - html.theme--documenter-dark .notification.is-light a:not(.button) { - color: #282f2f; - text-decoration: underline; } - html.theme--documenter-dark .notification.is-dark a:not(.button), html.theme--documenter-dark .content kbd.notification a:not(.button) { - color: #ecf0f1; - text-decoration: underline; } - html.theme--documenter-dark .notification.is-primary a:not(.button), html.theme--documenter-dark .docstring > section > a.notification.docs-sourcelink a:not(.button) { - color: #fff; - text-decoration: underline; } - html.theme--documenter-dark .notification.is-link a:not(.button) { - color: #fff; - text-decoration: underline; } - html.theme--documenter-dark .notification.is-info a:not(.button) { - color: #fff; - text-decoration: underline; } - html.theme--documenter-dark .notification.is-success a:not(.button) { - color: #fff; - text-decoration: underline; } - html.theme--documenter-dark .notification.is-warning a:not(.button) { - color: #fff; - text-decoration: underline; } - html.theme--documenter-dark .notification.is-danger a:not(.button) { - color: #fff; - text-decoration: underline; } - html.theme--documenter-dark .tag, html.theme--documenter-dark .content kbd, html.theme--documenter-dark .docstring > section > a.docs-sourcelink { - border-radius: 0.4em; } - html.theme--documenter-dark .menu-list a { - transition: all 300ms ease; } - html.theme--documenter-dark .modal-card-body { - background-color: #282f2f; } - html.theme--documenter-dark .modal-card-foot, - html.theme--documenter-dark .modal-card-head { - border-color: #343c3d; } - html.theme--documenter-dark .message-header { - font-weight: 700; - background-color: #343c3d; - color: white; } - html.theme--documenter-dark .message-body { - border-width: 1px; - border-color: #343c3d; } - html.theme--documenter-dark .navbar { - border-radius: 0.4em; } - html.theme--documenter-dark .navbar.is-transparent { - background: none; } - html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active { - background-color: #1abc9c; } - @media screen and (max-width: 1055px) { - html.theme--documenter-dark .navbar .navbar-menu { - background-color: #375a7f; - border-radius: 0 0 0.4em 0.4em; } } - html.theme--documenter-dark .hero .navbar, - html.theme--documenter-dark body > .navbar { - border-radius: 0; } - html.theme--documenter-dark .pagination-link, - html.theme--documenter-dark .pagination-next, - html.theme--documenter-dark .pagination-previous { - border-width: 1px; } - html.theme--documenter-dark .panel-block, - html.theme--documenter-dark .panel-heading, - html.theme--documenter-dark .panel-tabs { - border-width: 1px; } - html.theme--documenter-dark .panel-block:first-child, - html.theme--documenter-dark .panel-heading:first-child, - html.theme--documenter-dark .panel-tabs:first-child { - border-top-width: 1px; } - html.theme--documenter-dark .panel-heading { - font-weight: 700; } - html.theme--documenter-dark .panel-tabs a { - border-width: 1px; - margin-bottom: -1px; } - html.theme--documenter-dark .panel-tabs a.is-active { - border-bottom-color: #17a689; } - html.theme--documenter-dark .panel-block:hover { - color: #1dd2af; } - html.theme--documenter-dark .panel-block:hover .panel-icon { - color: #1dd2af; } - html.theme--documenter-dark .panel-block.is-active .panel-icon { - color: #17a689; } - html.theme--documenter-dark .tabs a { - border-bottom-width: 1px; - margin-bottom: -1px; } - html.theme--documenter-dark .tabs ul { - border-bottom-width: 1px; } - html.theme--documenter-dark .tabs.is-boxed a { - border-width: 1px; } - html.theme--documenter-dark .tabs.is-boxed li.is-active a { - background-color: #1f2424; } - html.theme--documenter-dark .tabs.is-toggle li a { - border-width: 1px; - margin-bottom: 0; } - html.theme--documenter-dark .tabs.is-toggle li + li { - margin-left: -1px; } - html.theme--documenter-dark .hero.is-white .navbar .navbar-dropdown .navbar-item:hover { - background-color: transparent; } - html.theme--documenter-dark .hero.is-black .navbar .navbar-dropdown .navbar-item:hover { - background-color: transparent; } - html.theme--documenter-dark .hero.is-light .navbar .navbar-dropdown .navbar-item:hover { - background-color: transparent; } - html.theme--documenter-dark .hero.is-dark .navbar .navbar-dropdown .navbar-item:hover, html.theme--documenter-dark .content kbd.hero .navbar .navbar-dropdown .navbar-item:hover { - background-color: transparent; } - html.theme--documenter-dark .hero.is-primary .navbar .navbar-dropdown .navbar-item:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar .navbar-dropdown .navbar-item:hover { - background-color: transparent; } - html.theme--documenter-dark .hero.is-link .navbar .navbar-dropdown .navbar-item:hover { - background-color: transparent; } - html.theme--documenter-dark .hero.is-info .navbar .navbar-dropdown .navbar-item:hover { - background-color: transparent; } - html.theme--documenter-dark .hero.is-success .navbar .navbar-dropdown .navbar-item:hover { - background-color: transparent; } - html.theme--documenter-dark .hero.is-warning .navbar .navbar-dropdown .navbar-item:hover { - background-color: transparent; } - html.theme--documenter-dark .hero.is-danger .navbar .navbar-dropdown .navbar-item:hover { - background-color: transparent; } - html.theme--documenter-dark h1 .docs-heading-anchor, html.theme--documenter-dark h1 .docs-heading-anchor:hover, html.theme--documenter-dark h1 .docs-heading-anchor:visited, html.theme--documenter-dark h2 .docs-heading-anchor, html.theme--documenter-dark h2 .docs-heading-anchor:hover, html.theme--documenter-dark h2 .docs-heading-anchor:visited, html.theme--documenter-dark h3 .docs-heading-anchor, html.theme--documenter-dark h3 .docs-heading-anchor:hover, html.theme--documenter-dark h3 .docs-heading-anchor:visited, html.theme--documenter-dark h4 .docs-heading-anchor, html.theme--documenter-dark h4 .docs-heading-anchor:hover, html.theme--documenter-dark h4 .docs-heading-anchor:visited, html.theme--documenter-dark h5 .docs-heading-anchor, html.theme--documenter-dark h5 .docs-heading-anchor:hover, html.theme--documenter-dark h5 .docs-heading-anchor:visited, html.theme--documenter-dark h6 .docs-heading-anchor, html.theme--documenter-dark h6 .docs-heading-anchor:hover, html.theme--documenter-dark h6 .docs-heading-anchor:visited { - color: #f2f2f2; } - html.theme--documenter-dark h1 .docs-heading-anchor-permalink, html.theme--documenter-dark h2 .docs-heading-anchor-permalink, html.theme--documenter-dark h3 .docs-heading-anchor-permalink, html.theme--documenter-dark h4 .docs-heading-anchor-permalink, html.theme--documenter-dark h5 .docs-heading-anchor-permalink, html.theme--documenter-dark h6 .docs-heading-anchor-permalink { - visibility: hidden; - vertical-align: middle; - margin-left: 0.5em; - font-size: 0.7rem; } - html.theme--documenter-dark h1 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h2 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h3 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h4 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h5 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h6 .docs-heading-anchor-permalink::before { - font-family: "Font Awesome 5 Free"; - font-weight: 900; - content: "\f0c1"; } - html.theme--documenter-dark h1:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h2:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h3:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h4:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h5:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h6:hover .docs-heading-anchor-permalink { - visibility: visible; } - html.theme--documenter-dark .docs-light-only { - display: none !important; } - html.theme--documenter-dark pre { - position: relative; - overflow: hidden; } - html.theme--documenter-dark pre code, html.theme--documenter-dark pre code.hljs { - padding: 0 0.75rem !important; - overflow: auto; - display: block; } - html.theme--documenter-dark pre code:first-of-type, html.theme--documenter-dark pre code.hljs:first-of-type { - padding-top: 0.5rem !important; } - html.theme--documenter-dark pre code:last-of-type, html.theme--documenter-dark pre code.hljs:last-of-type { - padding-bottom: 0.5rem !important; } - html.theme--documenter-dark pre .copy-button { - opacity: 0.2; - transition: opacity 0.2s; - position: absolute; - right: 0em; - top: 0em; - padding: 0.5em; - width: 2.5em; - height: 2.5em; - background: transparent; - border: none; - font-family: "Font Awesome 5 Free"; - color: #fff; - cursor: pointer; - text-align: center; } - html.theme--documenter-dark pre .copy-button:focus, html.theme--documenter-dark pre .copy-button:hover { - opacity: 1; - background: rgba(255, 255, 255, 0.1); - color: #1abc9c; } - html.theme--documenter-dark pre .copy-button.success { - color: #259a12; - opacity: 1; } - html.theme--documenter-dark pre .copy-button.error { - color: #cb3c33; - opacity: 1; } - html.theme--documenter-dark pre:hover .copy-button { - opacity: 1; } - html.theme--documenter-dark .admonition { - background-color: #282f2f; - border-style: solid; - border-width: 1px; - border-color: #5e6d6f; - border-radius: 0.4em; - font-size: 15px; } - html.theme--documenter-dark .admonition strong { - color: currentColor; } - html.theme--documenter-dark .admonition.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.admonition { - font-size: 0.85em; } - html.theme--documenter-dark .admonition.is-medium { - font-size: 1.25rem; } - html.theme--documenter-dark .admonition.is-large { - font-size: 1.5rem; } - html.theme--documenter-dark .admonition.is-default { - background-color: #282f2f; - border-color: #5e6d6f; } - html.theme--documenter-dark .admonition.is-default > .admonition-header { - background-color: #5e6d6f; } - html.theme--documenter-dark .admonition.is-info { - background-color: #282f2f; - border-color: #024c7d; } - html.theme--documenter-dark .admonition.is-info > .admonition-header { - background-color: #024c7d; } - html.theme--documenter-dark .admonition.is-success { - background-color: #282f2f; - border-color: #008438; } - html.theme--documenter-dark .admonition.is-success > .admonition-header { - background-color: #008438; } - html.theme--documenter-dark .admonition.is-warning { - background-color: #282f2f; - border-color: #ad8100; } - html.theme--documenter-dark .admonition.is-warning > .admonition-header { - background-color: #ad8100; } - html.theme--documenter-dark .admonition.is-danger { - background-color: #282f2f; - border-color: #9e1b0d; } - html.theme--documenter-dark .admonition.is-danger > .admonition-header { - background-color: #9e1b0d; } - html.theme--documenter-dark .admonition.is-compat { - background-color: #282f2f; - border-color: #137886; } - html.theme--documenter-dark .admonition.is-compat > .admonition-header { - background-color: #137886; } - html.theme--documenter-dark .admonition-header { - background-color: #5e6d6f; - align-items: center; - font-weight: 700; - justify-content: space-between; - line-height: 1.25; - padding: 0.5rem 0.75rem; - position: relative; } - html.theme--documenter-dark .admonition-header:before { - font-family: "Font Awesome 5 Free"; - font-weight: 900; - margin-right: 0.75rem; - content: "\f06a"; } - html.theme--documenter-dark .admonition-body { - color: #fff; - padding: 0.5rem 0.75rem; } - html.theme--documenter-dark .admonition-body pre { - background-color: #282f2f; } - html.theme--documenter-dark .admonition-body code { - background-color: rgba(255, 255, 255, 0.05); } - html.theme--documenter-dark .docstring { - margin-bottom: 1em; - background-color: transparent; - border: 1px solid #5e6d6f; - box-shadow: none; - max-width: 100%; } - html.theme--documenter-dark .docstring > header { - display: flex; - flex-grow: 1; - align-items: stretch; - padding: 0.5rem 0.75rem; - background-color: #282f2f; - box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); - box-shadow: none; - border-bottom: 1px solid #5e6d6f; } - html.theme--documenter-dark .docstring > header code { - background-color: transparent; } - html.theme--documenter-dark .docstring > header .docstring-binding { - margin-right: 0.3em; } - html.theme--documenter-dark .docstring > header .docstring-category { - margin-left: 0.3em; } - html.theme--documenter-dark .docstring > section { - position: relative; - padding: 0.75rem 0.75rem; - border-bottom: 1px solid #5e6d6f; } - html.theme--documenter-dark .docstring > section:last-child { - border-bottom: none; } - html.theme--documenter-dark .docstring > section > a.docs-sourcelink { - transition: opacity 0.3s; - opacity: 0; - position: absolute; - right: 0.375rem; - bottom: 0.375rem; } - html.theme--documenter-dark .docstring > section > a.docs-sourcelink:focus { - opacity: 1 !important; } - html.theme--documenter-dark .docstring:hover > section > a.docs-sourcelink { - opacity: 0.2; } - html.theme--documenter-dark .docstring:focus-within > section > a.docs-sourcelink { - opacity: 0.2; } - html.theme--documenter-dark .docstring > section:hover a.docs-sourcelink { - opacity: 1; } - html.theme--documenter-dark .documenter-example-output { - background-color: #1f2424; } - html.theme--documenter-dark .outdated-warning-overlay { - position: fixed; - top: 0; - left: 0; - right: 0; - box-shadow: 0 0 10px rgba(0, 0, 0, 0.3); - z-index: 999; - background-color: #282f2f; - border-bottom: 3px solid #9e1b0d; - padding: 10px 35px; - text-align: center; - font-size: 15px; } - html.theme--documenter-dark .outdated-warning-overlay .outdated-warning-closer { - position: absolute; - top: calc(50% - 10px); - right: 18px; - cursor: pointer; - width: 12px; } - html.theme--documenter-dark .outdated-warning-overlay a { - color: #1abc9c; } - html.theme--documenter-dark .outdated-warning-overlay a:hover { - color: #1dd2af; } - html.theme--documenter-dark .content pre { - border: 1px solid #5e6d6f; } - html.theme--documenter-dark .content code { - font-weight: inherit; } - html.theme--documenter-dark .content a code { - color: #1abc9c; } - html.theme--documenter-dark .content h1 code, html.theme--documenter-dark .content h2 code, html.theme--documenter-dark .content h3 code, html.theme--documenter-dark .content h4 code, html.theme--documenter-dark .content h5 code, html.theme--documenter-dark .content h6 code { - color: #f2f2f2; } - html.theme--documenter-dark .content table { - display: block; - width: initial; - max-width: 100%; - overflow-x: auto; } - html.theme--documenter-dark .content blockquote > ul:first-child, html.theme--documenter-dark .content blockquote > ol:first-child, html.theme--documenter-dark .content .admonition-body > ul:first-child, html.theme--documenter-dark .content .admonition-body > ol:first-child { - margin-top: 0; } - html.theme--documenter-dark pre, html.theme--documenter-dark code { - font-variant-ligatures: no-contextual; } - html.theme--documenter-dark .breadcrumb a.is-disabled { - cursor: default; - pointer-events: none; } - html.theme--documenter-dark .breadcrumb a.is-disabled, html.theme--documenter-dark .breadcrumb a.is-disabled:hover { - color: #f2f2f2; } - html.theme--documenter-dark .hljs { - background: initial !important; } - html.theme--documenter-dark .katex .katex-mathml { - top: 0; - right: 0; } - html.theme--documenter-dark .katex-display, html.theme--documenter-dark mjx-container, html.theme--documenter-dark .MathJax_Display { - margin: 0.5em 0 !important; } - html.theme--documenter-dark html { - -moz-osx-font-smoothing: auto; - -webkit-font-smoothing: auto; } - html.theme--documenter-dark li.no-marker { - list-style: none; } - html.theme--documenter-dark #documenter .docs-main > article { - overflow-wrap: break-word; } - html.theme--documenter-dark #documenter .docs-main > article .math-container { - overflow-x: auto; - overflow-y: hidden; } - @media screen and (min-width: 1056px) { - html.theme--documenter-dark #documenter .docs-main { - max-width: 52rem; - margin-left: 20rem; - padding-right: 1rem; } } - @media screen and (max-width: 1055px) { - html.theme--documenter-dark #documenter .docs-main { - width: 100%; } - html.theme--documenter-dark #documenter .docs-main > article { - max-width: 52rem; - margin-left: auto; - margin-right: auto; - margin-bottom: 1rem; - padding: 0 1rem; } - html.theme--documenter-dark #documenter .docs-main > header, html.theme--documenter-dark #documenter .docs-main > nav { - max-width: 100%; - width: 100%; - margin: 0; } } - html.theme--documenter-dark #documenter .docs-main header.docs-navbar { - background-color: #1f2424; - border-bottom: 1px solid #5e6d6f; - z-index: 2; - min-height: 4rem; - margin-bottom: 1rem; - display: flex; } - html.theme--documenter-dark #documenter .docs-main header.docs-navbar .breadcrumb { - flex-grow: 1; } - html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right { - display: flex; - white-space: nowrap; } - html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-icon, html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label, html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { - display: inline-block; } - html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label { - padding: 0; - margin-left: 0.3em; } - html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button { - margin: auto 0 auto 1rem; } - html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { - font-size: 1.5rem; - margin: auto 0 auto 1rem; } - html.theme--documenter-dark #documenter .docs-main header.docs-navbar > * { - margin: auto 0; } - @media screen and (max-width: 1055px) { - html.theme--documenter-dark #documenter .docs-main header.docs-navbar { - position: sticky; - top: 0; - padding: 0 1rem; - /* For Headroom.js */ - transition-property: top, box-shadow; - -webkit-transition-property: top, box-shadow; - /* Safari */ - transition-duration: 0.3s; - -webkit-transition-duration: 0.3s; - /* Safari */ } - html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--not-top { - box-shadow: 0.2rem 0rem 0.4rem #171717; - transition-duration: 0.7s; - -webkit-transition-duration: 0.7s; - /* Safari */ } - html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom { - top: -4.5rem; - transition-duration: 0.7s; - -webkit-transition-duration: 0.7s; - /* Safari */ } } - html.theme--documenter-dark #documenter .docs-main section.footnotes { - border-top: 1px solid #5e6d6f; } - html.theme--documenter-dark #documenter .docs-main section.footnotes li .tag:first-child, html.theme--documenter-dark #documenter .docs-main section.footnotes li .docstring > section > a.docs-sourcelink:first-child, html.theme--documenter-dark #documenter .docs-main section.footnotes li .content kbd:first-child, html.theme--documenter-dark .content #documenter .docs-main section.footnotes li kbd:first-child { - margin-right: 1em; - margin-bottom: 0.4em; } - html.theme--documenter-dark #documenter .docs-main .docs-footer { - display: flex; - flex-wrap: wrap; - margin-left: 0; - margin-right: 0; - border-top: 1px solid #5e6d6f; - padding-top: 1rem; - padding-bottom: 1rem; } - @media screen and (max-width: 1055px) { - html.theme--documenter-dark #documenter .docs-main .docs-footer { - padding-left: 1rem; - padding-right: 1rem; } } - html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage, html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-prevpage { - flex-grow: 1; } - html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage { - text-align: right; } - html.theme--documenter-dark #documenter .docs-main .docs-footer .flexbox-break { - flex-basis: 100%; - height: 0; } - html.theme--documenter-dark #documenter .docs-main .docs-footer .footer-message { - font-size: 0.8em; - margin: 0.5em auto 0 auto; - text-align: center; } - html.theme--documenter-dark #documenter .docs-sidebar { - display: flex; - flex-direction: column; - color: #fff; - background-color: #282f2f; - border-right: 1px solid #5e6d6f; - padding: 0; - flex: 0 0 18rem; - z-index: 5; - font-size: 15px; - position: fixed; - left: -18rem; - width: 18rem; - height: 100%; - transition: left 0.3s; - /* Setting up a nicer theme style for the scrollbar */ } - html.theme--documenter-dark #documenter .docs-sidebar.visible { - left: 0; - box-shadow: 0.4rem 0rem 0.8rem #171717; } - @media screen and (min-width: 1056px) { - html.theme--documenter-dark #documenter .docs-sidebar.visible { - box-shadow: none; } } - @media screen and (min-width: 1056px) { - html.theme--documenter-dark #documenter .docs-sidebar { - left: 0; - top: 0; } } - html.theme--documenter-dark #documenter .docs-sidebar .docs-logo { - margin-top: 1rem; - padding: 0 1rem; } - html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img { - max-height: 6rem; - margin: auto; } - html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name { - flex-shrink: 0; - font-size: 1.5rem; - font-weight: 700; - text-align: center; - white-space: nowrap; - overflow: hidden; - padding: 0.5rem 0; } - html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name .docs-autofit { - max-width: 16.2rem; } - html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a, html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a:hover { - color: #fff; } - html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector { - border-top: 1px solid #5e6d6f; - display: none; - padding: 0.5rem; } - html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector.visible { - display: flex; } - html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu { - flex-grow: 1; - user-select: none; - border-top: 1px solid #5e6d6f; - padding-bottom: 1.5rem; - /* Managing collapsible submenus */ } - html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li > .tocitem { - font-weight: bold; } - html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li li { - font-size: 14.25px; - margin-left: 1em; - border-left: 1px solid #5e6d6f; } - html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input.collapse-toggle { - display: none; } - html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.collapsed { - display: none; } - html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked ~ ul.collapsed { - display: block; } - html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem { - display: flex; } - html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label { - flex-grow: 2; } - html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron { - display: inline-block; - font-style: normal; - font-variant: normal; - text-rendering: auto; - line-height: 1; - font-size: 11.25px; - margin-left: 1rem; - margin-top: auto; - margin-bottom: auto; } - html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before { - font-family: "Font Awesome 5 Free"; - font-weight: 900; - content: "\f054"; } - html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked ~ label.tocitem .docs-chevron::before { - content: "\f078"; } - html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem { - display: block; - padding: 0.5rem 0.5rem; } - html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem:hover { - color: #fff; - background: #282f2f; } - html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu a.tocitem:hover, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem:hover { - color: #fff; - background-color: #32393a; } - html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active { - border-top: 1px solid #5e6d6f; - border-bottom: 1px solid #5e6d6f; - background-color: #1f2424; } - html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover { - background-color: #1f2424; - color: #fff; } - html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover { - background-color: #32393a; - color: #fff; } - html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li.is-active:first-child { - border-top: none; } - html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal { - margin: 0 0.5rem 0.5rem; - border-top: 1px solid #5e6d6f; } - html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal li { - font-size: 12.75px; - border-left: none; - margin-left: 0; - margin-top: 0.5rem; } - html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem { - width: 100%; - padding: 0; } - html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before { - content: "⚬"; - margin-right: 0.4em; } - html.theme--documenter-dark #documenter .docs-sidebar form.docs-search { - margin: auto; - margin-top: 0.5rem; - margin-bottom: 0.5rem; } - html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { - width: 14.4rem; } - @media screen and (min-width: 1056px) { - html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu { - overflow-y: auto; - -webkit-overflow-scroll: touch; } - html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar { - width: .3rem; - background: none; } - html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb { - border-radius: 5px 0px 0px 5px; - background: #3b4445; } - html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover { - background: #4e5a5c; } } - @media screen and (max-width: 1055px) { - html.theme--documenter-dark #documenter .docs-sidebar { - overflow-y: auto; - -webkit-overflow-scroll: touch; } - html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar { - width: .3rem; - background: none; } - html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb { - border-radius: 5px 0px 0px 5px; - background: #3b4445; } - html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover { - background: #4e5a5c; } } - html.theme--documenter-dark #documenter .docs-main #documenter-search-info { - margin-bottom: 1rem; } - html.theme--documenter-dark #documenter .docs-main #documenter-search-results { - list-style-type: circle; - list-style-position: outside; } - html.theme--documenter-dark #documenter .docs-main #documenter-search-results li { - margin-left: 2rem; } - html.theme--documenter-dark #documenter .docs-main #documenter-search-results .docs-highlight { - background-color: yellow; } - html.theme--documenter-dark { - background-color: #1f2424; - font-size: 16px; - min-width: 300px; - overflow-x: auto; - overflow-y: scroll; - text-rendering: optimizeLegibility; - text-size-adjust: 100%; } - html.theme--documenter-dark .ansi span.sgr1 { - font-weight: bolder; } - html.theme--documenter-dark .ansi span.sgr2 { - font-weight: lighter; } - html.theme--documenter-dark .ansi span.sgr3 { - font-style: italic; } - html.theme--documenter-dark .ansi span.sgr4 { - text-decoration: underline; } - html.theme--documenter-dark .ansi span.sgr7 { - color: #1f2424; - background-color: #fff; } - html.theme--documenter-dark .ansi span.sgr8 { - color: transparent; } - html.theme--documenter-dark .ansi span.sgr8 span { - color: transparent; } - html.theme--documenter-dark .ansi span.sgr9 { - text-decoration: line-through; } - html.theme--documenter-dark .ansi span.sgr30 { - color: #242424; } - html.theme--documenter-dark .ansi span.sgr31 { - color: #f6705f; } - html.theme--documenter-dark .ansi span.sgr32 { - color: #4fb43a; } - html.theme--documenter-dark .ansi span.sgr33 { - color: #f4c72f; } - html.theme--documenter-dark .ansi span.sgr34 { - color: #7587f0; } - html.theme--documenter-dark .ansi span.sgr35 { - color: #bc89d3; } - html.theme--documenter-dark .ansi span.sgr36 { - color: #49b6ca; } - html.theme--documenter-dark .ansi span.sgr37 { - color: #b3bdbe; } - html.theme--documenter-dark .ansi span.sgr40 { - background-color: #242424; } - html.theme--documenter-dark .ansi span.sgr41 { - background-color: #f6705f; } - html.theme--documenter-dark .ansi span.sgr42 { - background-color: #4fb43a; } - html.theme--documenter-dark .ansi span.sgr43 { - background-color: #f4c72f; } - html.theme--documenter-dark .ansi span.sgr44 { - background-color: #7587f0; } - html.theme--documenter-dark .ansi span.sgr45 { - background-color: #bc89d3; } - html.theme--documenter-dark .ansi span.sgr46 { - background-color: #49b6ca; } - html.theme--documenter-dark .ansi span.sgr47 { - background-color: #b3bdbe; } - html.theme--documenter-dark .ansi span.sgr90 { - color: #92a0a2; } - html.theme--documenter-dark .ansi span.sgr91 { - color: #ff8674; } - html.theme--documenter-dark .ansi span.sgr92 { - color: #79d462; } - html.theme--documenter-dark .ansi span.sgr93 { - color: #ffe76b; } - html.theme--documenter-dark .ansi span.sgr94 { - color: #8a98ff; } - html.theme--documenter-dark .ansi span.sgr95 { - color: #d2a4e6; } - html.theme--documenter-dark .ansi span.sgr96 { - color: #6bc8db; } - html.theme--documenter-dark .ansi span.sgr97 { - color: #ecf0f1; } - html.theme--documenter-dark .ansi span.sgr100 { - background-color: #92a0a2; } - html.theme--documenter-dark .ansi span.sgr101 { - background-color: #ff8674; } - html.theme--documenter-dark .ansi span.sgr102 { - background-color: #79d462; } - html.theme--documenter-dark .ansi span.sgr103 { - background-color: #ffe76b; } - html.theme--documenter-dark .ansi span.sgr104 { - background-color: #8a98ff; } - html.theme--documenter-dark .ansi span.sgr105 { - background-color: #d2a4e6; } - html.theme--documenter-dark .ansi span.sgr106 { - background-color: #6bc8db; } - html.theme--documenter-dark .ansi span.sgr107 { - background-color: #ecf0f1; } - html.theme--documenter-dark code.language-julia-repl > span.hljs-meta { - color: #4fb43a; - font-weight: bolder; } - html.theme--documenter-dark .hljs { - background: #2b2b2b; - color: #f8f8f2; } - html.theme--documenter-dark .hljs-comment, - html.theme--documenter-dark .hljs-quote { - color: #d4d0ab; } - html.theme--documenter-dark .hljs-variable, - html.theme--documenter-dark .hljs-template-variable, - html.theme--documenter-dark .hljs-tag, - html.theme--documenter-dark .hljs-name, - html.theme--documenter-dark .hljs-selector-id, - html.theme--documenter-dark .hljs-selector-class, - html.theme--documenter-dark .hljs-regexp, - html.theme--documenter-dark .hljs-deletion { - color: #ffa07a; } - html.theme--documenter-dark .hljs-number, - html.theme--documenter-dark .hljs-built_in, - html.theme--documenter-dark .hljs-literal, - html.theme--documenter-dark .hljs-type, - html.theme--documenter-dark .hljs-params, - html.theme--documenter-dark .hljs-meta, - html.theme--documenter-dark .hljs-link { - color: #f5ab35; } - html.theme--documenter-dark .hljs-attribute { - color: #ffd700; } - html.theme--documenter-dark .hljs-string, - html.theme--documenter-dark .hljs-symbol, - html.theme--documenter-dark .hljs-bullet, - html.theme--documenter-dark .hljs-addition { - color: #abe338; } - html.theme--documenter-dark .hljs-title, - html.theme--documenter-dark .hljs-section { - color: #00e0e0; } - html.theme--documenter-dark .hljs-keyword, - html.theme--documenter-dark .hljs-selector-tag { - color: #dcc6e0; } - html.theme--documenter-dark .hljs-emphasis { - font-style: italic; } - html.theme--documenter-dark .hljs-strong { - font-weight: bold; } - @media screen and (-ms-high-contrast: active) { - html.theme--documenter-dark .hljs-addition, - html.theme--documenter-dark .hljs-attribute, - html.theme--documenter-dark .hljs-built_in, - html.theme--documenter-dark .hljs-bullet, - html.theme--documenter-dark .hljs-comment, - html.theme--documenter-dark .hljs-link, - html.theme--documenter-dark .hljs-literal, - html.theme--documenter-dark .hljs-meta, - html.theme--documenter-dark .hljs-number, - html.theme--documenter-dark .hljs-params, - html.theme--documenter-dark .hljs-string, - html.theme--documenter-dark .hljs-symbol, - html.theme--documenter-dark .hljs-type, - html.theme--documenter-dark .hljs-quote { - color: highlight; } - html.theme--documenter-dark .hljs-keyword, - html.theme--documenter-dark .hljs-selector-tag { - font-weight: bold; } } - html.theme--documenter-dark .hljs-subst { - color: #f8f8f2; } +*/}html.theme--documenter-dark html{background-color:#1f2424;font-size:16px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;min-width:300px;overflow-x:auto;overflow-y:scroll;text-rendering:optimizeLegibility;text-size-adjust:100%}html.theme--documenter-dark article,html.theme--documenter-dark aside,html.theme--documenter-dark figure,html.theme--documenter-dark footer,html.theme--documenter-dark header,html.theme--documenter-dark hgroup,html.theme--documenter-dark section{display:block}html.theme--documenter-dark body,html.theme--documenter-dark button,html.theme--documenter-dark input,html.theme--documenter-dark optgroup,html.theme--documenter-dark select,html.theme--documenter-dark textarea{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif}html.theme--documenter-dark code,html.theme--documenter-dark pre{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto;font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace}html.theme--documenter-dark body{color:#fff;font-size:1em;font-weight:400;line-height:1.5}html.theme--documenter-dark a{color:#1abc9c;cursor:pointer;text-decoration:none}html.theme--documenter-dark a strong{color:currentColor}html.theme--documenter-dark a:hover{color:#1dd2af}html.theme--documenter-dark code{background-color:rgba(255,255,255,0.05);color:#ececec;font-size:.875em;font-weight:normal;padding:.1em}html.theme--documenter-dark hr{background-color:#282f2f;border:none;display:block;height:2px;margin:1.5rem 0}html.theme--documenter-dark img{height:auto;max-width:100%}html.theme--documenter-dark input[type="checkbox"],html.theme--documenter-dark input[type="radio"]{vertical-align:baseline}html.theme--documenter-dark small{font-size:.875em}html.theme--documenter-dark span{font-style:inherit;font-weight:inherit}html.theme--documenter-dark strong{color:#f2f2f2;font-weight:700}html.theme--documenter-dark fieldset{border:none}html.theme--documenter-dark pre{-webkit-overflow-scrolling:touch;background-color:#282f2f;color:#fff;font-size:.875em;overflow-x:auto;padding:1.25rem 1.5rem;white-space:pre;word-wrap:normal}html.theme--documenter-dark pre code{background-color:transparent;color:currentColor;font-size:1em;padding:0}html.theme--documenter-dark table td,html.theme--documenter-dark table th{vertical-align:top}html.theme--documenter-dark table td:not([align]),html.theme--documenter-dark table th:not([align]){text-align:inherit}html.theme--documenter-dark table th{color:#f2f2f2}html.theme--documenter-dark .box{background-color:#343c3d;border-radius:8px;box-shadow:none;color:#fff;display:block;padding:1.25rem}html.theme--documenter-dark a.box:hover,html.theme--documenter-dark a.box:focus{box-shadow:0 0.5em 1em -0.125em rgba(10,10,10,0.1),0 0 0 1px #1abc9c}html.theme--documenter-dark a.box:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2),0 0 0 1px #1abc9c}html.theme--documenter-dark .button{background-color:#282f2f;border-color:#4c5759;border-width:1px;color:#375a7f;cursor:pointer;justify-content:center;padding-bottom:calc(0.5em - 1px);padding-left:1em;padding-right:1em;padding-top:calc(0.5em - 1px);text-align:center;white-space:nowrap}html.theme--documenter-dark .button strong{color:inherit}html.theme--documenter-dark .button .icon,html.theme--documenter-dark .button .icon.is-small,html.theme--documenter-dark .button #documenter .docs-sidebar form.docs-search>input.icon,html.theme--documenter-dark #documenter .docs-sidebar .button form.docs-search>input.icon,html.theme--documenter-dark .button .icon.is-medium,html.theme--documenter-dark .button .icon.is-large{height:1.5em;width:1.5em}html.theme--documenter-dark .button .icon:first-child:not(:last-child){margin-left:calc(-0.5em - 1px);margin-right:.25em}html.theme--documenter-dark .button .icon:last-child:not(:first-child){margin-left:.25em;margin-right:calc(-0.5em - 1px)}html.theme--documenter-dark .button .icon:first-child:last-child{margin-left:calc(-0.5em - 1px);margin-right:calc(-0.5em - 1px)}html.theme--documenter-dark .button:hover,html.theme--documenter-dark .button.is-hovered{border-color:#8c9b9d;color:#f2f2f2}html.theme--documenter-dark .button:focus,html.theme--documenter-dark .button.is-focused{border-color:#8c9b9d;color:#17a689}html.theme--documenter-dark .button:focus:not(:active),html.theme--documenter-dark .button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .button:active,html.theme--documenter-dark .button.is-active{border-color:#343c3d;color:#f2f2f2}html.theme--documenter-dark .button.is-text{background-color:transparent;border-color:transparent;color:#fff;text-decoration:underline}html.theme--documenter-dark .button.is-text:hover,html.theme--documenter-dark .button.is-text.is-hovered,html.theme--documenter-dark .button.is-text:focus,html.theme--documenter-dark .button.is-text.is-focused{background-color:#282f2f;color:#f2f2f2}html.theme--documenter-dark .button.is-text:active,html.theme--documenter-dark .button.is-text.is-active{background-color:#1d2122;color:#f2f2f2}html.theme--documenter-dark .button.is-text[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-text{background-color:transparent;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-ghost{background:none;border-color:rgba(0,0,0,0);color:#1abc9c;text-decoration:none}html.theme--documenter-dark .button.is-ghost:hover,html.theme--documenter-dark .button.is-ghost.is-hovered{color:#1abc9c;text-decoration:underline}html.theme--documenter-dark .button.is-white{background-color:#fff;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white:hover,html.theme--documenter-dark .button.is-white.is-hovered{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white:focus,html.theme--documenter-dark .button.is-white.is-focused{border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white:focus:not(:active),html.theme--documenter-dark .button.is-white.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--documenter-dark .button.is-white:active,html.theme--documenter-dark .button.is-white.is-active{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white{background-color:#fff;border-color:#fff;box-shadow:none}html.theme--documenter-dark .button.is-white.is-inverted{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .button.is-white.is-inverted:hover,html.theme--documenter-dark .button.is-white.is-inverted.is-hovered{background-color:#000}html.theme--documenter-dark .button.is-white.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted{background-color:#0a0a0a;border-color:transparent;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-white.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-white.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-white.is-outlined:hover,html.theme--documenter-dark .button.is-white.is-outlined.is-hovered,html.theme--documenter-dark .button.is-white.is-outlined:focus,html.theme--documenter-dark .button.is-white.is-outlined.is-focused{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--documenter-dark .button.is-white.is-outlined.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-white.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-white.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-white.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-focused{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}html.theme--documenter-dark .button.is-black{background-color:#0a0a0a;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black:hover,html.theme--documenter-dark .button.is-black.is-hovered{background-color:#040404;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black:focus,html.theme--documenter-dark .button.is-black.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black:focus:not(:active),html.theme--documenter-dark .button.is-black.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--documenter-dark .button.is-black:active,html.theme--documenter-dark .button.is-black.is-active{background-color:#000;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black{background-color:#0a0a0a;border-color:#0a0a0a;box-shadow:none}html.theme--documenter-dark .button.is-black.is-inverted{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-inverted:hover,html.theme--documenter-dark .button.is-black.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-black.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-outlined:hover,html.theme--documenter-dark .button.is-black.is-outlined.is-hovered,html.theme--documenter-dark .button.is-black.is-outlined:focus,html.theme--documenter-dark .button.is-black.is-outlined.is-focused{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--documenter-dark .button.is-black.is-outlined.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-black.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-black.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-black.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-focused{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-light{background-color:#ecf0f1;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .button.is-light:hover,html.theme--documenter-dark .button.is-light.is-hovered{background-color:#e5eaec;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .button.is-light:focus,html.theme--documenter-dark .button.is-light.is-focused{border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .button.is-light:focus:not(:active),html.theme--documenter-dark .button.is-light.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(236,240,241,0.25)}html.theme--documenter-dark .button.is-light:active,html.theme--documenter-dark .button.is-light.is-active{background-color:#dde4e6;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .button.is-light[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light{background-color:#ecf0f1;border-color:#ecf0f1;box-shadow:none}html.theme--documenter-dark .button.is-light.is-inverted{background-color:rgba(0,0,0,0.7);color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-inverted:hover,html.theme--documenter-dark .button.is-light.is-inverted.is-hovered{background-color:rgba(0,0,0,0.7)}html.theme--documenter-dark .button.is-light.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted{background-color:rgba(0,0,0,0.7);border-color:transparent;box-shadow:none;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-loading::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !important}html.theme--documenter-dark .button.is-light.is-outlined{background-color:transparent;border-color:#ecf0f1;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-outlined:hover,html.theme--documenter-dark .button.is-light.is-outlined.is-hovered,html.theme--documenter-dark .button.is-light.is-outlined:focus,html.theme--documenter-dark .button.is-light.is-outlined.is-focused{background-color:#ecf0f1;border-color:#ecf0f1;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .button.is-light.is-outlined.is-loading::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-light.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-light.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-focused::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !important}html.theme--documenter-dark .button.is-light.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light.is-outlined{background-color:transparent;border-color:#ecf0f1;box-shadow:none;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,0.7);color:rgba(0,0,0,0.7)}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-focused{background-color:rgba(0,0,0,0.7);color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,0.7);box-shadow:none;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .button.is-dark,html.theme--documenter-dark .content kbd.button{background-color:#282f2f;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-dark:hover,html.theme--documenter-dark .content kbd.button:hover,html.theme--documenter-dark .button.is-dark.is-hovered,html.theme--documenter-dark .content kbd.button.is-hovered{background-color:#232829;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-dark:focus,html.theme--documenter-dark .content kbd.button:focus,html.theme--documenter-dark .button.is-dark.is-focused,html.theme--documenter-dark .content kbd.button.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-dark:focus:not(:active),html.theme--documenter-dark .content kbd.button:focus:not(:active),html.theme--documenter-dark .button.is-dark.is-focused:not(:active),html.theme--documenter-dark .content kbd.button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(40,47,47,0.25)}html.theme--documenter-dark .button.is-dark:active,html.theme--documenter-dark .content kbd.button:active,html.theme--documenter-dark .button.is-dark.is-active,html.theme--documenter-dark .content kbd.button.is-active{background-color:#1d2122;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-dark[disabled],html.theme--documenter-dark .content kbd.button[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark,fieldset[disabled] html.theme--documenter-dark .content kbd.button{background-color:#282f2f;border-color:#282f2f;box-shadow:none}html.theme--documenter-dark .button.is-dark.is-inverted,html.theme--documenter-dark .content kbd.button.is-inverted{background-color:#fff;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-inverted:hover,html.theme--documenter-dark .content kbd.button.is-inverted:hover,html.theme--documenter-dark .button.is-dark.is-inverted.is-hovered,html.theme--documenter-dark .content kbd.button.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-dark.is-inverted[disabled],html.theme--documenter-dark .content kbd.button.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted,fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-loading::after,html.theme--documenter-dark .content kbd.button.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-dark.is-outlined,html.theme--documenter-dark .content kbd.button.is-outlined{background-color:transparent;border-color:#282f2f;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-outlined:hover,html.theme--documenter-dark .content kbd.button.is-outlined:hover,html.theme--documenter-dark .button.is-dark.is-outlined.is-hovered,html.theme--documenter-dark .content kbd.button.is-outlined.is-hovered,html.theme--documenter-dark .button.is-dark.is-outlined:focus,html.theme--documenter-dark .content kbd.button.is-outlined:focus,html.theme--documenter-dark .button.is-dark.is-outlined.is-focused,html.theme--documenter-dark .content kbd.button.is-outlined.is-focused{background-color:#282f2f;border-color:#282f2f;color:#fff}html.theme--documenter-dark .button.is-dark.is-outlined.is-loading::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:hover::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:focus::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-dark.is-outlined[disabled],html.theme--documenter-dark .content kbd.button.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-outlined,fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-outlined{background-color:transparent;border-color:#282f2f;box-shadow:none;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:hover,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:focus,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-focused,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-focused{background-color:#fff;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined[disabled],html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined,fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-primary,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink{background-color:#375a7f;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary:hover,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-hovered.docs-sourcelink{background-color:#335476;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary:focus,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:focus,html.theme--documenter-dark .button.is-primary.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-focused.docs-sourcelink{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary:focus:not(:active),html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:focus:not(:active),html.theme--documenter-dark .button.is-primary.is-focused:not(:active),html.theme--documenter-dark .docstring>section>a.button.is-focused.docs-sourcelink:not(:active){box-shadow:0 0 0 0.125em rgba(55,90,127,0.25)}html.theme--documenter-dark .button.is-primary:active,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:active,html.theme--documenter-dark .button.is-primary.is-active,html.theme--documenter-dark .docstring>section>a.button.is-active.docs-sourcelink{background-color:#2f4d6d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary[disabled],html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink{background-color:#375a7f;border-color:#375a7f;box-shadow:none}html.theme--documenter-dark .button.is-primary.is-inverted,html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-inverted:hover,html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-inverted.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-hovered.docs-sourcelink{background-color:#f2f2f2}html.theme--documenter-dark .button.is-primary.is-inverted[disabled],html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;border-color:transparent;box-shadow:none;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-loading::after,html.theme--documenter-dark .docstring>section>a.button.is-loading.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-primary.is-outlined,html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#375a7f;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-outlined:hover,html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-outlined.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-hovered.docs-sourcelink,html.theme--documenter-dark .button.is-primary.is-outlined:focus,html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink:focus,html.theme--documenter-dark .button.is-primary.is-outlined.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-focused.docs-sourcelink{background-color:#375a7f;border-color:#375a7f;color:#fff}html.theme--documenter-dark .button.is-primary.is-outlined.is-loading::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink::after{border-color:transparent transparent #375a7f #375a7f !important}html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:hover::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:hover::after,html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after,html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:focus::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:focus::after,html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-primary.is-outlined[disabled],html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-outlined,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#375a7f;box-shadow:none;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:hover,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:focus,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:focus,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-focused.docs-sourcelink{background-color:#fff;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #375a7f #375a7f !important}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined[disabled],html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-primary.is-light,html.theme--documenter-dark .docstring>section>a.button.is-light.docs-sourcelink{background-color:#f1f5f9;color:#4d7eb2}html.theme--documenter-dark .button.is-primary.is-light:hover,html.theme--documenter-dark .docstring>section>a.button.is-light.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-light.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-light.is-hovered.docs-sourcelink{background-color:#e8eef5;border-color:transparent;color:#4d7eb2}html.theme--documenter-dark .button.is-primary.is-light:active,html.theme--documenter-dark .docstring>section>a.button.is-light.docs-sourcelink:active,html.theme--documenter-dark .button.is-primary.is-light.is-active,html.theme--documenter-dark .docstring>section>a.button.is-light.is-active.docs-sourcelink{background-color:#dfe8f1;border-color:transparent;color:#4d7eb2}html.theme--documenter-dark .button.is-link{background-color:#1abc9c;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link:hover,html.theme--documenter-dark .button.is-link.is-hovered{background-color:#18b193;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link:focus,html.theme--documenter-dark .button.is-link.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link:focus:not(:active),html.theme--documenter-dark .button.is-link.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .button.is-link:active,html.theme--documenter-dark .button.is-link.is-active{background-color:#17a689;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link{background-color:#1abc9c;border-color:#1abc9c;box-shadow:none}html.theme--documenter-dark .button.is-link.is-inverted{background-color:#fff;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-inverted:hover,html.theme--documenter-dark .button.is-link.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-link.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-link.is-outlined{background-color:transparent;border-color:#1abc9c;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-outlined:hover,html.theme--documenter-dark .button.is-link.is-outlined.is-hovered,html.theme--documenter-dark .button.is-link.is-outlined:focus,html.theme--documenter-dark .button.is-link.is-outlined.is-focused{background-color:#1abc9c;border-color:#1abc9c;color:#fff}html.theme--documenter-dark .button.is-link.is-outlined.is-loading::after{border-color:transparent transparent #1abc9c #1abc9c !important}html.theme--documenter-dark .button.is-link.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-link.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-link.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link.is-outlined{background-color:transparent;border-color:#1abc9c;box-shadow:none;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-focused{background-color:#fff;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #1abc9c #1abc9c !important}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-link.is-light{background-color:#edfdf9;color:#15987e}html.theme--documenter-dark .button.is-link.is-light:hover,html.theme--documenter-dark .button.is-link.is-light.is-hovered{background-color:#e2fbf6;border-color:transparent;color:#15987e}html.theme--documenter-dark .button.is-link.is-light:active,html.theme--documenter-dark .button.is-link.is-light.is-active{background-color:#d7f9f3;border-color:transparent;color:#15987e}html.theme--documenter-dark .button.is-info{background-color:#024c7d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info:hover,html.theme--documenter-dark .button.is-info.is-hovered{background-color:#024470;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info:focus,html.theme--documenter-dark .button.is-info.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info:focus:not(:active),html.theme--documenter-dark .button.is-info.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(2,76,125,0.25)}html.theme--documenter-dark .button.is-info:active,html.theme--documenter-dark .button.is-info.is-active{background-color:#023d64;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info{background-color:#024c7d;border-color:#024c7d;box-shadow:none}html.theme--documenter-dark .button.is-info.is-inverted{background-color:#fff;color:#024c7d}html.theme--documenter-dark .button.is-info.is-inverted:hover,html.theme--documenter-dark .button.is-info.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-info.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#024c7d}html.theme--documenter-dark .button.is-info.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-info.is-outlined{background-color:transparent;border-color:#024c7d;color:#024c7d}html.theme--documenter-dark .button.is-info.is-outlined:hover,html.theme--documenter-dark .button.is-info.is-outlined.is-hovered,html.theme--documenter-dark .button.is-info.is-outlined:focus,html.theme--documenter-dark .button.is-info.is-outlined.is-focused{background-color:#024c7d;border-color:#024c7d;color:#fff}html.theme--documenter-dark .button.is-info.is-outlined.is-loading::after{border-color:transparent transparent #024c7d #024c7d !important}html.theme--documenter-dark .button.is-info.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-info.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-info.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info.is-outlined{background-color:transparent;border-color:#024c7d;box-shadow:none;color:#024c7d}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-focused{background-color:#fff;color:#024c7d}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #024c7d #024c7d !important}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-info.is-light{background-color:#ebf7ff;color:#0e9dfb}html.theme--documenter-dark .button.is-info.is-light:hover,html.theme--documenter-dark .button.is-info.is-light.is-hovered{background-color:#def2fe;border-color:transparent;color:#0e9dfb}html.theme--documenter-dark .button.is-info.is-light:active,html.theme--documenter-dark .button.is-info.is-light.is-active{background-color:#d2edfe;border-color:transparent;color:#0e9dfb}html.theme--documenter-dark .button.is-success{background-color:#008438;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success:hover,html.theme--documenter-dark .button.is-success.is-hovered{background-color:#073;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success:focus,html.theme--documenter-dark .button.is-success.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success:focus:not(:active),html.theme--documenter-dark .button.is-success.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(0,132,56,0.25)}html.theme--documenter-dark .button.is-success:active,html.theme--documenter-dark .button.is-success.is-active{background-color:#006b2d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success{background-color:#008438;border-color:#008438;box-shadow:none}html.theme--documenter-dark .button.is-success.is-inverted{background-color:#fff;color:#008438}html.theme--documenter-dark .button.is-success.is-inverted:hover,html.theme--documenter-dark .button.is-success.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-success.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#008438}html.theme--documenter-dark .button.is-success.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-success.is-outlined{background-color:transparent;border-color:#008438;color:#008438}html.theme--documenter-dark .button.is-success.is-outlined:hover,html.theme--documenter-dark .button.is-success.is-outlined.is-hovered,html.theme--documenter-dark .button.is-success.is-outlined:focus,html.theme--documenter-dark .button.is-success.is-outlined.is-focused{background-color:#008438;border-color:#008438;color:#fff}html.theme--documenter-dark .button.is-success.is-outlined.is-loading::after{border-color:transparent transparent #008438 #008438 !important}html.theme--documenter-dark .button.is-success.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-success.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-success.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success.is-outlined{background-color:transparent;border-color:#008438;box-shadow:none;color:#008438}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-focused{background-color:#fff;color:#008438}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #008438 #008438 !important}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-success.is-light{background-color:#ebfff3;color:#00eb64}html.theme--documenter-dark .button.is-success.is-light:hover,html.theme--documenter-dark .button.is-success.is-light.is-hovered{background-color:#deffec;border-color:transparent;color:#00eb64}html.theme--documenter-dark .button.is-success.is-light:active,html.theme--documenter-dark .button.is-success.is-light.is-active{background-color:#d1ffe5;border-color:transparent;color:#00eb64}html.theme--documenter-dark .button.is-warning{background-color:#ad8100;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning:hover,html.theme--documenter-dark .button.is-warning.is-hovered{background-color:#a07700;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning:focus,html.theme--documenter-dark .button.is-warning.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning:focus:not(:active),html.theme--documenter-dark .button.is-warning.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(173,129,0,0.25)}html.theme--documenter-dark .button.is-warning:active,html.theme--documenter-dark .button.is-warning.is-active{background-color:#946e00;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning{background-color:#ad8100;border-color:#ad8100;box-shadow:none}html.theme--documenter-dark .button.is-warning.is-inverted{background-color:#fff;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-inverted:hover,html.theme--documenter-dark .button.is-warning.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-warning.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-warning.is-outlined{background-color:transparent;border-color:#ad8100;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-outlined:hover,html.theme--documenter-dark .button.is-warning.is-outlined.is-hovered,html.theme--documenter-dark .button.is-warning.is-outlined:focus,html.theme--documenter-dark .button.is-warning.is-outlined.is-focused{background-color:#ad8100;border-color:#ad8100;color:#fff}html.theme--documenter-dark .button.is-warning.is-outlined.is-loading::after{border-color:transparent transparent #ad8100 #ad8100 !important}html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-warning.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-outlined{background-color:transparent;border-color:#ad8100;box-shadow:none;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-focused{background-color:#fff;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ad8100 #ad8100 !important}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-warning.is-light{background-color:#fffaeb;color:#d19c00}html.theme--documenter-dark .button.is-warning.is-light:hover,html.theme--documenter-dark .button.is-warning.is-light.is-hovered{background-color:#fff7de;border-color:transparent;color:#d19c00}html.theme--documenter-dark .button.is-warning.is-light:active,html.theme--documenter-dark .button.is-warning.is-light.is-active{background-color:#fff3d1;border-color:transparent;color:#d19c00}html.theme--documenter-dark .button.is-danger{background-color:#9e1b0d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger:hover,html.theme--documenter-dark .button.is-danger.is-hovered{background-color:#92190c;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger:focus,html.theme--documenter-dark .button.is-danger.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger:focus:not(:active),html.theme--documenter-dark .button.is-danger.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(158,27,13,0.25)}html.theme--documenter-dark .button.is-danger:active,html.theme--documenter-dark .button.is-danger.is-active{background-color:#86170b;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger{background-color:#9e1b0d;border-color:#9e1b0d;box-shadow:none}html.theme--documenter-dark .button.is-danger.is-inverted{background-color:#fff;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-inverted:hover,html.theme--documenter-dark .button.is-danger.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-danger.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-danger.is-outlined{background-color:transparent;border-color:#9e1b0d;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-outlined:hover,html.theme--documenter-dark .button.is-danger.is-outlined.is-hovered,html.theme--documenter-dark .button.is-danger.is-outlined:focus,html.theme--documenter-dark .button.is-danger.is-outlined.is-focused{background-color:#9e1b0d;border-color:#9e1b0d;color:#fff}html.theme--documenter-dark .button.is-danger.is-outlined.is-loading::after{border-color:transparent transparent #9e1b0d #9e1b0d !important}html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-danger.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-outlined{background-color:transparent;border-color:#9e1b0d;box-shadow:none;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-focused{background-color:#fff;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #9e1b0d #9e1b0d !important}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-danger.is-light{background-color:#fdeeec;color:#ec311d}html.theme--documenter-dark .button.is-danger.is-light:hover,html.theme--documenter-dark .button.is-danger.is-light.is-hovered{background-color:#fce3e0;border-color:transparent;color:#ec311d}html.theme--documenter-dark .button.is-danger.is-light:active,html.theme--documenter-dark .button.is-danger.is-light.is-active{background-color:#fcd8d5;border-color:transparent;color:#ec311d}html.theme--documenter-dark .button.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.button{font-size:.75rem}html.theme--documenter-dark .button.is-small:not(.is-rounded),html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.button:not(.is-rounded){border-radius:3px}html.theme--documenter-dark .button.is-normal{font-size:1rem}html.theme--documenter-dark .button.is-medium{font-size:1.25rem}html.theme--documenter-dark .button.is-large{font-size:1.5rem}html.theme--documenter-dark .button[disabled],fieldset[disabled] html.theme--documenter-dark .button{background-color:#8c9b9d;border-color:#5e6d6f;box-shadow:none;opacity:.5}html.theme--documenter-dark .button.is-fullwidth{display:flex;width:100%}html.theme--documenter-dark .button.is-loading{color:transparent !important;pointer-events:none}html.theme--documenter-dark .button.is-loading::after{position:absolute;left:calc(50% - (1em * 0.5));top:calc(50% - (1em * 0.5));position:absolute !important}html.theme--documenter-dark .button.is-static{background-color:#282f2f;border-color:#5e6d6f;color:#dbdee0;box-shadow:none;pointer-events:none}html.theme--documenter-dark .button.is-rounded,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.button{border-radius:9999px;padding-left:calc(1em + 0.25em);padding-right:calc(1em + 0.25em)}html.theme--documenter-dark .buttons{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--documenter-dark .buttons .button{margin-bottom:0.5rem}html.theme--documenter-dark .buttons .button:not(:last-child):not(.is-fullwidth){margin-right:.5rem}html.theme--documenter-dark .buttons:last-child{margin-bottom:-0.5rem}html.theme--documenter-dark .buttons:not(:last-child){margin-bottom:1rem}html.theme--documenter-dark .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large){font-size:.75rem}html.theme--documenter-dark .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large):not(.is-rounded){border-radius:3px}html.theme--documenter-dark .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large){font-size:1.25rem}html.theme--documenter-dark .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium){font-size:1.5rem}html.theme--documenter-dark .buttons.has-addons .button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .buttons.has-addons .button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}html.theme--documenter-dark .buttons.has-addons .button:last-child{margin-right:0}html.theme--documenter-dark .buttons.has-addons .button:hover,html.theme--documenter-dark .buttons.has-addons .button.is-hovered{z-index:2}html.theme--documenter-dark .buttons.has-addons .button:focus,html.theme--documenter-dark .buttons.has-addons .button.is-focused,html.theme--documenter-dark .buttons.has-addons .button:active,html.theme--documenter-dark .buttons.has-addons .button.is-active,html.theme--documenter-dark .buttons.has-addons .button.is-selected{z-index:3}html.theme--documenter-dark .buttons.has-addons .button:focus:hover,html.theme--documenter-dark .buttons.has-addons .button.is-focused:hover,html.theme--documenter-dark .buttons.has-addons .button:active:hover,html.theme--documenter-dark .buttons.has-addons .button.is-active:hover,html.theme--documenter-dark .buttons.has-addons .button.is-selected:hover{z-index:4}html.theme--documenter-dark .buttons.has-addons .button.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .buttons.is-centered{justify-content:center}html.theme--documenter-dark .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}html.theme--documenter-dark .buttons.is-right{justify-content:flex-end}html.theme--documenter-dark .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}@media screen and (max-width: 768px){html.theme--documenter-dark .button.is-responsive.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-responsive{font-size:.5625rem}html.theme--documenter-dark .button.is-responsive,html.theme--documenter-dark .button.is-responsive.is-normal{font-size:.65625rem}html.theme--documenter-dark .button.is-responsive.is-medium{font-size:.75rem}html.theme--documenter-dark .button.is-responsive.is-large{font-size:1rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .button.is-responsive.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-responsive{font-size:.65625rem}html.theme--documenter-dark .button.is-responsive,html.theme--documenter-dark .button.is-responsive.is-normal{font-size:.75rem}html.theme--documenter-dark .button.is-responsive.is-medium{font-size:1rem}html.theme--documenter-dark .button.is-responsive.is-large{font-size:1.25rem}}html.theme--documenter-dark .container{flex-grow:1;margin:0 auto;position:relative;width:auto}html.theme--documenter-dark .container.is-fluid{max-width:none !important;padding-left:32px;padding-right:32px;width:100%}@media screen and (min-width: 1056px){html.theme--documenter-dark .container{max-width:992px}}@media screen and (max-width: 1215px){html.theme--documenter-dark .container.is-widescreen:not(.is-max-desktop){max-width:1152px}}@media screen and (max-width: 1407px){html.theme--documenter-dark .container.is-fullhd:not(.is-max-desktop):not(.is-max-widescreen){max-width:1344px}}@media screen and (min-width: 1216px){html.theme--documenter-dark .container:not(.is-max-desktop){max-width:1152px}}@media screen and (min-width: 1408px){html.theme--documenter-dark .container:not(.is-max-desktop):not(.is-max-widescreen){max-width:1344px}}html.theme--documenter-dark .content li+li{margin-top:0.25em}html.theme--documenter-dark .content p:not(:last-child),html.theme--documenter-dark .content dl:not(:last-child),html.theme--documenter-dark .content ol:not(:last-child),html.theme--documenter-dark .content ul:not(:last-child),html.theme--documenter-dark .content blockquote:not(:last-child),html.theme--documenter-dark .content pre:not(:last-child),html.theme--documenter-dark .content table:not(:last-child){margin-bottom:1em}html.theme--documenter-dark .content h1,html.theme--documenter-dark .content h2,html.theme--documenter-dark .content h3,html.theme--documenter-dark .content h4,html.theme--documenter-dark .content h5,html.theme--documenter-dark .content h6{color:#f2f2f2;font-weight:600;line-height:1.125}html.theme--documenter-dark .content h1{font-size:2em;margin-bottom:0.5em}html.theme--documenter-dark .content h1:not(:first-child){margin-top:1em}html.theme--documenter-dark .content h2{font-size:1.75em;margin-bottom:0.5714em}html.theme--documenter-dark .content h2:not(:first-child){margin-top:1.1428em}html.theme--documenter-dark .content h3{font-size:1.5em;margin-bottom:0.6666em}html.theme--documenter-dark .content h3:not(:first-child){margin-top:1.3333em}html.theme--documenter-dark .content h4{font-size:1.25em;margin-bottom:0.8em}html.theme--documenter-dark .content h5{font-size:1.125em;margin-bottom:0.8888em}html.theme--documenter-dark .content h6{font-size:1em;margin-bottom:1em}html.theme--documenter-dark .content blockquote{background-color:#282f2f;border-left:5px solid #5e6d6f;padding:1.25em 1.5em}html.theme--documenter-dark .content ol{list-style-position:outside;margin-left:2em;margin-top:1em}html.theme--documenter-dark .content ol:not([type]){list-style-type:decimal}html.theme--documenter-dark .content ol.is-lower-alpha:not([type]){list-style-type:lower-alpha}html.theme--documenter-dark .content ol.is-lower-roman:not([type]){list-style-type:lower-roman}html.theme--documenter-dark .content ol.is-upper-alpha:not([type]){list-style-type:upper-alpha}html.theme--documenter-dark .content ol.is-upper-roman:not([type]){list-style-type:upper-roman}html.theme--documenter-dark .content ul{list-style:disc outside;margin-left:2em;margin-top:1em}html.theme--documenter-dark .content ul ul{list-style-type:circle;margin-top:0.5em}html.theme--documenter-dark .content ul ul ul{list-style-type:square}html.theme--documenter-dark .content dd{margin-left:2em}html.theme--documenter-dark .content figure{margin-left:2em;margin-right:2em;text-align:center}html.theme--documenter-dark .content figure:not(:first-child){margin-top:2em}html.theme--documenter-dark .content figure:not(:last-child){margin-bottom:2em}html.theme--documenter-dark .content figure img{display:inline-block}html.theme--documenter-dark .content figure figcaption{font-style:italic}html.theme--documenter-dark .content pre{-webkit-overflow-scrolling:touch;overflow-x:auto;padding:0;white-space:pre;word-wrap:normal}html.theme--documenter-dark .content sup,html.theme--documenter-dark .content sub{font-size:75%}html.theme--documenter-dark .content table{width:100%}html.theme--documenter-dark .content table td,html.theme--documenter-dark .content table th{border:1px solid #5e6d6f;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}html.theme--documenter-dark .content table th{color:#f2f2f2}html.theme--documenter-dark .content table th:not([align]){text-align:inherit}html.theme--documenter-dark .content table thead td,html.theme--documenter-dark .content table thead th{border-width:0 0 2px;color:#f2f2f2}html.theme--documenter-dark .content table tfoot td,html.theme--documenter-dark .content table tfoot th{border-width:2px 0 0;color:#f2f2f2}html.theme--documenter-dark .content table tbody tr:last-child td,html.theme--documenter-dark .content table tbody tr:last-child th{border-bottom-width:0}html.theme--documenter-dark .content .tabs li+li{margin-top:0}html.theme--documenter-dark .content.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.content{font-size:.75rem}html.theme--documenter-dark .content.is-normal{font-size:1rem}html.theme--documenter-dark .content.is-medium{font-size:1.25rem}html.theme--documenter-dark .content.is-large{font-size:1.5rem}html.theme--documenter-dark .icon{align-items:center;display:inline-flex;justify-content:center;height:1.5rem;width:1.5rem}html.theme--documenter-dark .icon.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.icon{height:1rem;width:1rem}html.theme--documenter-dark .icon.is-medium{height:2rem;width:2rem}html.theme--documenter-dark .icon.is-large{height:3rem;width:3rem}html.theme--documenter-dark .icon-text{align-items:flex-start;color:inherit;display:inline-flex;flex-wrap:wrap;line-height:1.5rem;vertical-align:top}html.theme--documenter-dark .icon-text .icon{flex-grow:0;flex-shrink:0}html.theme--documenter-dark .icon-text .icon:not(:last-child){margin-right:.25em}html.theme--documenter-dark .icon-text .icon:not(:first-child){margin-left:.25em}html.theme--documenter-dark div.icon-text{display:flex}html.theme--documenter-dark .image,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img{display:block;position:relative}html.theme--documenter-dark .image img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img img{display:block;height:auto;width:100%}html.theme--documenter-dark .image img.is-rounded,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img img.is-rounded{border-radius:9999px}html.theme--documenter-dark .image.is-fullwidth,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-fullwidth{width:100%}html.theme--documenter-dark .image.is-square img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square img,html.theme--documenter-dark .image.is-square .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,html.theme--documenter-dark .image.is-1by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 img,html.theme--documenter-dark .image.is-1by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,html.theme--documenter-dark .image.is-5by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 img,html.theme--documenter-dark .image.is-5by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,html.theme--documenter-dark .image.is-4by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 img,html.theme--documenter-dark .image.is-4by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,html.theme--documenter-dark .image.is-3by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 img,html.theme--documenter-dark .image.is-3by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,html.theme--documenter-dark .image.is-5by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 img,html.theme--documenter-dark .image.is-5by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,html.theme--documenter-dark .image.is-16by9 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 img,html.theme--documenter-dark .image.is-16by9 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,html.theme--documenter-dark .image.is-2by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 img,html.theme--documenter-dark .image.is-2by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,html.theme--documenter-dark .image.is-3by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 img,html.theme--documenter-dark .image.is-3by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,html.theme--documenter-dark .image.is-4by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 img,html.theme--documenter-dark .image.is-4by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,html.theme--documenter-dark .image.is-3by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 img,html.theme--documenter-dark .image.is-3by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,html.theme--documenter-dark .image.is-2by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 img,html.theme--documenter-dark .image.is-2by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,html.theme--documenter-dark .image.is-3by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 img,html.theme--documenter-dark .image.is-3by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,html.theme--documenter-dark .image.is-9by16 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 img,html.theme--documenter-dark .image.is-9by16 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,html.theme--documenter-dark .image.is-1by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 img,html.theme--documenter-dark .image.is-1by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,html.theme--documenter-dark .image.is-1by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 img,html.theme--documenter-dark .image.is-1by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio{height:100%;width:100%}html.theme--documenter-dark .image.is-square,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square,html.theme--documenter-dark .image.is-1by1,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1{padding-top:100%}html.theme--documenter-dark .image.is-5by4,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4{padding-top:80%}html.theme--documenter-dark .image.is-4by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3{padding-top:75%}html.theme--documenter-dark .image.is-3by2,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2{padding-top:66.6666%}html.theme--documenter-dark .image.is-5by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3{padding-top:60%}html.theme--documenter-dark .image.is-16by9,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9{padding-top:56.25%}html.theme--documenter-dark .image.is-2by1,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1{padding-top:50%}html.theme--documenter-dark .image.is-3by1,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1{padding-top:33.3333%}html.theme--documenter-dark .image.is-4by5,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5{padding-top:125%}html.theme--documenter-dark .image.is-3by4,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4{padding-top:133.3333%}html.theme--documenter-dark .image.is-2by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3{padding-top:150%}html.theme--documenter-dark .image.is-3by5,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5{padding-top:166.6666%}html.theme--documenter-dark .image.is-9by16,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16{padding-top:177.7777%}html.theme--documenter-dark .image.is-1by2,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2{padding-top:200%}html.theme--documenter-dark .image.is-1by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3{padding-top:300%}html.theme--documenter-dark .image.is-16x16,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16x16{height:16px;width:16px}html.theme--documenter-dark .image.is-24x24,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-24x24{height:24px;width:24px}html.theme--documenter-dark .image.is-32x32,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-32x32{height:32px;width:32px}html.theme--documenter-dark .image.is-48x48,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-48x48{height:48px;width:48px}html.theme--documenter-dark .image.is-64x64,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-64x64{height:64px;width:64px}html.theme--documenter-dark .image.is-96x96,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-96x96{height:96px;width:96px}html.theme--documenter-dark .image.is-128x128,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-128x128{height:128px;width:128px}html.theme--documenter-dark .notification{background-color:#282f2f;border-radius:.4em;position:relative;padding:1.25rem 2.5rem 1.25rem 1.5rem}html.theme--documenter-dark .notification a:not(.button):not(.dropdown-item){color:currentColor;text-decoration:underline}html.theme--documenter-dark .notification strong{color:currentColor}html.theme--documenter-dark .notification code,html.theme--documenter-dark .notification pre{background:#fff}html.theme--documenter-dark .notification pre code{background:transparent}html.theme--documenter-dark .notification>.delete{right:.5rem;position:absolute;top:0.5rem}html.theme--documenter-dark .notification .title,html.theme--documenter-dark .notification .subtitle,html.theme--documenter-dark .notification .content{color:currentColor}html.theme--documenter-dark .notification.is-white{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .notification.is-black{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .notification.is-light{background-color:#ecf0f1;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .notification.is-dark,html.theme--documenter-dark .content kbd.notification{background-color:#282f2f;color:#fff}html.theme--documenter-dark .notification.is-primary,html.theme--documenter-dark .docstring>section>a.notification.docs-sourcelink{background-color:#375a7f;color:#fff}html.theme--documenter-dark .notification.is-primary.is-light,html.theme--documenter-dark .docstring>section>a.notification.is-light.docs-sourcelink{background-color:#f1f5f9;color:#4d7eb2}html.theme--documenter-dark .notification.is-link{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .notification.is-link.is-light{background-color:#edfdf9;color:#15987e}html.theme--documenter-dark .notification.is-info{background-color:#024c7d;color:#fff}html.theme--documenter-dark .notification.is-info.is-light{background-color:#ebf7ff;color:#0e9dfb}html.theme--documenter-dark .notification.is-success{background-color:#008438;color:#fff}html.theme--documenter-dark .notification.is-success.is-light{background-color:#ebfff3;color:#00eb64}html.theme--documenter-dark .notification.is-warning{background-color:#ad8100;color:#fff}html.theme--documenter-dark .notification.is-warning.is-light{background-color:#fffaeb;color:#d19c00}html.theme--documenter-dark .notification.is-danger{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .notification.is-danger.is-light{background-color:#fdeeec;color:#ec311d}html.theme--documenter-dark .progress{-moz-appearance:none;-webkit-appearance:none;border:none;border-radius:9999px;display:block;height:1rem;overflow:hidden;padding:0;width:100%}html.theme--documenter-dark .progress::-webkit-progress-bar{background-color:#343c3d}html.theme--documenter-dark .progress::-webkit-progress-value{background-color:#dbdee0}html.theme--documenter-dark .progress::-moz-progress-bar{background-color:#dbdee0}html.theme--documenter-dark .progress::-ms-fill{background-color:#dbdee0;border:none}html.theme--documenter-dark .progress.is-white::-webkit-progress-value{background-color:#fff}html.theme--documenter-dark .progress.is-white::-moz-progress-bar{background-color:#fff}html.theme--documenter-dark .progress.is-white::-ms-fill{background-color:#fff}html.theme--documenter-dark .progress.is-white:indeterminate{background-image:linear-gradient(to right, #fff 30%, #343c3d 30%)}html.theme--documenter-dark .progress.is-black::-webkit-progress-value{background-color:#0a0a0a}html.theme--documenter-dark .progress.is-black::-moz-progress-bar{background-color:#0a0a0a}html.theme--documenter-dark .progress.is-black::-ms-fill{background-color:#0a0a0a}html.theme--documenter-dark .progress.is-black:indeterminate{background-image:linear-gradient(to right, #0a0a0a 30%, #343c3d 30%)}html.theme--documenter-dark .progress.is-light::-webkit-progress-value{background-color:#ecf0f1}html.theme--documenter-dark .progress.is-light::-moz-progress-bar{background-color:#ecf0f1}html.theme--documenter-dark .progress.is-light::-ms-fill{background-color:#ecf0f1}html.theme--documenter-dark .progress.is-light:indeterminate{background-image:linear-gradient(to right, #ecf0f1 30%, #343c3d 30%)}html.theme--documenter-dark .progress.is-dark::-webkit-progress-value,html.theme--documenter-dark .content kbd.progress::-webkit-progress-value{background-color:#282f2f}html.theme--documenter-dark .progress.is-dark::-moz-progress-bar,html.theme--documenter-dark .content kbd.progress::-moz-progress-bar{background-color:#282f2f}html.theme--documenter-dark .progress.is-dark::-ms-fill,html.theme--documenter-dark .content kbd.progress::-ms-fill{background-color:#282f2f}html.theme--documenter-dark .progress.is-dark:indeterminate,html.theme--documenter-dark .content kbd.progress:indeterminate{background-image:linear-gradient(to right, #282f2f 30%, #343c3d 30%)}html.theme--documenter-dark .progress.is-primary::-webkit-progress-value,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink::-webkit-progress-value{background-color:#375a7f}html.theme--documenter-dark .progress.is-primary::-moz-progress-bar,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink::-moz-progress-bar{background-color:#375a7f}html.theme--documenter-dark .progress.is-primary::-ms-fill,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink::-ms-fill{background-color:#375a7f}html.theme--documenter-dark .progress.is-primary:indeterminate,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink:indeterminate{background-image:linear-gradient(to right, #375a7f 30%, #343c3d 30%)}html.theme--documenter-dark .progress.is-link::-webkit-progress-value{background-color:#1abc9c}html.theme--documenter-dark .progress.is-link::-moz-progress-bar{background-color:#1abc9c}html.theme--documenter-dark .progress.is-link::-ms-fill{background-color:#1abc9c}html.theme--documenter-dark .progress.is-link:indeterminate{background-image:linear-gradient(to right, #1abc9c 30%, #343c3d 30%)}html.theme--documenter-dark .progress.is-info::-webkit-progress-value{background-color:#024c7d}html.theme--documenter-dark .progress.is-info::-moz-progress-bar{background-color:#024c7d}html.theme--documenter-dark .progress.is-info::-ms-fill{background-color:#024c7d}html.theme--documenter-dark .progress.is-info:indeterminate{background-image:linear-gradient(to right, #024c7d 30%, #343c3d 30%)}html.theme--documenter-dark .progress.is-success::-webkit-progress-value{background-color:#008438}html.theme--documenter-dark .progress.is-success::-moz-progress-bar{background-color:#008438}html.theme--documenter-dark .progress.is-success::-ms-fill{background-color:#008438}html.theme--documenter-dark .progress.is-success:indeterminate{background-image:linear-gradient(to right, #008438 30%, #343c3d 30%)}html.theme--documenter-dark .progress.is-warning::-webkit-progress-value{background-color:#ad8100}html.theme--documenter-dark .progress.is-warning::-moz-progress-bar{background-color:#ad8100}html.theme--documenter-dark .progress.is-warning::-ms-fill{background-color:#ad8100}html.theme--documenter-dark .progress.is-warning:indeterminate{background-image:linear-gradient(to right, #ad8100 30%, #343c3d 30%)}html.theme--documenter-dark .progress.is-danger::-webkit-progress-value{background-color:#9e1b0d}html.theme--documenter-dark .progress.is-danger::-moz-progress-bar{background-color:#9e1b0d}html.theme--documenter-dark .progress.is-danger::-ms-fill{background-color:#9e1b0d}html.theme--documenter-dark .progress.is-danger:indeterminate{background-image:linear-gradient(to right, #9e1b0d 30%, #343c3d 30%)}html.theme--documenter-dark .progress:indeterminate{animation-duration:1.5s;animation-iteration-count:infinite;animation-name:moveIndeterminate;animation-timing-function:linear;background-color:#343c3d;background-image:linear-gradient(to right, #fff 30%, #343c3d 30%);background-position:top left;background-repeat:no-repeat;background-size:150% 150%}html.theme--documenter-dark .progress:indeterminate::-webkit-progress-bar{background-color:transparent}html.theme--documenter-dark .progress:indeterminate::-moz-progress-bar{background-color:transparent}html.theme--documenter-dark .progress:indeterminate::-ms-fill{animation-name:none}html.theme--documenter-dark .progress.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.progress{height:.75rem}html.theme--documenter-dark .progress.is-medium{height:1.25rem}html.theme--documenter-dark .progress.is-large{height:1.5rem}@keyframes moveIndeterminate{from{background-position:200% 0}to{background-position:-200% 0}}html.theme--documenter-dark .table{background-color:#343c3d;color:#fff}html.theme--documenter-dark .table td,html.theme--documenter-dark .table th{border:1px solid #5e6d6f;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}html.theme--documenter-dark .table td.is-white,html.theme--documenter-dark .table th.is-white{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--documenter-dark .table td.is-black,html.theme--documenter-dark .table th.is-black{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--documenter-dark .table td.is-light,html.theme--documenter-dark .table th.is-light{background-color:#ecf0f1;border-color:#ecf0f1;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .table td.is-dark,html.theme--documenter-dark .table th.is-dark{background-color:#282f2f;border-color:#282f2f;color:#fff}html.theme--documenter-dark .table td.is-primary,html.theme--documenter-dark .table th.is-primary{background-color:#375a7f;border-color:#375a7f;color:#fff}html.theme--documenter-dark .table td.is-link,html.theme--documenter-dark .table th.is-link{background-color:#1abc9c;border-color:#1abc9c;color:#fff}html.theme--documenter-dark .table td.is-info,html.theme--documenter-dark .table th.is-info{background-color:#024c7d;border-color:#024c7d;color:#fff}html.theme--documenter-dark .table td.is-success,html.theme--documenter-dark .table th.is-success{background-color:#008438;border-color:#008438;color:#fff}html.theme--documenter-dark .table td.is-warning,html.theme--documenter-dark .table th.is-warning{background-color:#ad8100;border-color:#ad8100;color:#fff}html.theme--documenter-dark .table td.is-danger,html.theme--documenter-dark .table th.is-danger{background-color:#9e1b0d;border-color:#9e1b0d;color:#fff}html.theme--documenter-dark .table td.is-narrow,html.theme--documenter-dark .table th.is-narrow{white-space:nowrap;width:1%}html.theme--documenter-dark .table td.is-selected,html.theme--documenter-dark .table th.is-selected{background-color:#375a7f;color:#fff}html.theme--documenter-dark .table td.is-selected a,html.theme--documenter-dark .table td.is-selected strong,html.theme--documenter-dark .table th.is-selected a,html.theme--documenter-dark .table th.is-selected strong{color:currentColor}html.theme--documenter-dark .table td.is-vcentered,html.theme--documenter-dark .table th.is-vcentered{vertical-align:middle}html.theme--documenter-dark .table th{color:#f2f2f2}html.theme--documenter-dark .table th:not([align]){text-align:left}html.theme--documenter-dark .table tr.is-selected{background-color:#375a7f;color:#fff}html.theme--documenter-dark .table tr.is-selected a,html.theme--documenter-dark .table tr.is-selected strong{color:currentColor}html.theme--documenter-dark .table tr.is-selected td,html.theme--documenter-dark .table tr.is-selected th{border-color:#fff;color:currentColor}html.theme--documenter-dark .table thead{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .table thead td,html.theme--documenter-dark .table thead th{border-width:0 0 2px;color:#f2f2f2}html.theme--documenter-dark .table tfoot{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .table tfoot td,html.theme--documenter-dark .table tfoot th{border-width:2px 0 0;color:#f2f2f2}html.theme--documenter-dark .table tbody{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .table tbody tr:last-child td,html.theme--documenter-dark .table tbody tr:last-child th{border-bottom-width:0}html.theme--documenter-dark .table.is-bordered td,html.theme--documenter-dark .table.is-bordered th{border-width:1px}html.theme--documenter-dark .table.is-bordered tr:last-child td,html.theme--documenter-dark .table.is-bordered tr:last-child th{border-bottom-width:1px}html.theme--documenter-dark .table.is-fullwidth{width:100%}html.theme--documenter-dark .table.is-hoverable tbody tr:not(.is-selected):hover{background-color:#282f2f}html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover{background-color:#282f2f}html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even){background-color:#2d3435}html.theme--documenter-dark .table.is-narrow td,html.theme--documenter-dark .table.is-narrow th{padding:0.25em 0.5em}html.theme--documenter-dark .table.is-striped tbody tr:not(.is-selected):nth-child(even){background-color:#282f2f}html.theme--documenter-dark .table-container{-webkit-overflow-scrolling:touch;overflow:auto;overflow-y:hidden;max-width:100%}html.theme--documenter-dark .tags{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--documenter-dark .tags .tag,html.theme--documenter-dark .tags .content kbd,html.theme--documenter-dark .content .tags kbd,html.theme--documenter-dark .tags .docstring>section>a.docs-sourcelink{margin-bottom:0.5rem}html.theme--documenter-dark .tags .tag:not(:last-child),html.theme--documenter-dark .tags .content kbd:not(:last-child),html.theme--documenter-dark .content .tags kbd:not(:last-child),html.theme--documenter-dark .tags .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:.5rem}html.theme--documenter-dark .tags:last-child{margin-bottom:-0.5rem}html.theme--documenter-dark .tags:not(:last-child){margin-bottom:1rem}html.theme--documenter-dark .tags.are-medium .tag:not(.is-normal):not(.is-large),html.theme--documenter-dark .tags.are-medium .content kbd:not(.is-normal):not(.is-large),html.theme--documenter-dark .content .tags.are-medium kbd:not(.is-normal):not(.is-large),html.theme--documenter-dark .tags.are-medium .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-large){font-size:1rem}html.theme--documenter-dark .tags.are-large .tag:not(.is-normal):not(.is-medium),html.theme--documenter-dark .tags.are-large .content kbd:not(.is-normal):not(.is-medium),html.theme--documenter-dark .content .tags.are-large kbd:not(.is-normal):not(.is-medium),html.theme--documenter-dark .tags.are-large .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-medium){font-size:1.25rem}html.theme--documenter-dark .tags.is-centered{justify-content:center}html.theme--documenter-dark .tags.is-centered .tag,html.theme--documenter-dark .tags.is-centered .content kbd,html.theme--documenter-dark .content .tags.is-centered kbd,html.theme--documenter-dark .tags.is-centered .docstring>section>a.docs-sourcelink{margin-right:0.25rem;margin-left:0.25rem}html.theme--documenter-dark .tags.is-right{justify-content:flex-end}html.theme--documenter-dark .tags.is-right .tag:not(:first-child),html.theme--documenter-dark .tags.is-right .content kbd:not(:first-child),html.theme--documenter-dark .content .tags.is-right kbd:not(:first-child),html.theme--documenter-dark .tags.is-right .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0.5rem}html.theme--documenter-dark .tags.is-right .tag:not(:last-child),html.theme--documenter-dark .tags.is-right .content kbd:not(:last-child),html.theme--documenter-dark .content .tags.is-right kbd:not(:last-child),html.theme--documenter-dark .tags.is-right .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0}html.theme--documenter-dark .tags.has-addons .tag,html.theme--documenter-dark .tags.has-addons .content kbd,html.theme--documenter-dark .content .tags.has-addons kbd,html.theme--documenter-dark .tags.has-addons .docstring>section>a.docs-sourcelink{margin-right:0}html.theme--documenter-dark .tags.has-addons .tag:not(:first-child),html.theme--documenter-dark .tags.has-addons .content kbd:not(:first-child),html.theme--documenter-dark .content .tags.has-addons kbd:not(:first-child),html.theme--documenter-dark .tags.has-addons .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0;border-top-left-radius:0;border-bottom-left-radius:0}html.theme--documenter-dark .tags.has-addons .tag:not(:last-child),html.theme--documenter-dark .tags.has-addons .content kbd:not(:last-child),html.theme--documenter-dark .content .tags.has-addons kbd:not(:last-child),html.theme--documenter-dark .tags.has-addons .docstring>section>a.docs-sourcelink:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}html.theme--documenter-dark .tag:not(body),html.theme--documenter-dark .content kbd:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body){align-items:center;background-color:#282f2f;border-radius:.4em;color:#fff;display:inline-flex;font-size:.75rem;height:2em;justify-content:center;line-height:1.5;padding-left:0.75em;padding-right:0.75em;white-space:nowrap}html.theme--documenter-dark .tag:not(body) .delete,html.theme--documenter-dark .content kbd:not(body) .delete,html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .delete{margin-left:.25rem;margin-right:-.375rem}html.theme--documenter-dark .tag.is-white:not(body),html.theme--documenter-dark .content kbd.is-white:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-white:not(body){background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .tag.is-black:not(body),html.theme--documenter-dark .content kbd.is-black:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-black:not(body){background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .tag.is-light:not(body),html.theme--documenter-dark .content kbd.is-light:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-light:not(body){background-color:#ecf0f1;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .tag.is-dark:not(body),html.theme--documenter-dark .content kbd:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-dark:not(body),html.theme--documenter-dark .content .docstring>section>kbd:not(body){background-color:#282f2f;color:#fff}html.theme--documenter-dark .tag.is-primary:not(body),html.theme--documenter-dark .content kbd.is-primary:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body){background-color:#375a7f;color:#fff}html.theme--documenter-dark .tag.is-primary.is-light:not(body),html.theme--documenter-dark .content kbd.is-primary.is-light:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-light:not(body){background-color:#f1f5f9;color:#4d7eb2}html.theme--documenter-dark .tag.is-link:not(body),html.theme--documenter-dark .content kbd.is-link:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-link:not(body){background-color:#1abc9c;color:#fff}html.theme--documenter-dark .tag.is-link.is-light:not(body),html.theme--documenter-dark .content kbd.is-link.is-light:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-link.is-light:not(body){background-color:#edfdf9;color:#15987e}html.theme--documenter-dark .tag.is-info:not(body),html.theme--documenter-dark .content kbd.is-info:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-info:not(body){background-color:#024c7d;color:#fff}html.theme--documenter-dark .tag.is-info.is-light:not(body),html.theme--documenter-dark .content kbd.is-info.is-light:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-info.is-light:not(body){background-color:#ebf7ff;color:#0e9dfb}html.theme--documenter-dark .tag.is-success:not(body),html.theme--documenter-dark .content kbd.is-success:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-success:not(body){background-color:#008438;color:#fff}html.theme--documenter-dark .tag.is-success.is-light:not(body),html.theme--documenter-dark .content kbd.is-success.is-light:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-success.is-light:not(body){background-color:#ebfff3;color:#00eb64}html.theme--documenter-dark .tag.is-warning:not(body),html.theme--documenter-dark .content kbd.is-warning:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-warning:not(body){background-color:#ad8100;color:#fff}html.theme--documenter-dark .tag.is-warning.is-light:not(body),html.theme--documenter-dark .content kbd.is-warning.is-light:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-warning.is-light:not(body){background-color:#fffaeb;color:#d19c00}html.theme--documenter-dark .tag.is-danger:not(body),html.theme--documenter-dark .content kbd.is-danger:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-danger:not(body){background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .tag.is-danger.is-light:not(body),html.theme--documenter-dark .content kbd.is-danger.is-light:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-danger.is-light:not(body){background-color:#fdeeec;color:#ec311d}html.theme--documenter-dark .tag.is-normal:not(body),html.theme--documenter-dark .content kbd.is-normal:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-normal:not(body){font-size:.75rem}html.theme--documenter-dark .tag.is-medium:not(body),html.theme--documenter-dark .content kbd.is-medium:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-medium:not(body){font-size:1rem}html.theme--documenter-dark .tag.is-large:not(body),html.theme--documenter-dark .content kbd.is-large:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-large:not(body){font-size:1.25rem}html.theme--documenter-dark .tag:not(body) .icon:first-child:not(:last-child),html.theme--documenter-dark .content kbd:not(body) .icon:first-child:not(:last-child),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .icon:first-child:not(:last-child){margin-left:-.375em;margin-right:.1875em}html.theme--documenter-dark .tag:not(body) .icon:last-child:not(:first-child),html.theme--documenter-dark .content kbd:not(body) .icon:last-child:not(:first-child),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .icon:last-child:not(:first-child){margin-left:.1875em;margin-right:-.375em}html.theme--documenter-dark .tag:not(body) .icon:first-child:last-child,html.theme--documenter-dark .content kbd:not(body) .icon:first-child:last-child,html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .icon:first-child:last-child{margin-left:-.375em;margin-right:-.375em}html.theme--documenter-dark .tag.is-delete:not(body),html.theme--documenter-dark .content kbd.is-delete:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body){margin-left:1px;padding:0;position:relative;width:2em}html.theme--documenter-dark .tag.is-delete:not(body)::before,html.theme--documenter-dark .content kbd.is-delete:not(body)::before,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::before,html.theme--documenter-dark .tag.is-delete:not(body)::after,html.theme--documenter-dark .content kbd.is-delete:not(body)::after,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::after{background-color:currentColor;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}html.theme--documenter-dark .tag.is-delete:not(body)::before,html.theme--documenter-dark .content kbd.is-delete:not(body)::before,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::before{height:1px;width:50%}html.theme--documenter-dark .tag.is-delete:not(body)::after,html.theme--documenter-dark .content kbd.is-delete:not(body)::after,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::after{height:50%;width:1px}html.theme--documenter-dark .tag.is-delete:not(body):hover,html.theme--documenter-dark .content kbd.is-delete:not(body):hover,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body):hover,html.theme--documenter-dark .tag.is-delete:not(body):focus,html.theme--documenter-dark .content kbd.is-delete:not(body):focus,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body):focus{background-color:#1d2122}html.theme--documenter-dark .tag.is-delete:not(body):active,html.theme--documenter-dark .content kbd.is-delete:not(body):active,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body):active{background-color:#111414}html.theme--documenter-dark .tag.is-rounded:not(body),html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:not(body),html.theme--documenter-dark .content kbd.is-rounded:not(body),html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search>input:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-rounded:not(body){border-radius:9999px}html.theme--documenter-dark a.tag:hover,html.theme--documenter-dark .docstring>section>a.docs-sourcelink:hover{text-decoration:underline}html.theme--documenter-dark .title,html.theme--documenter-dark .subtitle{word-break:break-word}html.theme--documenter-dark .title em,html.theme--documenter-dark .title span,html.theme--documenter-dark .subtitle em,html.theme--documenter-dark .subtitle span{font-weight:inherit}html.theme--documenter-dark .title sub,html.theme--documenter-dark .subtitle sub{font-size:.75em}html.theme--documenter-dark .title sup,html.theme--documenter-dark .subtitle sup{font-size:.75em}html.theme--documenter-dark .title .tag,html.theme--documenter-dark .title .content kbd,html.theme--documenter-dark .content .title kbd,html.theme--documenter-dark .title .docstring>section>a.docs-sourcelink,html.theme--documenter-dark .subtitle .tag,html.theme--documenter-dark .subtitle .content kbd,html.theme--documenter-dark .content .subtitle kbd,html.theme--documenter-dark .subtitle .docstring>section>a.docs-sourcelink{vertical-align:middle}html.theme--documenter-dark .title{color:#fff;font-size:2rem;font-weight:500;line-height:1.125}html.theme--documenter-dark .title strong{color:inherit;font-weight:inherit}html.theme--documenter-dark .title:not(.is-spaced)+.subtitle{margin-top:-1.25rem}html.theme--documenter-dark .title.is-1{font-size:3rem}html.theme--documenter-dark .title.is-2{font-size:2.5rem}html.theme--documenter-dark .title.is-3{font-size:2rem}html.theme--documenter-dark .title.is-4{font-size:1.5rem}html.theme--documenter-dark .title.is-5{font-size:1.25rem}html.theme--documenter-dark .title.is-6{font-size:1rem}html.theme--documenter-dark .title.is-7{font-size:.75rem}html.theme--documenter-dark .subtitle{color:#8c9b9d;font-size:1.25rem;font-weight:400;line-height:1.25}html.theme--documenter-dark .subtitle strong{color:#8c9b9d;font-weight:600}html.theme--documenter-dark .subtitle:not(.is-spaced)+.title{margin-top:-1.25rem}html.theme--documenter-dark .subtitle.is-1{font-size:3rem}html.theme--documenter-dark .subtitle.is-2{font-size:2.5rem}html.theme--documenter-dark .subtitle.is-3{font-size:2rem}html.theme--documenter-dark .subtitle.is-4{font-size:1.5rem}html.theme--documenter-dark .subtitle.is-5{font-size:1.25rem}html.theme--documenter-dark .subtitle.is-6{font-size:1rem}html.theme--documenter-dark .subtitle.is-7{font-size:.75rem}html.theme--documenter-dark .heading{display:block;font-size:11px;letter-spacing:1px;margin-bottom:5px;text-transform:uppercase}html.theme--documenter-dark .number{align-items:center;background-color:#282f2f;border-radius:9999px;display:inline-flex;font-size:1.25rem;height:2em;justify-content:center;margin-right:1.5rem;min-width:2.5em;padding:0.25rem 0.5rem;text-align:center;vertical-align:top}html.theme--documenter-dark .select select,html.theme--documenter-dark .textarea,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{background-color:#1f2424;border-color:#5e6d6f;border-radius:.4em;color:#dbdee0}html.theme--documenter-dark .select select::-moz-placeholder,html.theme--documenter-dark .textarea::-moz-placeholder,html.theme--documenter-dark .input::-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:#868c98}html.theme--documenter-dark .select select::-webkit-input-placeholder,html.theme--documenter-dark .textarea::-webkit-input-placeholder,html.theme--documenter-dark .input::-webkit-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:#868c98}html.theme--documenter-dark .select select:-moz-placeholder,html.theme--documenter-dark .textarea:-moz-placeholder,html.theme--documenter-dark .input:-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:#868c98}html.theme--documenter-dark .select select:-ms-input-placeholder,html.theme--documenter-dark .textarea:-ms-input-placeholder,html.theme--documenter-dark .input:-ms-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:#868c98}html.theme--documenter-dark .select select:hover,html.theme--documenter-dark .textarea:hover,html.theme--documenter-dark .input:hover,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:hover,html.theme--documenter-dark .select select.is-hovered,html.theme--documenter-dark .is-hovered.textarea,html.theme--documenter-dark .is-hovered.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-hovered{border-color:#8c9b9d}html.theme--documenter-dark .select select:focus,html.theme--documenter-dark .textarea:focus,html.theme--documenter-dark .input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:focus,html.theme--documenter-dark .select select.is-focused,html.theme--documenter-dark .is-focused.textarea,html.theme--documenter-dark .is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .select select:active,html.theme--documenter-dark .textarea:active,html.theme--documenter-dark .input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:active,html.theme--documenter-dark .select select.is-active,html.theme--documenter-dark .is-active.textarea,html.theme--documenter-dark .is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{border-color:#1abc9c;box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .select select[disabled],html.theme--documenter-dark .textarea[disabled],html.theme--documenter-dark .input[disabled],html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled],fieldset[disabled] html.theme--documenter-dark .select select,fieldset[disabled] html.theme--documenter-dark .textarea,fieldset[disabled] html.theme--documenter-dark .input,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{background-color:#8c9b9d;border-color:#282f2f;box-shadow:none;color:#fff}html.theme--documenter-dark .select select[disabled]::-moz-placeholder,html.theme--documenter-dark .textarea[disabled]::-moz-placeholder,html.theme--documenter-dark .input[disabled]::-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .select select::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .input::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .select select[disabled]::-webkit-input-placeholder,html.theme--documenter-dark .textarea[disabled]::-webkit-input-placeholder,html.theme--documenter-dark .input[disabled]::-webkit-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark .select select::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark .input::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .select select[disabled]:-moz-placeholder,html.theme--documenter-dark .textarea[disabled]:-moz-placeholder,html.theme--documenter-dark .input[disabled]:-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .select select:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .input:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .select select[disabled]:-ms-input-placeholder,html.theme--documenter-dark .textarea[disabled]:-ms-input-placeholder,html.theme--documenter-dark .input[disabled]:-ms-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark .select select:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark .input:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .textarea,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{box-shadow:inset 0 0.0625em 0.125em rgba(10,10,10,0.05);max-width:100%;width:100%}html.theme--documenter-dark .textarea[readonly],html.theme--documenter-dark .input[readonly],html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[readonly]{box-shadow:none}html.theme--documenter-dark .is-white.textarea,html.theme--documenter-dark .is-white.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-white{border-color:#fff}html.theme--documenter-dark .is-white.textarea:focus,html.theme--documenter-dark .is-white.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-white:focus,html.theme--documenter-dark .is-white.is-focused.textarea,html.theme--documenter-dark .is-white.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-white.textarea:active,html.theme--documenter-dark .is-white.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-white:active,html.theme--documenter-dark .is-white.is-active.textarea,html.theme--documenter-dark .is-white.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--documenter-dark .is-black.textarea,html.theme--documenter-dark .is-black.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-black{border-color:#0a0a0a}html.theme--documenter-dark .is-black.textarea:focus,html.theme--documenter-dark .is-black.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-black:focus,html.theme--documenter-dark .is-black.is-focused.textarea,html.theme--documenter-dark .is-black.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-black.textarea:active,html.theme--documenter-dark .is-black.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-black:active,html.theme--documenter-dark .is-black.is-active.textarea,html.theme--documenter-dark .is-black.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--documenter-dark .is-light.textarea,html.theme--documenter-dark .is-light.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-light{border-color:#ecf0f1}html.theme--documenter-dark .is-light.textarea:focus,html.theme--documenter-dark .is-light.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-light:focus,html.theme--documenter-dark .is-light.is-focused.textarea,html.theme--documenter-dark .is-light.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-light.textarea:active,html.theme--documenter-dark .is-light.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-light:active,html.theme--documenter-dark .is-light.is-active.textarea,html.theme--documenter-dark .is-light.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(236,240,241,0.25)}html.theme--documenter-dark .is-dark.textarea,html.theme--documenter-dark .content kbd.textarea,html.theme--documenter-dark .is-dark.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-dark,html.theme--documenter-dark .content kbd.input{border-color:#282f2f}html.theme--documenter-dark .is-dark.textarea:focus,html.theme--documenter-dark .content kbd.textarea:focus,html.theme--documenter-dark .is-dark.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-dark:focus,html.theme--documenter-dark .content kbd.input:focus,html.theme--documenter-dark .is-dark.is-focused.textarea,html.theme--documenter-dark .content kbd.is-focused.textarea,html.theme--documenter-dark .is-dark.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .content kbd.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search>input.is-focused,html.theme--documenter-dark .is-dark.textarea:active,html.theme--documenter-dark .content kbd.textarea:active,html.theme--documenter-dark .is-dark.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-dark:active,html.theme--documenter-dark .content kbd.input:active,html.theme--documenter-dark .is-dark.is-active.textarea,html.theme--documenter-dark .content kbd.is-active.textarea,html.theme--documenter-dark .is-dark.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--documenter-dark .content kbd.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(40,47,47,0.25)}html.theme--documenter-dark .is-primary.textarea,html.theme--documenter-dark .docstring>section>a.textarea.docs-sourcelink,html.theme--documenter-dark .is-primary.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-primary,html.theme--documenter-dark .docstring>section>a.input.docs-sourcelink{border-color:#375a7f}html.theme--documenter-dark .is-primary.textarea:focus,html.theme--documenter-dark .docstring>section>a.textarea.docs-sourcelink:focus,html.theme--documenter-dark .is-primary.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-primary:focus,html.theme--documenter-dark .docstring>section>a.input.docs-sourcelink:focus,html.theme--documenter-dark .is-primary.is-focused.textarea,html.theme--documenter-dark .docstring>section>a.is-focused.textarea.docs-sourcelink,html.theme--documenter-dark .is-primary.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .docstring>section>a.is-focused.input.docs-sourcelink,html.theme--documenter-dark .is-primary.textarea:active,html.theme--documenter-dark .docstring>section>a.textarea.docs-sourcelink:active,html.theme--documenter-dark .is-primary.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-primary:active,html.theme--documenter-dark .docstring>section>a.input.docs-sourcelink:active,html.theme--documenter-dark .is-primary.is-active.textarea,html.theme--documenter-dark .docstring>section>a.is-active.textarea.docs-sourcelink,html.theme--documenter-dark .is-primary.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--documenter-dark .docstring>section>a.is-active.input.docs-sourcelink{box-shadow:0 0 0 0.125em rgba(55,90,127,0.25)}html.theme--documenter-dark .is-link.textarea,html.theme--documenter-dark .is-link.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-link{border-color:#1abc9c}html.theme--documenter-dark .is-link.textarea:focus,html.theme--documenter-dark .is-link.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-link:focus,html.theme--documenter-dark .is-link.is-focused.textarea,html.theme--documenter-dark .is-link.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-link.textarea:active,html.theme--documenter-dark .is-link.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-link:active,html.theme--documenter-dark .is-link.is-active.textarea,html.theme--documenter-dark .is-link.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .is-info.textarea,html.theme--documenter-dark .is-info.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-info{border-color:#024c7d}html.theme--documenter-dark .is-info.textarea:focus,html.theme--documenter-dark .is-info.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-info:focus,html.theme--documenter-dark .is-info.is-focused.textarea,html.theme--documenter-dark .is-info.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-info.textarea:active,html.theme--documenter-dark .is-info.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-info:active,html.theme--documenter-dark .is-info.is-active.textarea,html.theme--documenter-dark .is-info.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(2,76,125,0.25)}html.theme--documenter-dark .is-success.textarea,html.theme--documenter-dark .is-success.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-success{border-color:#008438}html.theme--documenter-dark .is-success.textarea:focus,html.theme--documenter-dark .is-success.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-success:focus,html.theme--documenter-dark .is-success.is-focused.textarea,html.theme--documenter-dark .is-success.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-success.textarea:active,html.theme--documenter-dark .is-success.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-success:active,html.theme--documenter-dark .is-success.is-active.textarea,html.theme--documenter-dark .is-success.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(0,132,56,0.25)}html.theme--documenter-dark .is-warning.textarea,html.theme--documenter-dark .is-warning.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-warning{border-color:#ad8100}html.theme--documenter-dark .is-warning.textarea:focus,html.theme--documenter-dark .is-warning.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-warning:focus,html.theme--documenter-dark .is-warning.is-focused.textarea,html.theme--documenter-dark .is-warning.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-warning.textarea:active,html.theme--documenter-dark .is-warning.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-warning:active,html.theme--documenter-dark .is-warning.is-active.textarea,html.theme--documenter-dark .is-warning.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(173,129,0,0.25)}html.theme--documenter-dark .is-danger.textarea,html.theme--documenter-dark .is-danger.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-danger{border-color:#9e1b0d}html.theme--documenter-dark .is-danger.textarea:focus,html.theme--documenter-dark .is-danger.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-danger:focus,html.theme--documenter-dark .is-danger.is-focused.textarea,html.theme--documenter-dark .is-danger.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-danger.textarea:active,html.theme--documenter-dark .is-danger.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-danger:active,html.theme--documenter-dark .is-danger.is-active.textarea,html.theme--documenter-dark .is-danger.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(158,27,13,0.25)}html.theme--documenter-dark .is-small.textarea,html.theme--documenter-dark .is-small.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{border-radius:3px;font-size:.75rem}html.theme--documenter-dark .is-medium.textarea,html.theme--documenter-dark .is-medium.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-medium{font-size:1.25rem}html.theme--documenter-dark .is-large.textarea,html.theme--documenter-dark .is-large.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-large{font-size:1.5rem}html.theme--documenter-dark .is-fullwidth.textarea,html.theme--documenter-dark .is-fullwidth.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-fullwidth{display:block;width:100%}html.theme--documenter-dark .is-inline.textarea,html.theme--documenter-dark .is-inline.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-inline{display:inline;width:auto}html.theme--documenter-dark .input.is-rounded,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{border-radius:9999px;padding-left:calc(calc(0.75em - 1px) + 0.375em);padding-right:calc(calc(0.75em - 1px) + 0.375em)}html.theme--documenter-dark .input.is-static,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-static{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0}html.theme--documenter-dark .textarea{display:block;max-width:100%;min-width:100%;padding:calc(0.75em - 1px);resize:vertical}html.theme--documenter-dark .textarea:not([rows]){max-height:40em;min-height:8em}html.theme--documenter-dark .textarea[rows]{height:initial}html.theme--documenter-dark .textarea.has-fixed-size{resize:none}html.theme--documenter-dark .radio,html.theme--documenter-dark .checkbox{cursor:pointer;display:inline-block;line-height:1.25;position:relative}html.theme--documenter-dark .radio input,html.theme--documenter-dark .checkbox input{cursor:pointer}html.theme--documenter-dark .radio:hover,html.theme--documenter-dark .checkbox:hover{color:#8c9b9d}html.theme--documenter-dark .radio[disabled],html.theme--documenter-dark .checkbox[disabled],fieldset[disabled] html.theme--documenter-dark .radio,fieldset[disabled] html.theme--documenter-dark .checkbox,html.theme--documenter-dark .radio input[disabled],html.theme--documenter-dark .checkbox input[disabled]{color:#fff;cursor:not-allowed}html.theme--documenter-dark .radio+.radio{margin-left:.5em}html.theme--documenter-dark .select{display:inline-block;max-width:100%;position:relative;vertical-align:top}html.theme--documenter-dark .select:not(.is-multiple){height:2.5em}html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after{border-color:#1abc9c;right:1.125em;z-index:4}html.theme--documenter-dark .select.is-rounded select,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.select select{border-radius:9999px;padding-left:1em}html.theme--documenter-dark .select select{cursor:pointer;display:block;font-size:1em;max-width:100%;outline:none}html.theme--documenter-dark .select select::-ms-expand{display:none}html.theme--documenter-dark .select select[disabled]:hover,fieldset[disabled] html.theme--documenter-dark .select select:hover{border-color:#282f2f}html.theme--documenter-dark .select select:not([multiple]){padding-right:2.5em}html.theme--documenter-dark .select select[multiple]{height:auto;padding:0}html.theme--documenter-dark .select select[multiple] option{padding:0.5em 1em}html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading):hover::after{border-color:#8c9b9d}html.theme--documenter-dark .select.is-white:not(:hover)::after{border-color:#fff}html.theme--documenter-dark .select.is-white select{border-color:#fff}html.theme--documenter-dark .select.is-white select:hover,html.theme--documenter-dark .select.is-white select.is-hovered{border-color:#f2f2f2}html.theme--documenter-dark .select.is-white select:focus,html.theme--documenter-dark .select.is-white select.is-focused,html.theme--documenter-dark .select.is-white select:active,html.theme--documenter-dark .select.is-white select.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--documenter-dark .select.is-black:not(:hover)::after{border-color:#0a0a0a}html.theme--documenter-dark .select.is-black select{border-color:#0a0a0a}html.theme--documenter-dark .select.is-black select:hover,html.theme--documenter-dark .select.is-black select.is-hovered{border-color:#000}html.theme--documenter-dark .select.is-black select:focus,html.theme--documenter-dark .select.is-black select.is-focused,html.theme--documenter-dark .select.is-black select:active,html.theme--documenter-dark .select.is-black select.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--documenter-dark .select.is-light:not(:hover)::after{border-color:#ecf0f1}html.theme--documenter-dark .select.is-light select{border-color:#ecf0f1}html.theme--documenter-dark .select.is-light select:hover,html.theme--documenter-dark .select.is-light select.is-hovered{border-color:#dde4e6}html.theme--documenter-dark .select.is-light select:focus,html.theme--documenter-dark .select.is-light select.is-focused,html.theme--documenter-dark .select.is-light select:active,html.theme--documenter-dark .select.is-light select.is-active{box-shadow:0 0 0 0.125em rgba(236,240,241,0.25)}html.theme--documenter-dark .select.is-dark:not(:hover)::after,html.theme--documenter-dark .content kbd.select:not(:hover)::after{border-color:#282f2f}html.theme--documenter-dark .select.is-dark select,html.theme--documenter-dark .content kbd.select select{border-color:#282f2f}html.theme--documenter-dark .select.is-dark select:hover,html.theme--documenter-dark .content kbd.select select:hover,html.theme--documenter-dark .select.is-dark select.is-hovered,html.theme--documenter-dark .content kbd.select select.is-hovered{border-color:#1d2122}html.theme--documenter-dark .select.is-dark select:focus,html.theme--documenter-dark .content kbd.select select:focus,html.theme--documenter-dark .select.is-dark select.is-focused,html.theme--documenter-dark .content kbd.select select.is-focused,html.theme--documenter-dark .select.is-dark select:active,html.theme--documenter-dark .content kbd.select select:active,html.theme--documenter-dark .select.is-dark select.is-active,html.theme--documenter-dark .content kbd.select select.is-active{box-shadow:0 0 0 0.125em rgba(40,47,47,0.25)}html.theme--documenter-dark .select.is-primary:not(:hover)::after,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink:not(:hover)::after{border-color:#375a7f}html.theme--documenter-dark .select.is-primary select,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select{border-color:#375a7f}html.theme--documenter-dark .select.is-primary select:hover,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select:hover,html.theme--documenter-dark .select.is-primary select.is-hovered,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select.is-hovered{border-color:#2f4d6d}html.theme--documenter-dark .select.is-primary select:focus,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select:focus,html.theme--documenter-dark .select.is-primary select.is-focused,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select.is-focused,html.theme--documenter-dark .select.is-primary select:active,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select:active,html.theme--documenter-dark .select.is-primary select.is-active,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select.is-active{box-shadow:0 0 0 0.125em rgba(55,90,127,0.25)}html.theme--documenter-dark .select.is-link:not(:hover)::after{border-color:#1abc9c}html.theme--documenter-dark .select.is-link select{border-color:#1abc9c}html.theme--documenter-dark .select.is-link select:hover,html.theme--documenter-dark .select.is-link select.is-hovered{border-color:#17a689}html.theme--documenter-dark .select.is-link select:focus,html.theme--documenter-dark .select.is-link select.is-focused,html.theme--documenter-dark .select.is-link select:active,html.theme--documenter-dark .select.is-link select.is-active{box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .select.is-info:not(:hover)::after{border-color:#024c7d}html.theme--documenter-dark .select.is-info select{border-color:#024c7d}html.theme--documenter-dark .select.is-info select:hover,html.theme--documenter-dark .select.is-info select.is-hovered{border-color:#023d64}html.theme--documenter-dark .select.is-info select:focus,html.theme--documenter-dark .select.is-info select.is-focused,html.theme--documenter-dark .select.is-info select:active,html.theme--documenter-dark .select.is-info select.is-active{box-shadow:0 0 0 0.125em rgba(2,76,125,0.25)}html.theme--documenter-dark .select.is-success:not(:hover)::after{border-color:#008438}html.theme--documenter-dark .select.is-success select{border-color:#008438}html.theme--documenter-dark .select.is-success select:hover,html.theme--documenter-dark .select.is-success select.is-hovered{border-color:#006b2d}html.theme--documenter-dark .select.is-success select:focus,html.theme--documenter-dark .select.is-success select.is-focused,html.theme--documenter-dark .select.is-success select:active,html.theme--documenter-dark .select.is-success select.is-active{box-shadow:0 0 0 0.125em rgba(0,132,56,0.25)}html.theme--documenter-dark .select.is-warning:not(:hover)::after{border-color:#ad8100}html.theme--documenter-dark .select.is-warning select{border-color:#ad8100}html.theme--documenter-dark .select.is-warning select:hover,html.theme--documenter-dark .select.is-warning select.is-hovered{border-color:#946e00}html.theme--documenter-dark .select.is-warning select:focus,html.theme--documenter-dark .select.is-warning select.is-focused,html.theme--documenter-dark .select.is-warning select:active,html.theme--documenter-dark .select.is-warning select.is-active{box-shadow:0 0 0 0.125em rgba(173,129,0,0.25)}html.theme--documenter-dark .select.is-danger:not(:hover)::after{border-color:#9e1b0d}html.theme--documenter-dark .select.is-danger select{border-color:#9e1b0d}html.theme--documenter-dark .select.is-danger select:hover,html.theme--documenter-dark .select.is-danger select.is-hovered{border-color:#86170b}html.theme--documenter-dark .select.is-danger select:focus,html.theme--documenter-dark .select.is-danger select.is-focused,html.theme--documenter-dark .select.is-danger select:active,html.theme--documenter-dark .select.is-danger select.is-active{box-shadow:0 0 0 0.125em rgba(158,27,13,0.25)}html.theme--documenter-dark .select.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.select{border-radius:3px;font-size:.75rem}html.theme--documenter-dark .select.is-medium{font-size:1.25rem}html.theme--documenter-dark .select.is-large{font-size:1.5rem}html.theme--documenter-dark .select.is-disabled::after{border-color:#fff !important;opacity:0.5}html.theme--documenter-dark .select.is-fullwidth{width:100%}html.theme--documenter-dark .select.is-fullwidth select{width:100%}html.theme--documenter-dark .select.is-loading::after{margin-top:0;position:absolute;right:.625em;top:0.625em;transform:none}html.theme--documenter-dark .select.is-loading.is-small:after,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.75rem}html.theme--documenter-dark .select.is-loading.is-medium:after{font-size:1.25rem}html.theme--documenter-dark .select.is-loading.is-large:after{font-size:1.5rem}html.theme--documenter-dark .file{align-items:stretch;display:flex;justify-content:flex-start;position:relative}html.theme--documenter-dark .file.is-white .file-cta{background-color:#fff;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .file.is-white:hover .file-cta,html.theme--documenter-dark .file.is-white.is-hovered .file-cta{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .file.is-white:focus .file-cta,html.theme--documenter-dark .file.is-white.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(255,255,255,0.25);color:#0a0a0a}html.theme--documenter-dark .file.is-white:active .file-cta,html.theme--documenter-dark .file.is-white.is-active .file-cta{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .file.is-black .file-cta{background-color:#0a0a0a;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-black:hover .file-cta,html.theme--documenter-dark .file.is-black.is-hovered .file-cta{background-color:#040404;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-black:focus .file-cta,html.theme--documenter-dark .file.is-black.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(10,10,10,0.25);color:#fff}html.theme--documenter-dark .file.is-black:active .file-cta,html.theme--documenter-dark .file.is-black.is-active .file-cta{background-color:#000;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-light .file-cta{background-color:#ecf0f1;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .file.is-light:hover .file-cta,html.theme--documenter-dark .file.is-light.is-hovered .file-cta{background-color:#e5eaec;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .file.is-light:focus .file-cta,html.theme--documenter-dark .file.is-light.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(236,240,241,0.25);color:rgba(0,0,0,0.7)}html.theme--documenter-dark .file.is-light:active .file-cta,html.theme--documenter-dark .file.is-light.is-active .file-cta{background-color:#dde4e6;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .file.is-dark .file-cta,html.theme--documenter-dark .content kbd.file .file-cta{background-color:#282f2f;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-dark:hover .file-cta,html.theme--documenter-dark .content kbd.file:hover .file-cta,html.theme--documenter-dark .file.is-dark.is-hovered .file-cta,html.theme--documenter-dark .content kbd.file.is-hovered .file-cta{background-color:#232829;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-dark:focus .file-cta,html.theme--documenter-dark .content kbd.file:focus .file-cta,html.theme--documenter-dark .file.is-dark.is-focused .file-cta,html.theme--documenter-dark .content kbd.file.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(40,47,47,0.25);color:#fff}html.theme--documenter-dark .file.is-dark:active .file-cta,html.theme--documenter-dark .content kbd.file:active .file-cta,html.theme--documenter-dark .file.is-dark.is-active .file-cta,html.theme--documenter-dark .content kbd.file.is-active .file-cta{background-color:#1d2122;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-primary .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink .file-cta{background-color:#375a7f;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-primary:hover .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink:hover .file-cta,html.theme--documenter-dark .file.is-primary.is-hovered .file-cta,html.theme--documenter-dark .docstring>section>a.file.is-hovered.docs-sourcelink .file-cta{background-color:#335476;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-primary:focus .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink:focus .file-cta,html.theme--documenter-dark .file.is-primary.is-focused .file-cta,html.theme--documenter-dark .docstring>section>a.file.is-focused.docs-sourcelink .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(55,90,127,0.25);color:#fff}html.theme--documenter-dark .file.is-primary:active .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink:active .file-cta,html.theme--documenter-dark .file.is-primary.is-active .file-cta,html.theme--documenter-dark .docstring>section>a.file.is-active.docs-sourcelink .file-cta{background-color:#2f4d6d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-link .file-cta{background-color:#1abc9c;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-link:hover .file-cta,html.theme--documenter-dark .file.is-link.is-hovered .file-cta{background-color:#18b193;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-link:focus .file-cta,html.theme--documenter-dark .file.is-link.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(26,188,156,0.25);color:#fff}html.theme--documenter-dark .file.is-link:active .file-cta,html.theme--documenter-dark .file.is-link.is-active .file-cta{background-color:#17a689;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-info .file-cta{background-color:#024c7d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-info:hover .file-cta,html.theme--documenter-dark .file.is-info.is-hovered .file-cta{background-color:#024470;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-info:focus .file-cta,html.theme--documenter-dark .file.is-info.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(2,76,125,0.25);color:#fff}html.theme--documenter-dark .file.is-info:active .file-cta,html.theme--documenter-dark .file.is-info.is-active .file-cta{background-color:#023d64;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-success .file-cta{background-color:#008438;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-success:hover .file-cta,html.theme--documenter-dark .file.is-success.is-hovered .file-cta{background-color:#073;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-success:focus .file-cta,html.theme--documenter-dark .file.is-success.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(0,132,56,0.25);color:#fff}html.theme--documenter-dark .file.is-success:active .file-cta,html.theme--documenter-dark .file.is-success.is-active .file-cta{background-color:#006b2d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-warning .file-cta{background-color:#ad8100;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-warning:hover .file-cta,html.theme--documenter-dark .file.is-warning.is-hovered .file-cta{background-color:#a07700;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-warning:focus .file-cta,html.theme--documenter-dark .file.is-warning.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(173,129,0,0.25);color:#fff}html.theme--documenter-dark .file.is-warning:active .file-cta,html.theme--documenter-dark .file.is-warning.is-active .file-cta{background-color:#946e00;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-danger .file-cta{background-color:#9e1b0d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-danger:hover .file-cta,html.theme--documenter-dark .file.is-danger.is-hovered .file-cta{background-color:#92190c;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-danger:focus .file-cta,html.theme--documenter-dark .file.is-danger.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(158,27,13,0.25);color:#fff}html.theme--documenter-dark .file.is-danger:active .file-cta,html.theme--documenter-dark .file.is-danger.is-active .file-cta{background-color:#86170b;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.file{font-size:.75rem}html.theme--documenter-dark .file.is-normal{font-size:1rem}html.theme--documenter-dark .file.is-medium{font-size:1.25rem}html.theme--documenter-dark .file.is-medium .file-icon .fa{font-size:21px}html.theme--documenter-dark .file.is-large{font-size:1.5rem}html.theme--documenter-dark .file.is-large .file-icon .fa{font-size:28px}html.theme--documenter-dark .file.has-name .file-cta{border-bottom-right-radius:0;border-top-right-radius:0}html.theme--documenter-dark .file.has-name .file-name{border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .file.has-name.is-empty .file-cta{border-radius:.4em}html.theme--documenter-dark .file.has-name.is-empty .file-name{display:none}html.theme--documenter-dark .file.is-boxed .file-label{flex-direction:column}html.theme--documenter-dark .file.is-boxed .file-cta{flex-direction:column;height:auto;padding:1em 3em}html.theme--documenter-dark .file.is-boxed .file-name{border-width:0 1px 1px}html.theme--documenter-dark .file.is-boxed .file-icon{height:1.5em;width:1.5em}html.theme--documenter-dark .file.is-boxed .file-icon .fa{font-size:21px}html.theme--documenter-dark .file.is-boxed.is-small .file-icon .fa,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-boxed .file-icon .fa{font-size:14px}html.theme--documenter-dark .file.is-boxed.is-medium .file-icon .fa{font-size:28px}html.theme--documenter-dark .file.is-boxed.is-large .file-icon .fa{font-size:35px}html.theme--documenter-dark .file.is-boxed.has-name .file-cta{border-radius:.4em .4em 0 0}html.theme--documenter-dark .file.is-boxed.has-name .file-name{border-radius:0 0 .4em .4em;border-width:0 1px 1px}html.theme--documenter-dark .file.is-centered{justify-content:center}html.theme--documenter-dark .file.is-fullwidth .file-label{width:100%}html.theme--documenter-dark .file.is-fullwidth .file-name{flex-grow:1;max-width:none}html.theme--documenter-dark .file.is-right{justify-content:flex-end}html.theme--documenter-dark .file.is-right .file-cta{border-radius:0 .4em .4em 0}html.theme--documenter-dark .file.is-right .file-name{border-radius:.4em 0 0 .4em;border-width:1px 0 1px 1px;order:-1}html.theme--documenter-dark .file-label{align-items:stretch;display:flex;cursor:pointer;justify-content:flex-start;overflow:hidden;position:relative}html.theme--documenter-dark .file-label:hover .file-cta{background-color:#232829;color:#f2f2f2}html.theme--documenter-dark .file-label:hover .file-name{border-color:#596668}html.theme--documenter-dark .file-label:active .file-cta{background-color:#1d2122;color:#f2f2f2}html.theme--documenter-dark .file-label:active .file-name{border-color:#535f61}html.theme--documenter-dark .file-input{height:100%;left:0;opacity:0;outline:none;position:absolute;top:0;width:100%}html.theme--documenter-dark .file-cta,html.theme--documenter-dark .file-name{border-color:#5e6d6f;border-radius:.4em;font-size:1em;padding-left:1em;padding-right:1em;white-space:nowrap}html.theme--documenter-dark .file-cta{background-color:#282f2f;color:#fff}html.theme--documenter-dark .file-name{border-color:#5e6d6f;border-style:solid;border-width:1px 1px 1px 0;display:block;max-width:16em;overflow:hidden;text-align:inherit;text-overflow:ellipsis}html.theme--documenter-dark .file-icon{align-items:center;display:flex;height:1em;justify-content:center;margin-right:.5em;width:1em}html.theme--documenter-dark .file-icon .fa{font-size:14px}html.theme--documenter-dark .label{color:#f2f2f2;display:block;font-size:1rem;font-weight:700}html.theme--documenter-dark .label:not(:last-child){margin-bottom:0.5em}html.theme--documenter-dark .label.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.label{font-size:.75rem}html.theme--documenter-dark .label.is-medium{font-size:1.25rem}html.theme--documenter-dark .label.is-large{font-size:1.5rem}html.theme--documenter-dark .help{display:block;font-size:.75rem;margin-top:0.25rem}html.theme--documenter-dark .help.is-white{color:#fff}html.theme--documenter-dark .help.is-black{color:#0a0a0a}html.theme--documenter-dark .help.is-light{color:#ecf0f1}html.theme--documenter-dark .help.is-dark,html.theme--documenter-dark .content kbd.help{color:#282f2f}html.theme--documenter-dark .help.is-primary,html.theme--documenter-dark .docstring>section>a.help.docs-sourcelink{color:#375a7f}html.theme--documenter-dark .help.is-link{color:#1abc9c}html.theme--documenter-dark .help.is-info{color:#024c7d}html.theme--documenter-dark .help.is-success{color:#008438}html.theme--documenter-dark .help.is-warning{color:#ad8100}html.theme--documenter-dark .help.is-danger{color:#9e1b0d}html.theme--documenter-dark .field:not(:last-child){margin-bottom:0.75rem}html.theme--documenter-dark .field.has-addons{display:flex;justify-content:flex-start}html.theme--documenter-dark .field.has-addons .control:not(:last-child){margin-right:-1px}html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .button,html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .input,html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search>input,html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .select select{border-radius:0}html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .button,html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .input,html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search>input,html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .select select{border-bottom-right-radius:0;border-top-right-radius:0}html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .button,html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .input,html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search>input,html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .select select{border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .button.is-hovered:not([disabled]),html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .input.is-hovered:not([disabled]),html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-hovered:not([disabled]),html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-hovered:not([disabled]),html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .select select.is-hovered:not([disabled]){z-index:2}html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]),html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]),html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]),html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]),html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]),html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]){z-index:3}html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus:hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]):hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active:hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]):hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]):hover{z-index:4}html.theme--documenter-dark .field.has-addons .control.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .field.has-addons.has-addons-centered{justify-content:center}html.theme--documenter-dark .field.has-addons.has-addons-right{justify-content:flex-end}html.theme--documenter-dark .field.has-addons.has-addons-fullwidth .control{flex-grow:1;flex-shrink:0}html.theme--documenter-dark .field.is-grouped{display:flex;justify-content:flex-start}html.theme--documenter-dark .field.is-grouped>.control{flex-shrink:0}html.theme--documenter-dark .field.is-grouped>.control:not(:last-child){margin-bottom:0;margin-right:.75rem}html.theme--documenter-dark .field.is-grouped>.control.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .field.is-grouped.is-grouped-centered{justify-content:center}html.theme--documenter-dark .field.is-grouped.is-grouped-right{justify-content:flex-end}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline{flex-wrap:wrap}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline>.control:last-child,html.theme--documenter-dark .field.is-grouped.is-grouped-multiline>.control:not(:last-child){margin-bottom:0.75rem}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:last-child{margin-bottom:-0.75rem}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:not(:last-child){margin-bottom:0}@media screen and (min-width: 769px),print{html.theme--documenter-dark .field.is-horizontal{display:flex}}html.theme--documenter-dark .field-label .label{font-size:inherit}@media screen and (max-width: 768px){html.theme--documenter-dark .field-label{margin-bottom:0.5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .field-label{flex-basis:0;flex-grow:1;flex-shrink:0;margin-right:1.5rem;text-align:right}html.theme--documenter-dark .field-label.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.field-label{font-size:.75rem;padding-top:0.375em}html.theme--documenter-dark .field-label.is-normal{padding-top:0.375em}html.theme--documenter-dark .field-label.is-medium{font-size:1.25rem;padding-top:0.375em}html.theme--documenter-dark .field-label.is-large{font-size:1.5rem;padding-top:0.375em}}html.theme--documenter-dark .field-body .field .field{margin-bottom:0}@media screen and (min-width: 769px),print{html.theme--documenter-dark .field-body{display:flex;flex-basis:0;flex-grow:5;flex-shrink:1}html.theme--documenter-dark .field-body .field{margin-bottom:0}html.theme--documenter-dark .field-body>.field{flex-shrink:1}html.theme--documenter-dark .field-body>.field:not(.is-narrow){flex-grow:1}html.theme--documenter-dark .field-body>.field:not(:last-child){margin-right:.75rem}}html.theme--documenter-dark .control{box-sizing:border-box;clear:both;font-size:1rem;position:relative;text-align:inherit}html.theme--documenter-dark .control.has-icons-left .input:focus~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input:focus~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input:focus~.icon,html.theme--documenter-dark .control.has-icons-left .select:focus~.icon,html.theme--documenter-dark .control.has-icons-right .input:focus~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input:focus~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input:focus~.icon,html.theme--documenter-dark .control.has-icons-right .select:focus~.icon{color:#282f2f}html.theme--documenter-dark .control.has-icons-left .input.is-small~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input~.icon,html.theme--documenter-dark .control.has-icons-left .select.is-small~.icon,html.theme--documenter-dark .control.has-icons-right .input.is-small~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input~.icon,html.theme--documenter-dark .control.has-icons-right .select.is-small~.icon{font-size:.75rem}html.theme--documenter-dark .control.has-icons-left .input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-left .select.is-medium~.icon,html.theme--documenter-dark .control.has-icons-right .input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-right .select.is-medium~.icon{font-size:1.25rem}html.theme--documenter-dark .control.has-icons-left .input.is-large~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-large~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-large~.icon,html.theme--documenter-dark .control.has-icons-left .select.is-large~.icon,html.theme--documenter-dark .control.has-icons-right .input.is-large~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-large~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-large~.icon,html.theme--documenter-dark .control.has-icons-right .select.is-large~.icon{font-size:1.5rem}html.theme--documenter-dark .control.has-icons-left .icon,html.theme--documenter-dark .control.has-icons-right .icon{color:#5e6d6f;height:2.5em;pointer-events:none;position:absolute;top:0;width:2.5em;z-index:4}html.theme--documenter-dark .control.has-icons-left .input,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input,html.theme--documenter-dark .control.has-icons-left .select select{padding-left:2.5em}html.theme--documenter-dark .control.has-icons-left .icon.is-left{left:0}html.theme--documenter-dark .control.has-icons-right .input,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input,html.theme--documenter-dark .control.has-icons-right .select select{padding-right:2.5em}html.theme--documenter-dark .control.has-icons-right .icon.is-right{right:0}html.theme--documenter-dark .control.is-loading::after{position:absolute !important;right:.625em;top:0.625em;z-index:4}html.theme--documenter-dark .control.is-loading.is-small:after,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.75rem}html.theme--documenter-dark .control.is-loading.is-medium:after{font-size:1.25rem}html.theme--documenter-dark .control.is-loading.is-large:after{font-size:1.5rem}html.theme--documenter-dark .breadcrumb{font-size:1rem;white-space:nowrap}html.theme--documenter-dark .breadcrumb a{align-items:center;color:#1abc9c;display:flex;justify-content:center;padding:0 .75em}html.theme--documenter-dark .breadcrumb a:hover{color:#1dd2af}html.theme--documenter-dark .breadcrumb li{align-items:center;display:flex}html.theme--documenter-dark .breadcrumb li:first-child a{padding-left:0}html.theme--documenter-dark .breadcrumb li.is-active a{color:#f2f2f2;cursor:default;pointer-events:none}html.theme--documenter-dark .breadcrumb li+li::before{color:#8c9b9d;content:"\0002f"}html.theme--documenter-dark .breadcrumb ul,html.theme--documenter-dark .breadcrumb ol{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--documenter-dark .breadcrumb .icon:first-child{margin-right:.5em}html.theme--documenter-dark .breadcrumb .icon:last-child{margin-left:.5em}html.theme--documenter-dark .breadcrumb.is-centered ol,html.theme--documenter-dark .breadcrumb.is-centered ul{justify-content:center}html.theme--documenter-dark .breadcrumb.is-right ol,html.theme--documenter-dark .breadcrumb.is-right ul{justify-content:flex-end}html.theme--documenter-dark .breadcrumb.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.breadcrumb{font-size:.75rem}html.theme--documenter-dark .breadcrumb.is-medium{font-size:1.25rem}html.theme--documenter-dark .breadcrumb.is-large{font-size:1.5rem}html.theme--documenter-dark .breadcrumb.has-arrow-separator li+li::before{content:"\02192"}html.theme--documenter-dark .breadcrumb.has-bullet-separator li+li::before{content:"\02022"}html.theme--documenter-dark .breadcrumb.has-dot-separator li+li::before{content:"\000b7"}html.theme--documenter-dark .breadcrumb.has-succeeds-separator li+li::before{content:"\0227B"}html.theme--documenter-dark .card{background-color:#fff;border-radius:.25rem;box-shadow:#171717;color:#fff;max-width:100%;position:relative}html.theme--documenter-dark .card-footer:first-child,html.theme--documenter-dark .card-content:first-child,html.theme--documenter-dark .card-header:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}html.theme--documenter-dark .card-footer:last-child,html.theme--documenter-dark .card-content:last-child,html.theme--documenter-dark .card-header:last-child{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}html.theme--documenter-dark .card-header{background-color:rgba(0,0,0,0);align-items:stretch;box-shadow:0 0.125em 0.25em rgba(10,10,10,0.1);display:flex}html.theme--documenter-dark .card-header-title{align-items:center;color:#f2f2f2;display:flex;flex-grow:1;font-weight:700;padding:0.75rem 1rem}html.theme--documenter-dark .card-header-title.is-centered{justify-content:center}html.theme--documenter-dark .card-header-icon{-moz-appearance:none;-webkit-appearance:none;appearance:none;background:none;border:none;color:currentColor;font-family:inherit;font-size:1em;margin:0;padding:0;align-items:center;cursor:pointer;display:flex;justify-content:center;padding:0.75rem 1rem}html.theme--documenter-dark .card-image{display:block;position:relative}html.theme--documenter-dark .card-image:first-child img{border-top-left-radius:.25rem;border-top-right-radius:.25rem}html.theme--documenter-dark .card-image:last-child img{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}html.theme--documenter-dark .card-content{background-color:rgba(0,0,0,0);padding:1.5rem}html.theme--documenter-dark .card-footer{background-color:rgba(0,0,0,0);border-top:1px solid #ededed;align-items:stretch;display:flex}html.theme--documenter-dark .card-footer-item{align-items:center;display:flex;flex-basis:0;flex-grow:1;flex-shrink:0;justify-content:center;padding:.75rem}html.theme--documenter-dark .card-footer-item:not(:last-child){border-right:1px solid #ededed}html.theme--documenter-dark .card .media:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .dropdown{display:inline-flex;position:relative;vertical-align:top}html.theme--documenter-dark .dropdown.is-active .dropdown-menu,html.theme--documenter-dark .dropdown.is-hoverable:hover .dropdown-menu{display:block}html.theme--documenter-dark .dropdown.is-right .dropdown-menu{left:auto;right:0}html.theme--documenter-dark .dropdown.is-up .dropdown-menu{bottom:100%;padding-bottom:4px;padding-top:initial;top:auto}html.theme--documenter-dark .dropdown-menu{display:none;left:0;min-width:12rem;padding-top:4px;position:absolute;top:100%;z-index:20}html.theme--documenter-dark .dropdown-content{background-color:#282f2f;border-radius:.4em;box-shadow:#171717;padding-bottom:.5rem;padding-top:.5rem}html.theme--documenter-dark .dropdown-item{color:#fff;display:block;font-size:0.875rem;line-height:1.5;padding:0.375rem 1rem;position:relative}html.theme--documenter-dark a.dropdown-item,html.theme--documenter-dark button.dropdown-item{padding-right:3rem;text-align:inherit;white-space:nowrap;width:100%}html.theme--documenter-dark a.dropdown-item:hover,html.theme--documenter-dark button.dropdown-item:hover{background-color:#282f2f;color:#0a0a0a}html.theme--documenter-dark a.dropdown-item.is-active,html.theme--documenter-dark button.dropdown-item.is-active{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .dropdown-divider{background-color:#ededed;border:none;display:block;height:1px;margin:0.5rem 0}html.theme--documenter-dark .level{align-items:center;justify-content:space-between}html.theme--documenter-dark .level code{border-radius:.4em}html.theme--documenter-dark .level img{display:inline-block;vertical-align:top}html.theme--documenter-dark .level.is-mobile{display:flex}html.theme--documenter-dark .level.is-mobile .level-left,html.theme--documenter-dark .level.is-mobile .level-right{display:flex}html.theme--documenter-dark .level.is-mobile .level-left+.level-right{margin-top:0}html.theme--documenter-dark .level.is-mobile .level-item:not(:last-child){margin-bottom:0;margin-right:.75rem}html.theme--documenter-dark .level.is-mobile .level-item:not(.is-narrow){flex-grow:1}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level{display:flex}html.theme--documenter-dark .level>.level-item:not(.is-narrow){flex-grow:1}}html.theme--documenter-dark .level-item{align-items:center;display:flex;flex-basis:auto;flex-grow:0;flex-shrink:0;justify-content:center}html.theme--documenter-dark .level-item .title,html.theme--documenter-dark .level-item .subtitle{margin-bottom:0}@media screen and (max-width: 768px){html.theme--documenter-dark .level-item:not(:last-child){margin-bottom:.75rem}}html.theme--documenter-dark .level-left,html.theme--documenter-dark .level-right{flex-basis:auto;flex-grow:0;flex-shrink:0}html.theme--documenter-dark .level-left .level-item.is-flexible,html.theme--documenter-dark .level-right .level-item.is-flexible{flex-grow:1}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level-left .level-item:not(:last-child),html.theme--documenter-dark .level-right .level-item:not(:last-child){margin-right:.75rem}}html.theme--documenter-dark .level-left{align-items:center;justify-content:flex-start}@media screen and (max-width: 768px){html.theme--documenter-dark .level-left+.level-right{margin-top:1.5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level-left{display:flex}}html.theme--documenter-dark .level-right{align-items:center;justify-content:flex-end}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level-right{display:flex}}html.theme--documenter-dark .media{align-items:flex-start;display:flex;text-align:inherit}html.theme--documenter-dark .media .content:not(:last-child){margin-bottom:.75rem}html.theme--documenter-dark .media .media{border-top:1px solid rgba(94,109,111,0.5);display:flex;padding-top:.75rem}html.theme--documenter-dark .media .media .content:not(:last-child),html.theme--documenter-dark .media .media .control:not(:last-child){margin-bottom:.5rem}html.theme--documenter-dark .media .media .media{padding-top:.5rem}html.theme--documenter-dark .media .media .media+.media{margin-top:.5rem}html.theme--documenter-dark .media+.media{border-top:1px solid rgba(94,109,111,0.5);margin-top:1rem;padding-top:1rem}html.theme--documenter-dark .media.is-large+.media{margin-top:1.5rem;padding-top:1.5rem}html.theme--documenter-dark .media-left,html.theme--documenter-dark .media-right{flex-basis:auto;flex-grow:0;flex-shrink:0}html.theme--documenter-dark .media-left{margin-right:1rem}html.theme--documenter-dark .media-right{margin-left:1rem}html.theme--documenter-dark .media-content{flex-basis:auto;flex-grow:1;flex-shrink:1;text-align:inherit}@media screen and (max-width: 768px){html.theme--documenter-dark .media-content{overflow-x:auto}}html.theme--documenter-dark .menu{font-size:1rem}html.theme--documenter-dark .menu.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.menu{font-size:.75rem}html.theme--documenter-dark .menu.is-medium{font-size:1.25rem}html.theme--documenter-dark .menu.is-large{font-size:1.5rem}html.theme--documenter-dark .menu-list{line-height:1.25}html.theme--documenter-dark .menu-list a{border-radius:3px;color:#fff;display:block;padding:0.5em 0.75em}html.theme--documenter-dark .menu-list a:hover{background-color:#282f2f;color:#f2f2f2}html.theme--documenter-dark .menu-list a.is-active{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .menu-list li ul{border-left:1px solid #5e6d6f;margin:.75em;padding-left:.75em}html.theme--documenter-dark .menu-label{color:#fff;font-size:.75em;letter-spacing:.1em;text-transform:uppercase}html.theme--documenter-dark .menu-label:not(:first-child){margin-top:1em}html.theme--documenter-dark .menu-label:not(:last-child){margin-bottom:1em}html.theme--documenter-dark .message{background-color:#282f2f;border-radius:.4em;font-size:1rem}html.theme--documenter-dark .message strong{color:currentColor}html.theme--documenter-dark .message a:not(.button):not(.tag):not(.dropdown-item){color:currentColor;text-decoration:underline}html.theme--documenter-dark .message.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.message{font-size:.75rem}html.theme--documenter-dark .message.is-medium{font-size:1.25rem}html.theme--documenter-dark .message.is-large{font-size:1.5rem}html.theme--documenter-dark .message.is-white{background-color:#fff}html.theme--documenter-dark .message.is-white .message-header{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .message.is-white .message-body{border-color:#fff}html.theme--documenter-dark .message.is-black{background-color:#fafafa}html.theme--documenter-dark .message.is-black .message-header{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .message.is-black .message-body{border-color:#0a0a0a}html.theme--documenter-dark .message.is-light{background-color:#f9fafb}html.theme--documenter-dark .message.is-light .message-header{background-color:#ecf0f1;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .message.is-light .message-body{border-color:#ecf0f1}html.theme--documenter-dark .message.is-dark,html.theme--documenter-dark .content kbd.message{background-color:#f9fafa}html.theme--documenter-dark .message.is-dark .message-header,html.theme--documenter-dark .content kbd.message .message-header{background-color:#282f2f;color:#fff}html.theme--documenter-dark .message.is-dark .message-body,html.theme--documenter-dark .content kbd.message .message-body{border-color:#282f2f}html.theme--documenter-dark .message.is-primary,html.theme--documenter-dark .docstring>section>a.message.docs-sourcelink{background-color:#f1f5f9}html.theme--documenter-dark .message.is-primary .message-header,html.theme--documenter-dark .docstring>section>a.message.docs-sourcelink .message-header{background-color:#375a7f;color:#fff}html.theme--documenter-dark .message.is-primary .message-body,html.theme--documenter-dark .docstring>section>a.message.docs-sourcelink .message-body{border-color:#375a7f;color:#4d7eb2}html.theme--documenter-dark .message.is-link{background-color:#edfdf9}html.theme--documenter-dark .message.is-link .message-header{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .message.is-link .message-body{border-color:#1abc9c;color:#15987e}html.theme--documenter-dark .message.is-info{background-color:#ebf7ff}html.theme--documenter-dark .message.is-info .message-header{background-color:#024c7d;color:#fff}html.theme--documenter-dark .message.is-info .message-body{border-color:#024c7d;color:#0e9dfb}html.theme--documenter-dark .message.is-success{background-color:#ebfff3}html.theme--documenter-dark .message.is-success .message-header{background-color:#008438;color:#fff}html.theme--documenter-dark .message.is-success .message-body{border-color:#008438;color:#00eb64}html.theme--documenter-dark .message.is-warning{background-color:#fffaeb}html.theme--documenter-dark .message.is-warning .message-header{background-color:#ad8100;color:#fff}html.theme--documenter-dark .message.is-warning .message-body{border-color:#ad8100;color:#d19c00}html.theme--documenter-dark .message.is-danger{background-color:#fdeeec}html.theme--documenter-dark .message.is-danger .message-header{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .message.is-danger .message-body{border-color:#9e1b0d;color:#ec311d}html.theme--documenter-dark .message-header{align-items:center;background-color:#fff;border-radius:.4em .4em 0 0;color:rgba(0,0,0,0.7);display:flex;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.75em 1em;position:relative}html.theme--documenter-dark .message-header .delete{flex-grow:0;flex-shrink:0;margin-left:.75em}html.theme--documenter-dark .message-header+.message-body{border-width:0;border-top-left-radius:0;border-top-right-radius:0}html.theme--documenter-dark .message-body{border-color:#5e6d6f;border-radius:.4em;border-style:solid;border-width:0 0 0 4px;color:#fff;padding:1.25em 1.5em}html.theme--documenter-dark .message-body code,html.theme--documenter-dark .message-body pre{background-color:#fff}html.theme--documenter-dark .message-body pre code{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .modal{align-items:center;display:none;flex-direction:column;justify-content:center;overflow:hidden;position:fixed;z-index:40}html.theme--documenter-dark .modal.is-active{display:flex}html.theme--documenter-dark .modal-background{background-color:rgba(10,10,10,0.86)}html.theme--documenter-dark .modal-content,html.theme--documenter-dark .modal-card{margin:0 20px;max-height:calc(100vh - 160px);overflow:auto;position:relative;width:100%}@media screen and (min-width: 769px){html.theme--documenter-dark .modal-content,html.theme--documenter-dark .modal-card{margin:0 auto;max-height:calc(100vh - 40px);width:640px}}html.theme--documenter-dark .modal-close{background:none;height:40px;position:fixed;right:20px;top:20px;width:40px}html.theme--documenter-dark .modal-card{display:flex;flex-direction:column;max-height:calc(100vh - 40px);overflow:hidden;-ms-overflow-y:visible}html.theme--documenter-dark .modal-card-head,html.theme--documenter-dark .modal-card-foot{align-items:center;background-color:#282f2f;display:flex;flex-shrink:0;justify-content:flex-start;padding:20px;position:relative}html.theme--documenter-dark .modal-card-head{border-bottom:1px solid #5e6d6f;border-top-left-radius:8px;border-top-right-radius:8px}html.theme--documenter-dark .modal-card-title{color:#f2f2f2;flex-grow:1;flex-shrink:0;font-size:1.5rem;line-height:1}html.theme--documenter-dark .modal-card-foot{border-bottom-left-radius:8px;border-bottom-right-radius:8px;border-top:1px solid #5e6d6f}html.theme--documenter-dark .modal-card-foot .button:not(:last-child){margin-right:.5em}html.theme--documenter-dark .modal-card-body{-webkit-overflow-scrolling:touch;background-color:#fff;flex-grow:1;flex-shrink:1;overflow:auto;padding:20px}html.theme--documenter-dark .navbar{background-color:#375a7f;min-height:4rem;position:relative;z-index:30}html.theme--documenter-dark .navbar.is-white{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link{color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-white .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-white .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link::after{border-color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-burger{color:#0a0a0a}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-white .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-white .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link{color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-white .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-white .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-white .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-white .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-white .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link::after{border-color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-dropdown a.navbar-item.is-active{background-color:#fff;color:#0a0a0a}}html.theme--documenter-dark .navbar.is-black{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-black .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-black .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link.is-active{background-color:#000;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-black .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-black .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-black .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-black .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-black .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-black .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-black .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link.is-active{background-color:#000;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link{background-color:#000;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-dropdown a.navbar-item.is-active{background-color:#0a0a0a;color:#fff}}html.theme--documenter-dark .navbar.is-light{background-color:#ecf0f1;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .navbar.is-light .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link{color:rgba(0,0,0,0.7)}html.theme--documenter-dark .navbar.is-light .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-light .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-light .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link.is-active{background-color:#dde4e6;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link::after{border-color:rgba(0,0,0,0.7)}html.theme--documenter-dark .navbar.is-light .navbar-burger{color:rgba(0,0,0,0.7)}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-light .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-light .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link{color:rgba(0,0,0,0.7)}html.theme--documenter-dark .navbar.is-light .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-light .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-light .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-light .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-light .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-light .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link.is-active{background-color:#dde4e6;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link::after{border-color:rgba(0,0,0,0.7)}html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link{background-color:#dde4e6;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .navbar.is-light .navbar-dropdown a.navbar-item.is-active{background-color:#ecf0f1;color:rgba(0,0,0,0.7)}}html.theme--documenter-dark .navbar.is-dark,html.theme--documenter-dark .content kbd.navbar{background-color:#282f2f;color:#fff}html.theme--documenter-dark .navbar.is-dark .navbar-brand>.navbar-item,html.theme--documenter-dark .content kbd.navbar .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-dark .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .content kbd.navbar .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-dark .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .content kbd.navbar .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-dark .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:focus,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:hover,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link.is-active{background-color:#1d2122;color:#fff}html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link::after,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-dark .navbar-burger,html.theme--documenter-dark .content kbd.navbar .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-dark .navbar-start>.navbar-item,html.theme--documenter-dark .content kbd.navbar .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-dark .navbar-end>.navbar-item,html.theme--documenter-dark .content kbd.navbar .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-dark .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .content kbd.navbar .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-dark .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .content kbd.navbar .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-dark .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:focus,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:hover,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .content kbd.navbar .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-dark .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .content kbd.navbar .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-dark .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:focus,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:hover,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link.is-active{background-color:#1d2122;color:#fff}html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link::after,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link::after,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link{background-color:#1d2122;color:#fff}html.theme--documenter-dark .navbar.is-dark .navbar-dropdown a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-dropdown a.navbar-item.is-active{background-color:#282f2f;color:#fff}}html.theme--documenter-dark .navbar.is-primary,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink{background-color:#375a7f;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-brand>.navbar-item,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-primary .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-primary .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link::after,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-burger,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-primary .navbar-start>.navbar-item,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-primary .navbar-end>.navbar-item,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-primary .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-primary .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-primary .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-primary .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link::after,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link::after,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#375a7f;color:#fff}}html.theme--documenter-dark .navbar.is-link{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-link .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-link .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link.is-active{background-color:#17a689;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-link .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-link .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-link .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-link .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-link .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-link .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-link .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link.is-active{background-color:#17a689;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link{background-color:#17a689;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-dropdown a.navbar-item.is-active{background-color:#1abc9c;color:#fff}}html.theme--documenter-dark .navbar.is-info{background-color:#024c7d;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-info .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-info .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link.is-active{background-color:#023d64;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-info .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-info .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-info .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-info .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-info .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-info .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-info .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link.is-active{background-color:#023d64;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link{background-color:#023d64;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-dropdown a.navbar-item.is-active{background-color:#024c7d;color:#fff}}html.theme--documenter-dark .navbar.is-success{background-color:#008438;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-success .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-success .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link.is-active{background-color:#006b2d;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-success .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-success .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-success .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-success .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-success .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-success .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-success .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link.is-active{background-color:#006b2d;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link{background-color:#006b2d;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-dropdown a.navbar-item.is-active{background-color:#008438;color:#fff}}html.theme--documenter-dark .navbar.is-warning{background-color:#ad8100;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-warning .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-warning .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link.is-active{background-color:#946e00;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-warning .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-warning .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-warning .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-warning .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-warning .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-warning .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link.is-active{background-color:#946e00;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link{background-color:#946e00;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-dropdown a.navbar-item.is-active{background-color:#ad8100;color:#fff}}html.theme--documenter-dark .navbar.is-danger{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-danger .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-danger .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link.is-active{background-color:#86170b;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-danger .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-danger .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-danger .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-danger .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-danger .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-danger .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link.is-active{background-color:#86170b;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link{background-color:#86170b;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-dropdown a.navbar-item.is-active{background-color:#9e1b0d;color:#fff}}html.theme--documenter-dark .navbar>.container{align-items:stretch;display:flex;min-height:4rem;width:100%}html.theme--documenter-dark .navbar.has-shadow{box-shadow:0 2px 0 0 #282f2f}html.theme--documenter-dark .navbar.is-fixed-bottom,html.theme--documenter-dark .navbar.is-fixed-top{left:0;position:fixed;right:0;z-index:30}html.theme--documenter-dark .navbar.is-fixed-bottom{bottom:0}html.theme--documenter-dark .navbar.is-fixed-bottom.has-shadow{box-shadow:0 -2px 0 0 #282f2f}html.theme--documenter-dark .navbar.is-fixed-top{top:0}html.theme--documenter-dark html.has-navbar-fixed-top,html.theme--documenter-dark body.has-navbar-fixed-top{padding-top:4rem}html.theme--documenter-dark html.has-navbar-fixed-bottom,html.theme--documenter-dark body.has-navbar-fixed-bottom{padding-bottom:4rem}html.theme--documenter-dark .navbar-brand,html.theme--documenter-dark .navbar-tabs{align-items:stretch;display:flex;flex-shrink:0;min-height:4rem}html.theme--documenter-dark .navbar-brand a.navbar-item:focus,html.theme--documenter-dark .navbar-brand a.navbar-item:hover{background-color:transparent}html.theme--documenter-dark .navbar-tabs{-webkit-overflow-scrolling:touch;max-width:100vw;overflow-x:auto;overflow-y:hidden}html.theme--documenter-dark .navbar-burger{color:#fff;-moz-appearance:none;-webkit-appearance:none;appearance:none;background:none;border:none;cursor:pointer;display:block;height:4rem;position:relative;width:4rem;margin-left:auto}html.theme--documenter-dark .navbar-burger span{background-color:currentColor;display:block;height:1px;left:calc(50% - 8px);position:absolute;transform-origin:center;transition-duration:86ms;transition-property:background-color, opacity, transform;transition-timing-function:ease-out;width:16px}html.theme--documenter-dark .navbar-burger span:nth-child(1){top:calc(50% - 6px)}html.theme--documenter-dark .navbar-burger span:nth-child(2){top:calc(50% - 1px)}html.theme--documenter-dark .navbar-burger span:nth-child(3){top:calc(50% + 4px)}html.theme--documenter-dark .navbar-burger:hover{background-color:rgba(0,0,0,0.05)}html.theme--documenter-dark .navbar-burger.is-active span:nth-child(1){transform:translateY(5px) rotate(45deg)}html.theme--documenter-dark .navbar-burger.is-active span:nth-child(2){opacity:0}html.theme--documenter-dark .navbar-burger.is-active span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}html.theme--documenter-dark .navbar-menu{display:none}html.theme--documenter-dark .navbar-item,html.theme--documenter-dark .navbar-link{color:#fff;display:block;line-height:1.5;padding:0.5rem 0.75rem;position:relative}html.theme--documenter-dark .navbar-item .icon:only-child,html.theme--documenter-dark .navbar-link .icon:only-child{margin-left:-0.25rem;margin-right:-0.25rem}html.theme--documenter-dark a.navbar-item,html.theme--documenter-dark .navbar-link{cursor:pointer}html.theme--documenter-dark a.navbar-item:focus,html.theme--documenter-dark a.navbar-item:focus-within,html.theme--documenter-dark a.navbar-item:hover,html.theme--documenter-dark a.navbar-item.is-active,html.theme--documenter-dark .navbar-link:focus,html.theme--documenter-dark .navbar-link:focus-within,html.theme--documenter-dark .navbar-link:hover,html.theme--documenter-dark .navbar-link.is-active{background-color:rgba(0,0,0,0);color:#1abc9c}html.theme--documenter-dark .navbar-item{flex-grow:0;flex-shrink:0}html.theme--documenter-dark .navbar-item img{max-height:1.75rem}html.theme--documenter-dark .navbar-item.has-dropdown{padding:0}html.theme--documenter-dark .navbar-item.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .navbar-item.is-tab{border-bottom:1px solid transparent;min-height:4rem;padding-bottom:calc(0.5rem - 1px)}html.theme--documenter-dark .navbar-item.is-tab:focus,html.theme--documenter-dark .navbar-item.is-tab:hover{background-color:rgba(0,0,0,0);border-bottom-color:#1abc9c}html.theme--documenter-dark .navbar-item.is-tab.is-active{background-color:rgba(0,0,0,0);border-bottom-color:#1abc9c;border-bottom-style:solid;border-bottom-width:3px;color:#1abc9c;padding-bottom:calc(0.5rem - 3px)}html.theme--documenter-dark .navbar-content{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .navbar-link:not(.is-arrowless){padding-right:2.5em}html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after{border-color:#fff;margin-top:-0.375em;right:1.125em}html.theme--documenter-dark .navbar-dropdown{font-size:0.875rem;padding-bottom:0.5rem;padding-top:0.5rem}html.theme--documenter-dark .navbar-dropdown .navbar-item{padding-left:1.5rem;padding-right:1.5rem}html.theme--documenter-dark .navbar-divider{background-color:rgba(0,0,0,0.2);border:none;display:none;height:2px;margin:0.5rem 0}@media screen and (max-width: 1055px){html.theme--documenter-dark .navbar>.container{display:block}html.theme--documenter-dark .navbar-brand .navbar-item,html.theme--documenter-dark .navbar-tabs .navbar-item{align-items:center;display:flex}html.theme--documenter-dark .navbar-link::after{display:none}html.theme--documenter-dark .navbar-menu{background-color:#375a7f;box-shadow:0 8px 16px rgba(10,10,10,0.1);padding:0.5rem 0}html.theme--documenter-dark .navbar-menu.is-active{display:block}html.theme--documenter-dark .navbar.is-fixed-bottom-touch,html.theme--documenter-dark .navbar.is-fixed-top-touch{left:0;position:fixed;right:0;z-index:30}html.theme--documenter-dark .navbar.is-fixed-bottom-touch{bottom:0}html.theme--documenter-dark .navbar.is-fixed-bottom-touch.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}html.theme--documenter-dark .navbar.is-fixed-top-touch{top:0}html.theme--documenter-dark .navbar.is-fixed-top .navbar-menu,html.theme--documenter-dark .navbar.is-fixed-top-touch .navbar-menu{-webkit-overflow-scrolling:touch;max-height:calc(100vh - 4rem);overflow:auto}html.theme--documenter-dark html.has-navbar-fixed-top-touch,html.theme--documenter-dark body.has-navbar-fixed-top-touch{padding-top:4rem}html.theme--documenter-dark html.has-navbar-fixed-bottom-touch,html.theme--documenter-dark body.has-navbar-fixed-bottom-touch{padding-bottom:4rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar,html.theme--documenter-dark .navbar-menu,html.theme--documenter-dark .navbar-start,html.theme--documenter-dark .navbar-end{align-items:stretch;display:flex}html.theme--documenter-dark .navbar{min-height:4rem}html.theme--documenter-dark .navbar.is-spaced{padding:1rem 2rem}html.theme--documenter-dark .navbar.is-spaced .navbar-start,html.theme--documenter-dark .navbar.is-spaced .navbar-end{align-items:center}html.theme--documenter-dark .navbar.is-spaced a.navbar-item,html.theme--documenter-dark .navbar.is-spaced .navbar-link{border-radius:.4em}html.theme--documenter-dark .navbar.is-transparent a.navbar-item:focus,html.theme--documenter-dark .navbar.is-transparent a.navbar-item:hover,html.theme--documenter-dark .navbar.is-transparent a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-transparent .navbar-link:focus,html.theme--documenter-dark .navbar.is-transparent .navbar-link:hover,html.theme--documenter-dark .navbar.is-transparent .navbar-link.is-active{background-color:transparent !important}html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link,html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link,html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link,html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link{background-color:transparent !important}html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:focus,html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:hover{background-color:rgba(0,0,0,0);color:#dbdee0}html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active{background-color:rgba(0,0,0,0);color:#1abc9c}html.theme--documenter-dark .navbar-burger{display:none}html.theme--documenter-dark .navbar-item,html.theme--documenter-dark .navbar-link{align-items:center;display:flex}html.theme--documenter-dark .navbar-item.has-dropdown{align-items:stretch}html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-link::after{transform:rotate(135deg) translate(0.25em, -0.25em)}html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-dropdown{border-bottom:1px solid rgba(0,0,0,0.2);border-radius:8px 8px 0 0;border-top:none;bottom:100%;box-shadow:0 -8px 8px rgba(10,10,10,0.1);top:auto}html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown{display:block}.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed{opacity:1;pointer-events:auto;transform:translateY(0)}html.theme--documenter-dark .navbar-menu{flex-grow:1;flex-shrink:0}html.theme--documenter-dark .navbar-start{justify-content:flex-start;margin-right:auto}html.theme--documenter-dark .navbar-end{justify-content:flex-end;margin-left:auto}html.theme--documenter-dark .navbar-dropdown{background-color:#375a7f;border-bottom-left-radius:8px;border-bottom-right-radius:8px;border-top:1px solid rgba(0,0,0,0.2);box-shadow:0 8px 8px rgba(10,10,10,0.1);display:none;font-size:0.875rem;left:0;min-width:100%;position:absolute;top:100%;z-index:20}html.theme--documenter-dark .navbar-dropdown .navbar-item{padding:0.375rem 1rem;white-space:nowrap}html.theme--documenter-dark .navbar-dropdown a.navbar-item{padding-right:3rem}html.theme--documenter-dark .navbar-dropdown a.navbar-item:focus,html.theme--documenter-dark .navbar-dropdown a.navbar-item:hover{background-color:rgba(0,0,0,0);color:#dbdee0}html.theme--documenter-dark .navbar-dropdown a.navbar-item.is-active{background-color:rgba(0,0,0,0);color:#1abc9c}.navbar.is-spaced html.theme--documenter-dark .navbar-dropdown,html.theme--documenter-dark .navbar-dropdown.is-boxed{border-radius:8px;border-top:none;box-shadow:0 8px 8px rgba(10,10,10,0.1), 0 0 0 1px rgba(10,10,10,0.1);display:block;opacity:0;pointer-events:none;top:calc(100% + (-4px));transform:translateY(-5px);transition-duration:86ms;transition-property:opacity, transform}html.theme--documenter-dark .navbar-dropdown.is-right{left:auto;right:0}html.theme--documenter-dark .navbar-divider{display:block}html.theme--documenter-dark .navbar>.container .navbar-brand,html.theme--documenter-dark .container>.navbar .navbar-brand{margin-left:-.75rem}html.theme--documenter-dark .navbar>.container .navbar-menu,html.theme--documenter-dark .container>.navbar .navbar-menu{margin-right:-.75rem}html.theme--documenter-dark .navbar.is-fixed-bottom-desktop,html.theme--documenter-dark .navbar.is-fixed-top-desktop{left:0;position:fixed;right:0;z-index:30}html.theme--documenter-dark .navbar.is-fixed-bottom-desktop{bottom:0}html.theme--documenter-dark .navbar.is-fixed-bottom-desktop.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}html.theme--documenter-dark .navbar.is-fixed-top-desktop{top:0}html.theme--documenter-dark html.has-navbar-fixed-top-desktop,html.theme--documenter-dark body.has-navbar-fixed-top-desktop{padding-top:4rem}html.theme--documenter-dark html.has-navbar-fixed-bottom-desktop,html.theme--documenter-dark body.has-navbar-fixed-bottom-desktop{padding-bottom:4rem}html.theme--documenter-dark html.has-spaced-navbar-fixed-top,html.theme--documenter-dark body.has-spaced-navbar-fixed-top{padding-top:6rem}html.theme--documenter-dark html.has-spaced-navbar-fixed-bottom,html.theme--documenter-dark body.has-spaced-navbar-fixed-bottom{padding-bottom:6rem}html.theme--documenter-dark a.navbar-item.is-active,html.theme--documenter-dark .navbar-link.is-active{color:#1abc9c}html.theme--documenter-dark a.navbar-item.is-active:not(:focus):not(:hover),html.theme--documenter-dark .navbar-link.is-active:not(:focus):not(:hover){background-color:rgba(0,0,0,0)}html.theme--documenter-dark .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar-item.has-dropdown.is-active .navbar-link{background-color:rgba(0,0,0,0)}}html.theme--documenter-dark .hero.is-fullheight-with-navbar{min-height:calc(100vh - 4rem)}html.theme--documenter-dark .pagination{font-size:1rem;margin:-.25rem}html.theme--documenter-dark .pagination.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination{font-size:.75rem}html.theme--documenter-dark .pagination.is-medium{font-size:1.25rem}html.theme--documenter-dark .pagination.is-large{font-size:1.5rem}html.theme--documenter-dark .pagination.is-rounded .pagination-previous,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination .pagination-previous,html.theme--documenter-dark .pagination.is-rounded .pagination-next,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination .pagination-next{padding-left:1em;padding-right:1em;border-radius:9999px}html.theme--documenter-dark .pagination.is-rounded .pagination-link,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination .pagination-link{border-radius:9999px}html.theme--documenter-dark .pagination,html.theme--documenter-dark .pagination-list{align-items:center;display:flex;justify-content:center;text-align:center}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-ellipsis{font-size:1em;justify-content:center;margin:.25rem;padding-left:.5em;padding-right:.5em;text-align:center}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link{border-color:#5e6d6f;color:#1abc9c;min-width:2.5em}html.theme--documenter-dark .pagination-previous:hover,html.theme--documenter-dark .pagination-next:hover,html.theme--documenter-dark .pagination-link:hover{border-color:#8c9b9d;color:#1dd2af}html.theme--documenter-dark .pagination-previous:focus,html.theme--documenter-dark .pagination-next:focus,html.theme--documenter-dark .pagination-link:focus{border-color:#8c9b9d}html.theme--documenter-dark .pagination-previous:active,html.theme--documenter-dark .pagination-next:active,html.theme--documenter-dark .pagination-link:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2)}html.theme--documenter-dark .pagination-previous[disabled],html.theme--documenter-dark .pagination-previous.is-disabled,html.theme--documenter-dark .pagination-next[disabled],html.theme--documenter-dark .pagination-next.is-disabled,html.theme--documenter-dark .pagination-link[disabled],html.theme--documenter-dark .pagination-link.is-disabled{background-color:#5e6d6f;border-color:#5e6d6f;box-shadow:none;color:#fff;opacity:0.5}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next{padding-left:.75em;padding-right:.75em;white-space:nowrap}html.theme--documenter-dark .pagination-link.is-current{background-color:#1abc9c;border-color:#1abc9c;color:#fff}html.theme--documenter-dark .pagination-ellipsis{color:#8c9b9d;pointer-events:none}html.theme--documenter-dark .pagination-list{flex-wrap:wrap}html.theme--documenter-dark .pagination-list li{list-style:none}@media screen and (max-width: 768px){html.theme--documenter-dark .pagination{flex-wrap:wrap}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .pagination-list li{flex-grow:1;flex-shrink:1}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .pagination-list{flex-grow:1;flex-shrink:1;justify-content:flex-start;order:1}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-ellipsis{margin-bottom:0;margin-top:0}html.theme--documenter-dark .pagination-previous{order:2}html.theme--documenter-dark .pagination-next{order:3}html.theme--documenter-dark .pagination{justify-content:space-between;margin-bottom:0;margin-top:0}html.theme--documenter-dark .pagination.is-centered .pagination-previous{order:1}html.theme--documenter-dark .pagination.is-centered .pagination-list{justify-content:center;order:2}html.theme--documenter-dark .pagination.is-centered .pagination-next{order:3}html.theme--documenter-dark .pagination.is-right .pagination-previous{order:1}html.theme--documenter-dark .pagination.is-right .pagination-next{order:2}html.theme--documenter-dark .pagination.is-right .pagination-list{justify-content:flex-end;order:3}}html.theme--documenter-dark .panel{border-radius:8px;box-shadow:#171717;font-size:1rem}html.theme--documenter-dark .panel:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .panel.is-white .panel-heading{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .panel.is-white .panel-tabs a.is-active{border-bottom-color:#fff}html.theme--documenter-dark .panel.is-white .panel-block.is-active .panel-icon{color:#fff}html.theme--documenter-dark .panel.is-black .panel-heading{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .panel.is-black .panel-tabs a.is-active{border-bottom-color:#0a0a0a}html.theme--documenter-dark .panel.is-black .panel-block.is-active .panel-icon{color:#0a0a0a}html.theme--documenter-dark .panel.is-light .panel-heading{background-color:#ecf0f1;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .panel.is-light .panel-tabs a.is-active{border-bottom-color:#ecf0f1}html.theme--documenter-dark .panel.is-light .panel-block.is-active .panel-icon{color:#ecf0f1}html.theme--documenter-dark .panel.is-dark .panel-heading,html.theme--documenter-dark .content kbd.panel .panel-heading{background-color:#282f2f;color:#fff}html.theme--documenter-dark .panel.is-dark .panel-tabs a.is-active,html.theme--documenter-dark .content kbd.panel .panel-tabs a.is-active{border-bottom-color:#282f2f}html.theme--documenter-dark .panel.is-dark .panel-block.is-active .panel-icon,html.theme--documenter-dark .content kbd.panel .panel-block.is-active .panel-icon{color:#282f2f}html.theme--documenter-dark .panel.is-primary .panel-heading,html.theme--documenter-dark .docstring>section>a.panel.docs-sourcelink .panel-heading{background-color:#375a7f;color:#fff}html.theme--documenter-dark .panel.is-primary .panel-tabs a.is-active,html.theme--documenter-dark .docstring>section>a.panel.docs-sourcelink .panel-tabs a.is-active{border-bottom-color:#375a7f}html.theme--documenter-dark .panel.is-primary .panel-block.is-active .panel-icon,html.theme--documenter-dark .docstring>section>a.panel.docs-sourcelink .panel-block.is-active .panel-icon{color:#375a7f}html.theme--documenter-dark .panel.is-link .panel-heading{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .panel.is-link .panel-tabs a.is-active{border-bottom-color:#1abc9c}html.theme--documenter-dark .panel.is-link .panel-block.is-active .panel-icon{color:#1abc9c}html.theme--documenter-dark .panel.is-info .panel-heading{background-color:#024c7d;color:#fff}html.theme--documenter-dark .panel.is-info .panel-tabs a.is-active{border-bottom-color:#024c7d}html.theme--documenter-dark .panel.is-info .panel-block.is-active .panel-icon{color:#024c7d}html.theme--documenter-dark .panel.is-success .panel-heading{background-color:#008438;color:#fff}html.theme--documenter-dark .panel.is-success .panel-tabs a.is-active{border-bottom-color:#008438}html.theme--documenter-dark .panel.is-success .panel-block.is-active .panel-icon{color:#008438}html.theme--documenter-dark .panel.is-warning .panel-heading{background-color:#ad8100;color:#fff}html.theme--documenter-dark .panel.is-warning .panel-tabs a.is-active{border-bottom-color:#ad8100}html.theme--documenter-dark .panel.is-warning .panel-block.is-active .panel-icon{color:#ad8100}html.theme--documenter-dark .panel.is-danger .panel-heading{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .panel.is-danger .panel-tabs a.is-active{border-bottom-color:#9e1b0d}html.theme--documenter-dark .panel.is-danger .panel-block.is-active .panel-icon{color:#9e1b0d}html.theme--documenter-dark .panel-tabs:not(:last-child),html.theme--documenter-dark .panel-block:not(:last-child){border-bottom:1px solid #ededed}html.theme--documenter-dark .panel-heading{background-color:#343c3d;border-radius:8px 8px 0 0;color:#f2f2f2;font-size:1.25em;font-weight:700;line-height:1.25;padding:0.75em 1em}html.theme--documenter-dark .panel-tabs{align-items:flex-end;display:flex;font-size:.875em;justify-content:center}html.theme--documenter-dark .panel-tabs a{border-bottom:1px solid #5e6d6f;margin-bottom:-1px;padding:0.5em}html.theme--documenter-dark .panel-tabs a.is-active{border-bottom-color:#343c3d;color:#17a689}html.theme--documenter-dark .panel-list a{color:#fff}html.theme--documenter-dark .panel-list a:hover{color:#1abc9c}html.theme--documenter-dark .panel-block{align-items:center;color:#f2f2f2;display:flex;justify-content:flex-start;padding:0.5em 0.75em}html.theme--documenter-dark .panel-block input[type="checkbox"]{margin-right:.75em}html.theme--documenter-dark .panel-block>.control{flex-grow:1;flex-shrink:1;width:100%}html.theme--documenter-dark .panel-block.is-wrapped{flex-wrap:wrap}html.theme--documenter-dark .panel-block.is-active{border-left-color:#1abc9c;color:#17a689}html.theme--documenter-dark .panel-block.is-active .panel-icon{color:#1abc9c}html.theme--documenter-dark .panel-block:last-child{border-bottom-left-radius:8px;border-bottom-right-radius:8px}html.theme--documenter-dark a.panel-block,html.theme--documenter-dark label.panel-block{cursor:pointer}html.theme--documenter-dark a.panel-block:hover,html.theme--documenter-dark label.panel-block:hover{background-color:#282f2f}html.theme--documenter-dark .panel-icon{display:inline-block;font-size:14px;height:1em;line-height:1em;text-align:center;vertical-align:top;width:1em;color:#fff;margin-right:.75em}html.theme--documenter-dark .panel-icon .fa{font-size:inherit;line-height:inherit}html.theme--documenter-dark .tabs{-webkit-overflow-scrolling:touch;align-items:stretch;display:flex;font-size:1rem;justify-content:space-between;overflow:hidden;overflow-x:auto;white-space:nowrap}html.theme--documenter-dark .tabs a{align-items:center;border-bottom-color:#5e6d6f;border-bottom-style:solid;border-bottom-width:1px;color:#fff;display:flex;justify-content:center;margin-bottom:-1px;padding:0.5em 1em;vertical-align:top}html.theme--documenter-dark .tabs a:hover{border-bottom-color:#f2f2f2;color:#f2f2f2}html.theme--documenter-dark .tabs li{display:block}html.theme--documenter-dark .tabs li.is-active a{border-bottom-color:#1abc9c;color:#1abc9c}html.theme--documenter-dark .tabs ul{align-items:center;border-bottom-color:#5e6d6f;border-bottom-style:solid;border-bottom-width:1px;display:flex;flex-grow:1;flex-shrink:0;justify-content:flex-start}html.theme--documenter-dark .tabs ul.is-left{padding-right:0.75em}html.theme--documenter-dark .tabs ul.is-center{flex:none;justify-content:center;padding-left:0.75em;padding-right:0.75em}html.theme--documenter-dark .tabs ul.is-right{justify-content:flex-end;padding-left:0.75em}html.theme--documenter-dark .tabs .icon:first-child{margin-right:.5em}html.theme--documenter-dark .tabs .icon:last-child{margin-left:.5em}html.theme--documenter-dark .tabs.is-centered ul{justify-content:center}html.theme--documenter-dark .tabs.is-right ul{justify-content:flex-end}html.theme--documenter-dark .tabs.is-boxed a{border:1px solid transparent;border-radius:.4em .4em 0 0}html.theme--documenter-dark .tabs.is-boxed a:hover{background-color:#282f2f;border-bottom-color:#5e6d6f}html.theme--documenter-dark .tabs.is-boxed li.is-active a{background-color:#fff;border-color:#5e6d6f;border-bottom-color:rgba(0,0,0,0) !important}html.theme--documenter-dark .tabs.is-fullwidth li{flex-grow:1;flex-shrink:0}html.theme--documenter-dark .tabs.is-toggle a{border-color:#5e6d6f;border-style:solid;border-width:1px;margin-bottom:0;position:relative}html.theme--documenter-dark .tabs.is-toggle a:hover{background-color:#282f2f;border-color:#8c9b9d;z-index:2}html.theme--documenter-dark .tabs.is-toggle li+li{margin-left:-1px}html.theme--documenter-dark .tabs.is-toggle li:first-child a{border-top-left-radius:.4em;border-bottom-left-radius:.4em}html.theme--documenter-dark .tabs.is-toggle li:last-child a{border-top-right-radius:.4em;border-bottom-right-radius:.4em}html.theme--documenter-dark .tabs.is-toggle li.is-active a{background-color:#1abc9c;border-color:#1abc9c;color:#fff;z-index:1}html.theme--documenter-dark .tabs.is-toggle ul{border-bottom:none}html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:first-child a{border-bottom-left-radius:9999px;border-top-left-radius:9999px;padding-left:1.25em}html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:last-child a{border-bottom-right-radius:9999px;border-top-right-radius:9999px;padding-right:1.25em}html.theme--documenter-dark .tabs.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.tabs{font-size:.75rem}html.theme--documenter-dark .tabs.is-medium{font-size:1.25rem}html.theme--documenter-dark .tabs.is-large{font-size:1.5rem}html.theme--documenter-dark .column{display:block;flex-basis:0;flex-grow:1;flex-shrink:1;padding:.75rem}.columns.is-mobile>html.theme--documenter-dark .column.is-narrow{flex:none;width:unset}.columns.is-mobile>html.theme--documenter-dark .column.is-full{flex:none;width:100%}.columns.is-mobile>html.theme--documenter-dark .column.is-three-quarters{flex:none;width:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-two-thirds{flex:none;width:66.6666%}.columns.is-mobile>html.theme--documenter-dark .column.is-half{flex:none;width:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-one-third{flex:none;width:33.3333%}.columns.is-mobile>html.theme--documenter-dark .column.is-one-quarter{flex:none;width:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-one-fifth{flex:none;width:20%}.columns.is-mobile>html.theme--documenter-dark .column.is-two-fifths{flex:none;width:40%}.columns.is-mobile>html.theme--documenter-dark .column.is-three-fifths{flex:none;width:60%}.columns.is-mobile>html.theme--documenter-dark .column.is-four-fifths{flex:none;width:80%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-three-quarters{margin-left:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-two-thirds{margin-left:66.6666%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-half{margin-left:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-one-third{margin-left:33.3333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-one-quarter{margin-left:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-one-fifth{margin-left:20%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-two-fifths{margin-left:40%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-three-fifths{margin-left:60%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-four-fifths{margin-left:80%}.columns.is-mobile>html.theme--documenter-dark .column.is-0{flex:none;width:0%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-0{margin-left:0%}.columns.is-mobile>html.theme--documenter-dark .column.is-1{flex:none;width:8.33333337%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-1{margin-left:8.33333337%}.columns.is-mobile>html.theme--documenter-dark .column.is-2{flex:none;width:16.66666674%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-2{margin-left:16.66666674%}.columns.is-mobile>html.theme--documenter-dark .column.is-3{flex:none;width:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-3{margin-left:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-4{flex:none;width:33.33333337%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-4{margin-left:33.33333337%}.columns.is-mobile>html.theme--documenter-dark .column.is-5{flex:none;width:41.66666674%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-5{margin-left:41.66666674%}.columns.is-mobile>html.theme--documenter-dark .column.is-6{flex:none;width:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-6{margin-left:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-7{flex:none;width:58.33333337%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-7{margin-left:58.33333337%}.columns.is-mobile>html.theme--documenter-dark .column.is-8{flex:none;width:66.66666674%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-8{margin-left:66.66666674%}.columns.is-mobile>html.theme--documenter-dark .column.is-9{flex:none;width:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-9{margin-left:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-10{flex:none;width:83.33333337%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-10{margin-left:83.33333337%}.columns.is-mobile>html.theme--documenter-dark .column.is-11{flex:none;width:91.66666674%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-11{margin-left:91.66666674%}.columns.is-mobile>html.theme--documenter-dark .column.is-12{flex:none;width:100%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-12{margin-left:100%}@media screen and (max-width: 768px){html.theme--documenter-dark .column.is-narrow-mobile{flex:none;width:unset}html.theme--documenter-dark .column.is-full-mobile{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-mobile{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-mobile{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-mobile{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-mobile{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-mobile{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-mobile{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-mobile{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-mobile{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-mobile{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-mobile{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-mobile{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-mobile{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-mobile{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-mobile{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-mobile{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-mobile{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-mobile{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-mobile{margin-left:80%}html.theme--documenter-dark .column.is-0-mobile{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-mobile{margin-left:0%}html.theme--documenter-dark .column.is-1-mobile{flex:none;width:8.33333337%}html.theme--documenter-dark .column.is-offset-1-mobile{margin-left:8.33333337%}html.theme--documenter-dark .column.is-2-mobile{flex:none;width:16.66666674%}html.theme--documenter-dark .column.is-offset-2-mobile{margin-left:16.66666674%}html.theme--documenter-dark .column.is-3-mobile{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-mobile{margin-left:25%}html.theme--documenter-dark .column.is-4-mobile{flex:none;width:33.33333337%}html.theme--documenter-dark .column.is-offset-4-mobile{margin-left:33.33333337%}html.theme--documenter-dark .column.is-5-mobile{flex:none;width:41.66666674%}html.theme--documenter-dark .column.is-offset-5-mobile{margin-left:41.66666674%}html.theme--documenter-dark .column.is-6-mobile{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-mobile{margin-left:50%}html.theme--documenter-dark .column.is-7-mobile{flex:none;width:58.33333337%}html.theme--documenter-dark .column.is-offset-7-mobile{margin-left:58.33333337%}html.theme--documenter-dark .column.is-8-mobile{flex:none;width:66.66666674%}html.theme--documenter-dark .column.is-offset-8-mobile{margin-left:66.66666674%}html.theme--documenter-dark .column.is-9-mobile{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-mobile{margin-left:75%}html.theme--documenter-dark .column.is-10-mobile{flex:none;width:83.33333337%}html.theme--documenter-dark .column.is-offset-10-mobile{margin-left:83.33333337%}html.theme--documenter-dark .column.is-11-mobile{flex:none;width:91.66666674%}html.theme--documenter-dark .column.is-offset-11-mobile{margin-left:91.66666674%}html.theme--documenter-dark .column.is-12-mobile{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-mobile{margin-left:100%}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .column.is-narrow,html.theme--documenter-dark .column.is-narrow-tablet{flex:none;width:unset}html.theme--documenter-dark .column.is-full,html.theme--documenter-dark .column.is-full-tablet{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters,html.theme--documenter-dark .column.is-three-quarters-tablet{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds,html.theme--documenter-dark .column.is-two-thirds-tablet{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half,html.theme--documenter-dark .column.is-half-tablet{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third,html.theme--documenter-dark .column.is-one-third-tablet{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter,html.theme--documenter-dark .column.is-one-quarter-tablet{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth,html.theme--documenter-dark .column.is-one-fifth-tablet{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths,html.theme--documenter-dark .column.is-two-fifths-tablet{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths,html.theme--documenter-dark .column.is-three-fifths-tablet{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths,html.theme--documenter-dark .column.is-four-fifths-tablet{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters,html.theme--documenter-dark .column.is-offset-three-quarters-tablet{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds,html.theme--documenter-dark .column.is-offset-two-thirds-tablet{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half,html.theme--documenter-dark .column.is-offset-half-tablet{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third,html.theme--documenter-dark .column.is-offset-one-third-tablet{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter,html.theme--documenter-dark .column.is-offset-one-quarter-tablet{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth,html.theme--documenter-dark .column.is-offset-one-fifth-tablet{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths,html.theme--documenter-dark .column.is-offset-two-fifths-tablet{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths,html.theme--documenter-dark .column.is-offset-three-fifths-tablet{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths,html.theme--documenter-dark .column.is-offset-four-fifths-tablet{margin-left:80%}html.theme--documenter-dark .column.is-0,html.theme--documenter-dark .column.is-0-tablet{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0,html.theme--documenter-dark .column.is-offset-0-tablet{margin-left:0%}html.theme--documenter-dark .column.is-1,html.theme--documenter-dark .column.is-1-tablet{flex:none;width:8.33333337%}html.theme--documenter-dark .column.is-offset-1,html.theme--documenter-dark .column.is-offset-1-tablet{margin-left:8.33333337%}html.theme--documenter-dark .column.is-2,html.theme--documenter-dark .column.is-2-tablet{flex:none;width:16.66666674%}html.theme--documenter-dark .column.is-offset-2,html.theme--documenter-dark .column.is-offset-2-tablet{margin-left:16.66666674%}html.theme--documenter-dark .column.is-3,html.theme--documenter-dark .column.is-3-tablet{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3,html.theme--documenter-dark .column.is-offset-3-tablet{margin-left:25%}html.theme--documenter-dark .column.is-4,html.theme--documenter-dark .column.is-4-tablet{flex:none;width:33.33333337%}html.theme--documenter-dark .column.is-offset-4,html.theme--documenter-dark .column.is-offset-4-tablet{margin-left:33.33333337%}html.theme--documenter-dark .column.is-5,html.theme--documenter-dark .column.is-5-tablet{flex:none;width:41.66666674%}html.theme--documenter-dark .column.is-offset-5,html.theme--documenter-dark .column.is-offset-5-tablet{margin-left:41.66666674%}html.theme--documenter-dark .column.is-6,html.theme--documenter-dark .column.is-6-tablet{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6,html.theme--documenter-dark .column.is-offset-6-tablet{margin-left:50%}html.theme--documenter-dark .column.is-7,html.theme--documenter-dark .column.is-7-tablet{flex:none;width:58.33333337%}html.theme--documenter-dark .column.is-offset-7,html.theme--documenter-dark .column.is-offset-7-tablet{margin-left:58.33333337%}html.theme--documenter-dark .column.is-8,html.theme--documenter-dark .column.is-8-tablet{flex:none;width:66.66666674%}html.theme--documenter-dark .column.is-offset-8,html.theme--documenter-dark .column.is-offset-8-tablet{margin-left:66.66666674%}html.theme--documenter-dark .column.is-9,html.theme--documenter-dark .column.is-9-tablet{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9,html.theme--documenter-dark .column.is-offset-9-tablet{margin-left:75%}html.theme--documenter-dark .column.is-10,html.theme--documenter-dark .column.is-10-tablet{flex:none;width:83.33333337%}html.theme--documenter-dark .column.is-offset-10,html.theme--documenter-dark .column.is-offset-10-tablet{margin-left:83.33333337%}html.theme--documenter-dark .column.is-11,html.theme--documenter-dark .column.is-11-tablet{flex:none;width:91.66666674%}html.theme--documenter-dark .column.is-offset-11,html.theme--documenter-dark .column.is-offset-11-tablet{margin-left:91.66666674%}html.theme--documenter-dark .column.is-12,html.theme--documenter-dark .column.is-12-tablet{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12,html.theme--documenter-dark .column.is-offset-12-tablet{margin-left:100%}}@media screen and (max-width: 1055px){html.theme--documenter-dark .column.is-narrow-touch{flex:none;width:unset}html.theme--documenter-dark .column.is-full-touch{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-touch{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-touch{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-touch{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-touch{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-touch{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-touch{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-touch{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-touch{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-touch{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-touch{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-touch{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-touch{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-touch{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-touch{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-touch{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-touch{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-touch{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-touch{margin-left:80%}html.theme--documenter-dark .column.is-0-touch{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-touch{margin-left:0%}html.theme--documenter-dark .column.is-1-touch{flex:none;width:8.33333337%}html.theme--documenter-dark .column.is-offset-1-touch{margin-left:8.33333337%}html.theme--documenter-dark .column.is-2-touch{flex:none;width:16.66666674%}html.theme--documenter-dark .column.is-offset-2-touch{margin-left:16.66666674%}html.theme--documenter-dark .column.is-3-touch{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-touch{margin-left:25%}html.theme--documenter-dark .column.is-4-touch{flex:none;width:33.33333337%}html.theme--documenter-dark .column.is-offset-4-touch{margin-left:33.33333337%}html.theme--documenter-dark .column.is-5-touch{flex:none;width:41.66666674%}html.theme--documenter-dark .column.is-offset-5-touch{margin-left:41.66666674%}html.theme--documenter-dark .column.is-6-touch{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-touch{margin-left:50%}html.theme--documenter-dark .column.is-7-touch{flex:none;width:58.33333337%}html.theme--documenter-dark .column.is-offset-7-touch{margin-left:58.33333337%}html.theme--documenter-dark .column.is-8-touch{flex:none;width:66.66666674%}html.theme--documenter-dark .column.is-offset-8-touch{margin-left:66.66666674%}html.theme--documenter-dark .column.is-9-touch{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-touch{margin-left:75%}html.theme--documenter-dark .column.is-10-touch{flex:none;width:83.33333337%}html.theme--documenter-dark .column.is-offset-10-touch{margin-left:83.33333337%}html.theme--documenter-dark .column.is-11-touch{flex:none;width:91.66666674%}html.theme--documenter-dark .column.is-offset-11-touch{margin-left:91.66666674%}html.theme--documenter-dark .column.is-12-touch{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-touch{margin-left:100%}}@media screen and (min-width: 1056px){html.theme--documenter-dark .column.is-narrow-desktop{flex:none;width:unset}html.theme--documenter-dark .column.is-full-desktop{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-desktop{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-desktop{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-desktop{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-desktop{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-desktop{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-desktop{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-desktop{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-desktop{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-desktop{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-desktop{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-desktop{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-desktop{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-desktop{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-desktop{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-desktop{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-desktop{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-desktop{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-desktop{margin-left:80%}html.theme--documenter-dark .column.is-0-desktop{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-desktop{margin-left:0%}html.theme--documenter-dark .column.is-1-desktop{flex:none;width:8.33333337%}html.theme--documenter-dark .column.is-offset-1-desktop{margin-left:8.33333337%}html.theme--documenter-dark .column.is-2-desktop{flex:none;width:16.66666674%}html.theme--documenter-dark .column.is-offset-2-desktop{margin-left:16.66666674%}html.theme--documenter-dark .column.is-3-desktop{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-desktop{margin-left:25%}html.theme--documenter-dark .column.is-4-desktop{flex:none;width:33.33333337%}html.theme--documenter-dark .column.is-offset-4-desktop{margin-left:33.33333337%}html.theme--documenter-dark .column.is-5-desktop{flex:none;width:41.66666674%}html.theme--documenter-dark .column.is-offset-5-desktop{margin-left:41.66666674%}html.theme--documenter-dark .column.is-6-desktop{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-desktop{margin-left:50%}html.theme--documenter-dark .column.is-7-desktop{flex:none;width:58.33333337%}html.theme--documenter-dark .column.is-offset-7-desktop{margin-left:58.33333337%}html.theme--documenter-dark .column.is-8-desktop{flex:none;width:66.66666674%}html.theme--documenter-dark .column.is-offset-8-desktop{margin-left:66.66666674%}html.theme--documenter-dark .column.is-9-desktop{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-desktop{margin-left:75%}html.theme--documenter-dark .column.is-10-desktop{flex:none;width:83.33333337%}html.theme--documenter-dark .column.is-offset-10-desktop{margin-left:83.33333337%}html.theme--documenter-dark .column.is-11-desktop{flex:none;width:91.66666674%}html.theme--documenter-dark .column.is-offset-11-desktop{margin-left:91.66666674%}html.theme--documenter-dark .column.is-12-desktop{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-desktop{margin-left:100%}}@media screen and (min-width: 1216px){html.theme--documenter-dark .column.is-narrow-widescreen{flex:none;width:unset}html.theme--documenter-dark .column.is-full-widescreen{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-widescreen{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-widescreen{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-widescreen{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-widescreen{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-widescreen{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-widescreen{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-widescreen{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-widescreen{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-widescreen{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-widescreen{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-widescreen{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-widescreen{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-widescreen{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-widescreen{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-widescreen{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-widescreen{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-widescreen{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-widescreen{margin-left:80%}html.theme--documenter-dark .column.is-0-widescreen{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-widescreen{margin-left:0%}html.theme--documenter-dark .column.is-1-widescreen{flex:none;width:8.33333337%}html.theme--documenter-dark .column.is-offset-1-widescreen{margin-left:8.33333337%}html.theme--documenter-dark .column.is-2-widescreen{flex:none;width:16.66666674%}html.theme--documenter-dark .column.is-offset-2-widescreen{margin-left:16.66666674%}html.theme--documenter-dark .column.is-3-widescreen{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-widescreen{margin-left:25%}html.theme--documenter-dark .column.is-4-widescreen{flex:none;width:33.33333337%}html.theme--documenter-dark .column.is-offset-4-widescreen{margin-left:33.33333337%}html.theme--documenter-dark .column.is-5-widescreen{flex:none;width:41.66666674%}html.theme--documenter-dark .column.is-offset-5-widescreen{margin-left:41.66666674%}html.theme--documenter-dark .column.is-6-widescreen{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-widescreen{margin-left:50%}html.theme--documenter-dark .column.is-7-widescreen{flex:none;width:58.33333337%}html.theme--documenter-dark .column.is-offset-7-widescreen{margin-left:58.33333337%}html.theme--documenter-dark .column.is-8-widescreen{flex:none;width:66.66666674%}html.theme--documenter-dark .column.is-offset-8-widescreen{margin-left:66.66666674%}html.theme--documenter-dark .column.is-9-widescreen{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-widescreen{margin-left:75%}html.theme--documenter-dark .column.is-10-widescreen{flex:none;width:83.33333337%}html.theme--documenter-dark .column.is-offset-10-widescreen{margin-left:83.33333337%}html.theme--documenter-dark .column.is-11-widescreen{flex:none;width:91.66666674%}html.theme--documenter-dark .column.is-offset-11-widescreen{margin-left:91.66666674%}html.theme--documenter-dark .column.is-12-widescreen{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-widescreen{margin-left:100%}}@media screen and (min-width: 1408px){html.theme--documenter-dark .column.is-narrow-fullhd{flex:none;width:unset}html.theme--documenter-dark .column.is-full-fullhd{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-fullhd{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-fullhd{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-fullhd{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-fullhd{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-fullhd{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-fullhd{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-fullhd{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-fullhd{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-fullhd{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-fullhd{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-fullhd{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-fullhd{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-fullhd{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-fullhd{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-fullhd{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-fullhd{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-fullhd{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-fullhd{margin-left:80%}html.theme--documenter-dark .column.is-0-fullhd{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-fullhd{margin-left:0%}html.theme--documenter-dark .column.is-1-fullhd{flex:none;width:8.33333337%}html.theme--documenter-dark .column.is-offset-1-fullhd{margin-left:8.33333337%}html.theme--documenter-dark .column.is-2-fullhd{flex:none;width:16.66666674%}html.theme--documenter-dark .column.is-offset-2-fullhd{margin-left:16.66666674%}html.theme--documenter-dark .column.is-3-fullhd{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-fullhd{margin-left:25%}html.theme--documenter-dark .column.is-4-fullhd{flex:none;width:33.33333337%}html.theme--documenter-dark .column.is-offset-4-fullhd{margin-left:33.33333337%}html.theme--documenter-dark .column.is-5-fullhd{flex:none;width:41.66666674%}html.theme--documenter-dark .column.is-offset-5-fullhd{margin-left:41.66666674%}html.theme--documenter-dark .column.is-6-fullhd{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-fullhd{margin-left:50%}html.theme--documenter-dark .column.is-7-fullhd{flex:none;width:58.33333337%}html.theme--documenter-dark .column.is-offset-7-fullhd{margin-left:58.33333337%}html.theme--documenter-dark .column.is-8-fullhd{flex:none;width:66.66666674%}html.theme--documenter-dark .column.is-offset-8-fullhd{margin-left:66.66666674%}html.theme--documenter-dark .column.is-9-fullhd{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-fullhd{margin-left:75%}html.theme--documenter-dark .column.is-10-fullhd{flex:none;width:83.33333337%}html.theme--documenter-dark .column.is-offset-10-fullhd{margin-left:83.33333337%}html.theme--documenter-dark .column.is-11-fullhd{flex:none;width:91.66666674%}html.theme--documenter-dark .column.is-offset-11-fullhd{margin-left:91.66666674%}html.theme--documenter-dark .column.is-12-fullhd{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-fullhd{margin-left:100%}}html.theme--documenter-dark .columns{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}html.theme--documenter-dark .columns:last-child{margin-bottom:-.75rem}html.theme--documenter-dark .columns:not(:last-child){margin-bottom:calc(1.5rem - .75rem)}html.theme--documenter-dark .columns.is-centered{justify-content:center}html.theme--documenter-dark .columns.is-gapless{margin-left:0;margin-right:0;margin-top:0}html.theme--documenter-dark .columns.is-gapless>.column{margin:0;padding:0 !important}html.theme--documenter-dark .columns.is-gapless:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .columns.is-gapless:last-child{margin-bottom:0}html.theme--documenter-dark .columns.is-mobile{display:flex}html.theme--documenter-dark .columns.is-multiline{flex-wrap:wrap}html.theme--documenter-dark .columns.is-vcentered{align-items:center}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns:not(.is-desktop){display:flex}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-desktop{display:flex}}html.theme--documenter-dark .columns.is-variable{--columnGap: 0.75rem;margin-left:calc(-1 * var(--columnGap));margin-right:calc(-1 * var(--columnGap))}html.theme--documenter-dark .columns.is-variable>.column{padding-left:var(--columnGap);padding-right:var(--columnGap)}html.theme--documenter-dark .columns.is-variable.is-0{--columnGap: 0rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-0-mobile{--columnGap: 0rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-0-tablet{--columnGap: 0rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-0-tablet-only{--columnGap: 0rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-0-touch{--columnGap: 0rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-0-desktop{--columnGap: 0rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-0-desktop-only{--columnGap: 0rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-0-widescreen{--columnGap: 0rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-0-widescreen-only{--columnGap: 0rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-0-fullhd{--columnGap: 0rem}}html.theme--documenter-dark .columns.is-variable.is-1{--columnGap: .25rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-1-mobile{--columnGap: .25rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-1-tablet{--columnGap: .25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-1-tablet-only{--columnGap: .25rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-1-touch{--columnGap: .25rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-1-desktop{--columnGap: .25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-1-desktop-only{--columnGap: .25rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-1-widescreen{--columnGap: .25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-1-widescreen-only{--columnGap: .25rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-1-fullhd{--columnGap: .25rem}}html.theme--documenter-dark .columns.is-variable.is-2{--columnGap: .5rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-2-mobile{--columnGap: .5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-2-tablet{--columnGap: .5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-2-tablet-only{--columnGap: .5rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-2-touch{--columnGap: .5rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-2-desktop{--columnGap: .5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-2-desktop-only{--columnGap: .5rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-2-widescreen{--columnGap: .5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-2-widescreen-only{--columnGap: .5rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-2-fullhd{--columnGap: .5rem}}html.theme--documenter-dark .columns.is-variable.is-3{--columnGap: .75rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-3-mobile{--columnGap: .75rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-3-tablet{--columnGap: .75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-3-tablet-only{--columnGap: .75rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-3-touch{--columnGap: .75rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-3-desktop{--columnGap: .75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-3-desktop-only{--columnGap: .75rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-3-widescreen{--columnGap: .75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-3-widescreen-only{--columnGap: .75rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-3-fullhd{--columnGap: .75rem}}html.theme--documenter-dark .columns.is-variable.is-4{--columnGap: 1rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-4-mobile{--columnGap: 1rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-4-tablet{--columnGap: 1rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-4-tablet-only{--columnGap: 1rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-4-touch{--columnGap: 1rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-4-desktop{--columnGap: 1rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-4-desktop-only{--columnGap: 1rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-4-widescreen{--columnGap: 1rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-4-widescreen-only{--columnGap: 1rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-4-fullhd{--columnGap: 1rem}}html.theme--documenter-dark .columns.is-variable.is-5{--columnGap: 1.25rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-5-mobile{--columnGap: 1.25rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-5-tablet{--columnGap: 1.25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-5-tablet-only{--columnGap: 1.25rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-5-touch{--columnGap: 1.25rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-5-desktop{--columnGap: 1.25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-5-desktop-only{--columnGap: 1.25rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-5-widescreen{--columnGap: 1.25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-5-widescreen-only{--columnGap: 1.25rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-5-fullhd{--columnGap: 1.25rem}}html.theme--documenter-dark .columns.is-variable.is-6{--columnGap: 1.5rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-6-mobile{--columnGap: 1.5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-6-tablet{--columnGap: 1.5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-6-tablet-only{--columnGap: 1.5rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-6-touch{--columnGap: 1.5rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-6-desktop{--columnGap: 1.5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-6-desktop-only{--columnGap: 1.5rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-6-widescreen{--columnGap: 1.5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-6-widescreen-only{--columnGap: 1.5rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-6-fullhd{--columnGap: 1.5rem}}html.theme--documenter-dark .columns.is-variable.is-7{--columnGap: 1.75rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-7-mobile{--columnGap: 1.75rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-7-tablet{--columnGap: 1.75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-7-tablet-only{--columnGap: 1.75rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-7-touch{--columnGap: 1.75rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-7-desktop{--columnGap: 1.75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-7-desktop-only{--columnGap: 1.75rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-7-widescreen{--columnGap: 1.75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-7-widescreen-only{--columnGap: 1.75rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-7-fullhd{--columnGap: 1.75rem}}html.theme--documenter-dark .columns.is-variable.is-8{--columnGap: 2rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-8-mobile{--columnGap: 2rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-8-tablet{--columnGap: 2rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-8-tablet-only{--columnGap: 2rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-8-touch{--columnGap: 2rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-8-desktop{--columnGap: 2rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-8-desktop-only{--columnGap: 2rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-8-widescreen{--columnGap: 2rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-8-widescreen-only{--columnGap: 2rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-8-fullhd{--columnGap: 2rem}}html.theme--documenter-dark .tile{align-items:stretch;display:block;flex-basis:0;flex-grow:1;flex-shrink:1;min-height:min-content}html.theme--documenter-dark .tile.is-ancestor{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}html.theme--documenter-dark .tile.is-ancestor:last-child{margin-bottom:-.75rem}html.theme--documenter-dark .tile.is-ancestor:not(:last-child){margin-bottom:.75rem}html.theme--documenter-dark .tile.is-child{margin:0 !important}html.theme--documenter-dark .tile.is-parent{padding:.75rem}html.theme--documenter-dark .tile.is-vertical{flex-direction:column}html.theme--documenter-dark .tile.is-vertical>.tile.is-child:not(:last-child){margin-bottom:1.5rem !important}@media screen and (min-width: 769px),print{html.theme--documenter-dark .tile:not(.is-child){display:flex}html.theme--documenter-dark .tile.is-1{flex:none;width:8.33333337%}html.theme--documenter-dark .tile.is-2{flex:none;width:16.66666674%}html.theme--documenter-dark .tile.is-3{flex:none;width:25%}html.theme--documenter-dark .tile.is-4{flex:none;width:33.33333337%}html.theme--documenter-dark .tile.is-5{flex:none;width:41.66666674%}html.theme--documenter-dark .tile.is-6{flex:none;width:50%}html.theme--documenter-dark .tile.is-7{flex:none;width:58.33333337%}html.theme--documenter-dark .tile.is-8{flex:none;width:66.66666674%}html.theme--documenter-dark .tile.is-9{flex:none;width:75%}html.theme--documenter-dark .tile.is-10{flex:none;width:83.33333337%}html.theme--documenter-dark .tile.is-11{flex:none;width:91.66666674%}html.theme--documenter-dark .tile.is-12{flex:none;width:100%}}html.theme--documenter-dark .hero{align-items:stretch;display:flex;flex-direction:column;justify-content:space-between}html.theme--documenter-dark .hero .navbar{background:none}html.theme--documenter-dark .hero .tabs ul{border-bottom:none}html.theme--documenter-dark .hero.is-white{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-white strong{color:inherit}html.theme--documenter-dark .hero.is-white .title{color:#0a0a0a}html.theme--documenter-dark .hero.is-white .subtitle{color:rgba(10,10,10,0.9)}html.theme--documenter-dark .hero.is-white .subtitle a:not(.button),html.theme--documenter-dark .hero.is-white .subtitle strong{color:#0a0a0a}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-white .navbar-menu{background-color:#fff}}html.theme--documenter-dark .hero.is-white .navbar-item,html.theme--documenter-dark .hero.is-white .navbar-link{color:rgba(10,10,10,0.7)}html.theme--documenter-dark .hero.is-white a.navbar-item:hover,html.theme--documenter-dark .hero.is-white a.navbar-item.is-active,html.theme--documenter-dark .hero.is-white .navbar-link:hover,html.theme--documenter-dark .hero.is-white .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .hero.is-white .tabs a{color:#0a0a0a;opacity:0.9}html.theme--documenter-dark .hero.is-white .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-white .tabs li.is-active a{color:#fff !important;opacity:1}html.theme--documenter-dark .hero.is-white .tabs.is-boxed a,html.theme--documenter-dark .hero.is-white .tabs.is-toggle a{color:#0a0a0a}html.theme--documenter-dark .hero.is-white .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-white .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a:hover{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--documenter-dark .hero.is-white.is-bold{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-white.is-bold .navbar-menu{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}}html.theme--documenter-dark .hero.is-black{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-black strong{color:inherit}html.theme--documenter-dark .hero.is-black .title{color:#fff}html.theme--documenter-dark .hero.is-black .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-black .subtitle a:not(.button),html.theme--documenter-dark .hero.is-black .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-black .navbar-menu{background-color:#0a0a0a}}html.theme--documenter-dark .hero.is-black .navbar-item,html.theme--documenter-dark .hero.is-black .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-black a.navbar-item:hover,html.theme--documenter-dark .hero.is-black a.navbar-item.is-active,html.theme--documenter-dark .hero.is-black .navbar-link:hover,html.theme--documenter-dark .hero.is-black .navbar-link.is-active{background-color:#000;color:#fff}html.theme--documenter-dark .hero.is-black .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-black .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-black .tabs li.is-active a{color:#0a0a0a !important;opacity:1}html.theme--documenter-dark .hero.is-black .tabs.is-boxed a,html.theme--documenter-dark .hero.is-black .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-black .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-black .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--documenter-dark .hero.is-black.is-bold{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-black.is-bold .navbar-menu{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}}html.theme--documenter-dark .hero.is-light{background-color:#ecf0f1;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-light strong{color:inherit}html.theme--documenter-dark .hero.is-light .title{color:rgba(0,0,0,0.7)}html.theme--documenter-dark .hero.is-light .subtitle{color:rgba(0,0,0,0.9)}html.theme--documenter-dark .hero.is-light .subtitle a:not(.button),html.theme--documenter-dark .hero.is-light .subtitle strong{color:rgba(0,0,0,0.7)}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-light .navbar-menu{background-color:#ecf0f1}}html.theme--documenter-dark .hero.is-light .navbar-item,html.theme--documenter-dark .hero.is-light .navbar-link{color:rgba(0,0,0,0.7)}html.theme--documenter-dark .hero.is-light a.navbar-item:hover,html.theme--documenter-dark .hero.is-light a.navbar-item.is-active,html.theme--documenter-dark .hero.is-light .navbar-link:hover,html.theme--documenter-dark .hero.is-light .navbar-link.is-active{background-color:#dde4e6;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .hero.is-light .tabs a{color:rgba(0,0,0,0.7);opacity:0.9}html.theme--documenter-dark .hero.is-light .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-light .tabs li.is-active a{color:#ecf0f1 !important;opacity:1}html.theme--documenter-dark .hero.is-light .tabs.is-boxed a,html.theme--documenter-dark .hero.is-light .tabs.is-toggle a{color:rgba(0,0,0,0.7)}html.theme--documenter-dark .hero.is-light .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-light .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a:hover{background-color:rgba(0,0,0,0.7);border-color:rgba(0,0,0,0.7);color:#ecf0f1}html.theme--documenter-dark .hero.is-light.is-bold{background-image:linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-light.is-bold .navbar-menu{background-image:linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%)}}html.theme--documenter-dark .hero.is-dark,html.theme--documenter-dark .content kbd.hero{background-color:#282f2f;color:#fff}html.theme--documenter-dark .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-dark strong,html.theme--documenter-dark .content kbd.hero strong{color:inherit}html.theme--documenter-dark .hero.is-dark .title,html.theme--documenter-dark .content kbd.hero .title{color:#fff}html.theme--documenter-dark .hero.is-dark .subtitle,html.theme--documenter-dark .content kbd.hero .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-dark .subtitle a:not(.button),html.theme--documenter-dark .content kbd.hero .subtitle a:not(.button),html.theme--documenter-dark .hero.is-dark .subtitle strong,html.theme--documenter-dark .content kbd.hero .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-dark .navbar-menu,html.theme--documenter-dark .content kbd.hero .navbar-menu{background-color:#282f2f}}html.theme--documenter-dark .hero.is-dark .navbar-item,html.theme--documenter-dark .content kbd.hero .navbar-item,html.theme--documenter-dark .hero.is-dark .navbar-link,html.theme--documenter-dark .content kbd.hero .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-dark a.navbar-item:hover,html.theme--documenter-dark .content kbd.hero a.navbar-item:hover,html.theme--documenter-dark .hero.is-dark a.navbar-item.is-active,html.theme--documenter-dark .content kbd.hero a.navbar-item.is-active,html.theme--documenter-dark .hero.is-dark .navbar-link:hover,html.theme--documenter-dark .content kbd.hero .navbar-link:hover,html.theme--documenter-dark .hero.is-dark .navbar-link.is-active,html.theme--documenter-dark .content kbd.hero .navbar-link.is-active{background-color:#1d2122;color:#fff}html.theme--documenter-dark .hero.is-dark .tabs a,html.theme--documenter-dark .content kbd.hero .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-dark .tabs a:hover,html.theme--documenter-dark .content kbd.hero .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-dark .tabs li.is-active a,html.theme--documenter-dark .content kbd.hero .tabs li.is-active a{color:#282f2f !important;opacity:1}html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a,html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a,html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a:hover,html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a:hover,html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a,html.theme--documenter-dark .content kbd.hero .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a,html.theme--documenter-dark .content kbd.hero .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#282f2f}html.theme--documenter-dark .hero.is-dark.is-bold,html.theme--documenter-dark .content kbd.hero.is-bold{background-image:linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-dark.is-bold .navbar-menu,html.theme--documenter-dark .content kbd.hero.is-bold .navbar-menu{background-image:linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%)}}html.theme--documenter-dark .hero.is-primary,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink{background-color:#375a7f;color:#fff}html.theme--documenter-dark .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-primary strong,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink strong{color:inherit}html.theme--documenter-dark .hero.is-primary .title,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .title{color:#fff}html.theme--documenter-dark .hero.is-primary .subtitle,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-primary .subtitle a:not(.button),html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .subtitle a:not(.button),html.theme--documenter-dark .hero.is-primary .subtitle strong,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-primary .navbar-menu,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-menu{background-color:#375a7f}}html.theme--documenter-dark .hero.is-primary .navbar-item,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-item,html.theme--documenter-dark .hero.is-primary .navbar-link,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-primary a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink a.navbar-item:hover,html.theme--documenter-dark .hero.is-primary a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink a.navbar-item.is-active,html.theme--documenter-dark .hero.is-primary .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-link:hover,html.theme--documenter-dark .hero.is-primary .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-link.is-active{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .hero.is-primary .tabs a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-primary .tabs a:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-primary .tabs li.is-active a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs li.is-active a{color:#375a7f !important;opacity:1}html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#375a7f}html.theme--documenter-dark .hero.is-primary.is-bold,html.theme--documenter-dark .docstring>section>a.hero.is-bold.docs-sourcelink{background-image:linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-primary.is-bold .navbar-menu,html.theme--documenter-dark .docstring>section>a.hero.is-bold.docs-sourcelink .navbar-menu{background-image:linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%)}}html.theme--documenter-dark .hero.is-link{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-link strong{color:inherit}html.theme--documenter-dark .hero.is-link .title{color:#fff}html.theme--documenter-dark .hero.is-link .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-link .subtitle a:not(.button),html.theme--documenter-dark .hero.is-link .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-link .navbar-menu{background-color:#1abc9c}}html.theme--documenter-dark .hero.is-link .navbar-item,html.theme--documenter-dark .hero.is-link .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-link a.navbar-item:hover,html.theme--documenter-dark .hero.is-link a.navbar-item.is-active,html.theme--documenter-dark .hero.is-link .navbar-link:hover,html.theme--documenter-dark .hero.is-link .navbar-link.is-active{background-color:#17a689;color:#fff}html.theme--documenter-dark .hero.is-link .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-link .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-link .tabs li.is-active a{color:#1abc9c !important;opacity:1}html.theme--documenter-dark .hero.is-link .tabs.is-boxed a,html.theme--documenter-dark .hero.is-link .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-link .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-link .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#1abc9c}html.theme--documenter-dark .hero.is-link.is-bold{background-image:linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-link.is-bold .navbar-menu{background-image:linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%)}}html.theme--documenter-dark .hero.is-info{background-color:#024c7d;color:#fff}html.theme--documenter-dark .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-info strong{color:inherit}html.theme--documenter-dark .hero.is-info .title{color:#fff}html.theme--documenter-dark .hero.is-info .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-info .subtitle a:not(.button),html.theme--documenter-dark .hero.is-info .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-info .navbar-menu{background-color:#024c7d}}html.theme--documenter-dark .hero.is-info .navbar-item,html.theme--documenter-dark .hero.is-info .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-info a.navbar-item:hover,html.theme--documenter-dark .hero.is-info a.navbar-item.is-active,html.theme--documenter-dark .hero.is-info .navbar-link:hover,html.theme--documenter-dark .hero.is-info .navbar-link.is-active{background-color:#023d64;color:#fff}html.theme--documenter-dark .hero.is-info .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-info .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-info .tabs li.is-active a{color:#024c7d !important;opacity:1}html.theme--documenter-dark .hero.is-info .tabs.is-boxed a,html.theme--documenter-dark .hero.is-info .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-info .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-info .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#024c7d}html.theme--documenter-dark .hero.is-info.is-bold{background-image:linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-info.is-bold .navbar-menu{background-image:linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%)}}html.theme--documenter-dark .hero.is-success{background-color:#008438;color:#fff}html.theme--documenter-dark .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-success strong{color:inherit}html.theme--documenter-dark .hero.is-success .title{color:#fff}html.theme--documenter-dark .hero.is-success .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-success .subtitle a:not(.button),html.theme--documenter-dark .hero.is-success .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-success .navbar-menu{background-color:#008438}}html.theme--documenter-dark .hero.is-success .navbar-item,html.theme--documenter-dark .hero.is-success .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-success a.navbar-item:hover,html.theme--documenter-dark .hero.is-success a.navbar-item.is-active,html.theme--documenter-dark .hero.is-success .navbar-link:hover,html.theme--documenter-dark .hero.is-success .navbar-link.is-active{background-color:#006b2d;color:#fff}html.theme--documenter-dark .hero.is-success .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-success .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-success .tabs li.is-active a{color:#008438 !important;opacity:1}html.theme--documenter-dark .hero.is-success .tabs.is-boxed a,html.theme--documenter-dark .hero.is-success .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-success .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-success .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#008438}html.theme--documenter-dark .hero.is-success.is-bold{background-image:linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-success.is-bold .navbar-menu{background-image:linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%)}}html.theme--documenter-dark .hero.is-warning{background-color:#ad8100;color:#fff}html.theme--documenter-dark .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-warning strong{color:inherit}html.theme--documenter-dark .hero.is-warning .title{color:#fff}html.theme--documenter-dark .hero.is-warning .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-warning .subtitle a:not(.button),html.theme--documenter-dark .hero.is-warning .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-warning .navbar-menu{background-color:#ad8100}}html.theme--documenter-dark .hero.is-warning .navbar-item,html.theme--documenter-dark .hero.is-warning .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-warning a.navbar-item:hover,html.theme--documenter-dark .hero.is-warning a.navbar-item.is-active,html.theme--documenter-dark .hero.is-warning .navbar-link:hover,html.theme--documenter-dark .hero.is-warning .navbar-link.is-active{background-color:#946e00;color:#fff}html.theme--documenter-dark .hero.is-warning .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-warning .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-warning .tabs li.is-active a{color:#ad8100 !important;opacity:1}html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#ad8100}html.theme--documenter-dark .hero.is-warning.is-bold{background-image:linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-warning.is-bold .navbar-menu{background-image:linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%)}}html.theme--documenter-dark .hero.is-danger{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-danger strong{color:inherit}html.theme--documenter-dark .hero.is-danger .title{color:#fff}html.theme--documenter-dark .hero.is-danger .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-danger .subtitle a:not(.button),html.theme--documenter-dark .hero.is-danger .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-danger .navbar-menu{background-color:#9e1b0d}}html.theme--documenter-dark .hero.is-danger .navbar-item,html.theme--documenter-dark .hero.is-danger .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-danger a.navbar-item:hover,html.theme--documenter-dark .hero.is-danger a.navbar-item.is-active,html.theme--documenter-dark .hero.is-danger .navbar-link:hover,html.theme--documenter-dark .hero.is-danger .navbar-link.is-active{background-color:#86170b;color:#fff}html.theme--documenter-dark .hero.is-danger .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-danger .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-danger .tabs li.is-active a{color:#9e1b0d !important;opacity:1}html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#9e1b0d}html.theme--documenter-dark .hero.is-danger.is-bold{background-image:linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-danger.is-bold .navbar-menu{background-image:linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%)}}html.theme--documenter-dark .hero.is-small .hero-body,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.hero .hero-body{padding:1.5rem}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero.is-medium .hero-body{padding:9rem 4.5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero.is-large .hero-body{padding:18rem 6rem}}html.theme--documenter-dark .hero.is-halfheight .hero-body,html.theme--documenter-dark .hero.is-fullheight .hero-body,html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body{align-items:center;display:flex}html.theme--documenter-dark .hero.is-halfheight .hero-body>.container,html.theme--documenter-dark .hero.is-fullheight .hero-body>.container,html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body>.container{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .hero.is-halfheight{min-height:50vh}html.theme--documenter-dark .hero.is-fullheight{min-height:100vh}html.theme--documenter-dark .hero-video{overflow:hidden}html.theme--documenter-dark .hero-video video{left:50%;min-height:100%;min-width:100%;position:absolute;top:50%;transform:translate3d(-50%, -50%, 0)}html.theme--documenter-dark .hero-video.is-transparent{opacity:0.3}@media screen and (max-width: 768px){html.theme--documenter-dark .hero-video{display:none}}html.theme--documenter-dark .hero-buttons{margin-top:1.5rem}@media screen and (max-width: 768px){html.theme--documenter-dark .hero-buttons .button{display:flex}html.theme--documenter-dark .hero-buttons .button:not(:last-child){margin-bottom:0.75rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero-buttons{display:flex;justify-content:center}html.theme--documenter-dark .hero-buttons .button:not(:last-child){margin-right:1.5rem}}html.theme--documenter-dark .hero-head,html.theme--documenter-dark .hero-foot{flex-grow:0;flex-shrink:0}html.theme--documenter-dark .hero-body{flex-grow:1;flex-shrink:0;padding:3rem 1.5rem}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero-body{padding:3rem 3rem}}html.theme--documenter-dark .section{padding:3rem 1.5rem}@media screen and (min-width: 1056px){html.theme--documenter-dark .section{padding:3rem 3rem}html.theme--documenter-dark .section.is-medium{padding:9rem 4.5rem}html.theme--documenter-dark .section.is-large{padding:18rem 6rem}}html.theme--documenter-dark .footer{background-color:#282f2f;padding:3rem 1.5rem 6rem}html.theme--documenter-dark hr{height:1px}html.theme--documenter-dark h6{text-transform:uppercase;letter-spacing:0.5px}html.theme--documenter-dark .hero{background-color:#343c3d}html.theme--documenter-dark a{transition:all 200ms ease}html.theme--documenter-dark .button{transition:all 200ms ease;border-width:1px;color:#fff}html.theme--documenter-dark .button.is-active,html.theme--documenter-dark .button.is-focused,html.theme--documenter-dark .button:active,html.theme--documenter-dark .button:focus{box-shadow:0 0 0 2px rgba(140,155,157,0.5)}html.theme--documenter-dark .button.is-white.is-hovered,html.theme--documenter-dark .button.is-white:hover{background-color:#fff}html.theme--documenter-dark .button.is-white.is-active,html.theme--documenter-dark .button.is-white.is-focused,html.theme--documenter-dark .button.is-white:active,html.theme--documenter-dark .button.is-white:focus{border-color:#fff;box-shadow:0 0 0 2px rgba(255,255,255,0.5)}html.theme--documenter-dark .button.is-black.is-hovered,html.theme--documenter-dark .button.is-black:hover{background-color:#1d1d1d}html.theme--documenter-dark .button.is-black.is-active,html.theme--documenter-dark .button.is-black.is-focused,html.theme--documenter-dark .button.is-black:active,html.theme--documenter-dark .button.is-black:focus{border-color:#0a0a0a;box-shadow:0 0 0 2px rgba(10,10,10,0.5)}html.theme--documenter-dark .button.is-light.is-hovered,html.theme--documenter-dark .button.is-light:hover{background-color:#fff}html.theme--documenter-dark .button.is-light.is-active,html.theme--documenter-dark .button.is-light.is-focused,html.theme--documenter-dark .button.is-light:active,html.theme--documenter-dark .button.is-light:focus{border-color:#ecf0f1;box-shadow:0 0 0 2px rgba(236,240,241,0.5)}html.theme--documenter-dark .button.is-dark.is-hovered,html.theme--documenter-dark .content kbd.button.is-hovered,html.theme--documenter-dark .button.is-dark:hover,html.theme--documenter-dark .content kbd.button:hover{background-color:#3a4344}html.theme--documenter-dark .button.is-dark.is-active,html.theme--documenter-dark .content kbd.button.is-active,html.theme--documenter-dark .button.is-dark.is-focused,html.theme--documenter-dark .content kbd.button.is-focused,html.theme--documenter-dark .button.is-dark:active,html.theme--documenter-dark .content kbd.button:active,html.theme--documenter-dark .button.is-dark:focus,html.theme--documenter-dark .content kbd.button:focus{border-color:#282f2f;box-shadow:0 0 0 2px rgba(40,47,47,0.5)}html.theme--documenter-dark .button.is-primary.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-hovered.docs-sourcelink,html.theme--documenter-dark .button.is-primary:hover,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:hover{background-color:#436d9a}html.theme--documenter-dark .button.is-primary.is-active,html.theme--documenter-dark .docstring>section>a.button.is-active.docs-sourcelink,html.theme--documenter-dark .button.is-primary.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-focused.docs-sourcelink,html.theme--documenter-dark .button.is-primary:active,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:active,html.theme--documenter-dark .button.is-primary:focus,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:focus{border-color:#375a7f;box-shadow:0 0 0 2px rgba(55,90,127,0.5)}html.theme--documenter-dark .button.is-link.is-hovered,html.theme--documenter-dark .button.is-link:hover{background-color:#1fdeb8}html.theme--documenter-dark .button.is-link.is-active,html.theme--documenter-dark .button.is-link.is-focused,html.theme--documenter-dark .button.is-link:active,html.theme--documenter-dark .button.is-link:focus{border-color:#1abc9c;box-shadow:0 0 0 2px rgba(26,188,156,0.5)}html.theme--documenter-dark .button.is-info.is-hovered,html.theme--documenter-dark .button.is-info:hover{background-color:#0363a3}html.theme--documenter-dark .button.is-info.is-active,html.theme--documenter-dark .button.is-info.is-focused,html.theme--documenter-dark .button.is-info:active,html.theme--documenter-dark .button.is-info:focus{border-color:#024c7d;box-shadow:0 0 0 2px rgba(2,76,125,0.5)}html.theme--documenter-dark .button.is-success.is-hovered,html.theme--documenter-dark .button.is-success:hover{background-color:#00aa48}html.theme--documenter-dark .button.is-success.is-active,html.theme--documenter-dark .button.is-success.is-focused,html.theme--documenter-dark .button.is-success:active,html.theme--documenter-dark .button.is-success:focus{border-color:#008438;box-shadow:0 0 0 2px rgba(0,132,56,0.5)}html.theme--documenter-dark .button.is-warning.is-hovered,html.theme--documenter-dark .button.is-warning:hover{background-color:#d39e00}html.theme--documenter-dark .button.is-warning.is-active,html.theme--documenter-dark .button.is-warning.is-focused,html.theme--documenter-dark .button.is-warning:active,html.theme--documenter-dark .button.is-warning:focus{border-color:#ad8100;box-shadow:0 0 0 2px rgba(173,129,0,0.5)}html.theme--documenter-dark .button.is-danger.is-hovered,html.theme--documenter-dark .button.is-danger:hover{background-color:#c12110}html.theme--documenter-dark .button.is-danger.is-active,html.theme--documenter-dark .button.is-danger.is-focused,html.theme--documenter-dark .button.is-danger:active,html.theme--documenter-dark .button.is-danger:focus{border-color:#9e1b0d;box-shadow:0 0 0 2px rgba(158,27,13,0.5)}html.theme--documenter-dark .label{color:#dbdee0}html.theme--documenter-dark .button,html.theme--documenter-dark .control.has-icons-left .icon,html.theme--documenter-dark .control.has-icons-right .icon,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .select,html.theme--documenter-dark .select select,html.theme--documenter-dark .textarea{height:2.5em}html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark .textarea{transition:all 200ms ease;box-shadow:none;border-width:1px;padding-left:1em;padding-right:1em}html.theme--documenter-dark .select:after,html.theme--documenter-dark .select select{border-width:1px}html.theme--documenter-dark .control.has-addons .button,html.theme--documenter-dark .control.has-addons .input,html.theme--documenter-dark .control.has-addons #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .control.has-addons form.docs-search>input,html.theme--documenter-dark .control.has-addons .select{margin-right:-1px}html.theme--documenter-dark .notification{background-color:#343c3d}html.theme--documenter-dark .card{box-shadow:none;border:1px solid #343c3d;background-color:#282f2f;border-radius:.4em}html.theme--documenter-dark .card .card-image img{border-radius:.4em .4em 0 0}html.theme--documenter-dark .card .card-header{box-shadow:none;background-color:rgba(18,18,18,0.2);border-radius:.4em .4em 0 0}html.theme--documenter-dark .card .card-footer{background-color:rgba(18,18,18,0.2)}html.theme--documenter-dark .card .card-footer,html.theme--documenter-dark .card .card-footer-item{border-width:1px;border-color:#343c3d}html.theme--documenter-dark .notification.is-white a:not(.button){color:#0a0a0a;text-decoration:underline}html.theme--documenter-dark .notification.is-black a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-light a:not(.button){color:rgba(0,0,0,0.7);text-decoration:underline}html.theme--documenter-dark .notification.is-dark a:not(.button),html.theme--documenter-dark .content kbd.notification a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-primary a:not(.button),html.theme--documenter-dark .docstring>section>a.notification.docs-sourcelink a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-link a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-info a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-success a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-warning a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-danger a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .tag,html.theme--documenter-dark .content kbd,html.theme--documenter-dark .docstring>section>a.docs-sourcelink{border-radius:.4em}html.theme--documenter-dark .menu-list a{transition:all 300ms ease}html.theme--documenter-dark .modal-card-body{background-color:#282f2f}html.theme--documenter-dark .modal-card-foot,html.theme--documenter-dark .modal-card-head{border-color:#343c3d}html.theme--documenter-dark .message-header{font-weight:700;background-color:#343c3d;color:#fff}html.theme--documenter-dark .message-body{border-width:1px;border-color:#343c3d}html.theme--documenter-dark .navbar{border-radius:.4em}html.theme--documenter-dark .navbar.is-transparent{background:none}html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#1abc9c}@media screen and (max-width: 1055px){html.theme--documenter-dark .navbar .navbar-menu{background-color:#375a7f;border-radius:0 0 .4em .4em}}html.theme--documenter-dark .hero .navbar,html.theme--documenter-dark body>.navbar{border-radius:0}html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-previous{border-width:1px}html.theme--documenter-dark .panel-block,html.theme--documenter-dark .panel-heading,html.theme--documenter-dark .panel-tabs{border-width:1px}html.theme--documenter-dark .panel-block:first-child,html.theme--documenter-dark .panel-heading:first-child,html.theme--documenter-dark .panel-tabs:first-child{border-top-width:1px}html.theme--documenter-dark .panel-heading{font-weight:700}html.theme--documenter-dark .panel-tabs a{border-width:1px;margin-bottom:-1px}html.theme--documenter-dark .panel-tabs a.is-active{border-bottom-color:#17a689}html.theme--documenter-dark .panel-block:hover{color:#1dd2af}html.theme--documenter-dark .panel-block:hover .panel-icon{color:#1dd2af}html.theme--documenter-dark .panel-block.is-active .panel-icon{color:#17a689}html.theme--documenter-dark .tabs a{border-bottom-width:1px;margin-bottom:-1px}html.theme--documenter-dark .tabs ul{border-bottom-width:1px}html.theme--documenter-dark .tabs.is-boxed a{border-width:1px}html.theme--documenter-dark .tabs.is-boxed li.is-active a{background-color:#1f2424}html.theme--documenter-dark .tabs.is-toggle li a{border-width:1px;margin-bottom:0}html.theme--documenter-dark .tabs.is-toggle li+li{margin-left:-1px}html.theme--documenter-dark .hero.is-white .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-black .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-light .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-dark .navbar .navbar-dropdown .navbar-item:hover,html.theme--documenter-dark .content kbd.hero .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-primary .navbar .navbar-dropdown .navbar-item:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-link .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-info .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-success .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-warning .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-danger .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark h1 .docs-heading-anchor,html.theme--documenter-dark h1 .docs-heading-anchor:hover,html.theme--documenter-dark h1 .docs-heading-anchor:visited,html.theme--documenter-dark h2 .docs-heading-anchor,html.theme--documenter-dark h2 .docs-heading-anchor:hover,html.theme--documenter-dark h2 .docs-heading-anchor:visited,html.theme--documenter-dark h3 .docs-heading-anchor,html.theme--documenter-dark h3 .docs-heading-anchor:hover,html.theme--documenter-dark h3 .docs-heading-anchor:visited,html.theme--documenter-dark h4 .docs-heading-anchor,html.theme--documenter-dark h4 .docs-heading-anchor:hover,html.theme--documenter-dark h4 .docs-heading-anchor:visited,html.theme--documenter-dark h5 .docs-heading-anchor,html.theme--documenter-dark h5 .docs-heading-anchor:hover,html.theme--documenter-dark h5 .docs-heading-anchor:visited,html.theme--documenter-dark h6 .docs-heading-anchor,html.theme--documenter-dark h6 .docs-heading-anchor:hover,html.theme--documenter-dark h6 .docs-heading-anchor:visited{color:#f2f2f2}html.theme--documenter-dark h1 .docs-heading-anchor-permalink,html.theme--documenter-dark h2 .docs-heading-anchor-permalink,html.theme--documenter-dark h3 .docs-heading-anchor-permalink,html.theme--documenter-dark h4 .docs-heading-anchor-permalink,html.theme--documenter-dark h5 .docs-heading-anchor-permalink,html.theme--documenter-dark h6 .docs-heading-anchor-permalink{visibility:hidden;vertical-align:middle;margin-left:0.5em;font-size:0.7rem}html.theme--documenter-dark h1 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h2 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h3 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h4 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h5 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h6 .docs-heading-anchor-permalink::before{font-family:"Font Awesome 6 Free";font-weight:900;content:"\f0c1"}html.theme--documenter-dark h1:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h2:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h3:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h4:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h5:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h6:hover .docs-heading-anchor-permalink{visibility:visible}html.theme--documenter-dark .docs-light-only{display:none !important}html.theme--documenter-dark pre{position:relative;overflow:hidden}html.theme--documenter-dark pre code,html.theme--documenter-dark pre code.hljs{padding:0 .75rem !important;overflow:auto;display:block}html.theme--documenter-dark pre code:first-of-type,html.theme--documenter-dark pre code.hljs:first-of-type{padding-top:0.5rem !important}html.theme--documenter-dark pre code:last-of-type,html.theme--documenter-dark pre code.hljs:last-of-type{padding-bottom:0.5rem !important}html.theme--documenter-dark pre .copy-button{opacity:0.2;transition:opacity 0.2s;position:absolute;right:0em;top:0em;padding:0.5em;width:2.5em;height:2.5em;background:transparent;border:none;font-family:"Font Awesome 6 Free";color:#fff;cursor:pointer;text-align:center}html.theme--documenter-dark pre .copy-button:focus,html.theme--documenter-dark pre .copy-button:hover{opacity:1;background:rgba(255,255,255,0.1);color:#1abc9c}html.theme--documenter-dark pre .copy-button.success{color:#259a12;opacity:1}html.theme--documenter-dark pre .copy-button.error{color:#cb3c33;opacity:1}html.theme--documenter-dark pre:hover .copy-button{opacity:1}html.theme--documenter-dark .admonition{background-color:#282f2f;border-style:solid;border-width:1px;border-color:#5e6d6f;border-radius:.4em;font-size:1rem}html.theme--documenter-dark .admonition strong{color:currentColor}html.theme--documenter-dark .admonition.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.admonition{font-size:.75rem}html.theme--documenter-dark .admonition.is-medium{font-size:1.25rem}html.theme--documenter-dark .admonition.is-large{font-size:1.5rem}html.theme--documenter-dark .admonition.is-default{background-color:#282f2f;border-color:#5e6d6f}html.theme--documenter-dark .admonition.is-default>.admonition-header{background-color:#5e6d6f;color:#fff}html.theme--documenter-dark .admonition.is-default>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-info{background-color:#282f2f;border-color:#024c7d}html.theme--documenter-dark .admonition.is-info>.admonition-header{background-color:#024c7d;color:#fff}html.theme--documenter-dark .admonition.is-info>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-success{background-color:#282f2f;border-color:#008438}html.theme--documenter-dark .admonition.is-success>.admonition-header{background-color:#008438;color:#fff}html.theme--documenter-dark .admonition.is-success>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-warning{background-color:#282f2f;border-color:#ad8100}html.theme--documenter-dark .admonition.is-warning>.admonition-header{background-color:#ad8100;color:#fff}html.theme--documenter-dark .admonition.is-warning>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-danger{background-color:#282f2f;border-color:#9e1b0d}html.theme--documenter-dark .admonition.is-danger>.admonition-header{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .admonition.is-danger>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-compat{background-color:#282f2f;border-color:#137886}html.theme--documenter-dark .admonition.is-compat>.admonition-header{background-color:#137886;color:#fff}html.theme--documenter-dark .admonition.is-compat>.admonition-body{color:#fff}html.theme--documenter-dark .admonition-header{color:#fff;background-color:#5e6d6f;align-items:center;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.5rem .75rem;position:relative}html.theme--documenter-dark .admonition-header:before{font-family:"Font Awesome 6 Free";font-weight:900;margin-right:.75rem;content:"\f06a"}html.theme--documenter-dark details.admonition.is-details>.admonition-header{list-style:none}html.theme--documenter-dark details.admonition.is-details>.admonition-header:before{font-family:"Font Awesome 6 Free";font-weight:900;content:"\f055"}html.theme--documenter-dark details.admonition.is-details[open]>.admonition-header:before{font-family:"Font Awesome 6 Free";font-weight:900;content:"\f056"}html.theme--documenter-dark .admonition-body{color:#fff;padding:0.5rem .75rem}html.theme--documenter-dark .admonition-body pre{background-color:#282f2f}html.theme--documenter-dark .admonition-body code{background-color:rgba(255,255,255,0.05)}html.theme--documenter-dark .docstring{margin-bottom:1em;background-color:rgba(0,0,0,0);border:1px solid #5e6d6f;box-shadow:none;max-width:100%}html.theme--documenter-dark .docstring>header{cursor:pointer;display:flex;flex-grow:1;align-items:stretch;padding:0.5rem .75rem;background-color:#282f2f;box-shadow:0 0.125em 0.25em rgba(10,10,10,0.1);box-shadow:none;border-bottom:1px solid #5e6d6f;overflow:auto}html.theme--documenter-dark .docstring>header code{background-color:transparent}html.theme--documenter-dark .docstring>header .docstring-article-toggle-button{min-width:1.1rem;padding:0.2rem 0.2rem 0.2rem 0}html.theme--documenter-dark .docstring>header .docstring-binding{margin-right:0.3em}html.theme--documenter-dark .docstring>header .docstring-category{margin-left:0.3em}html.theme--documenter-dark .docstring>section{position:relative;padding:.75rem .75rem;border-bottom:1px solid #5e6d6f}html.theme--documenter-dark .docstring>section:last-child{border-bottom:none}html.theme--documenter-dark .docstring>section>a.docs-sourcelink{transition:opacity 0.3s;opacity:0;position:absolute;right:.375rem;bottom:.375rem}html.theme--documenter-dark .docstring>section>a.docs-sourcelink:focus{opacity:1 !important}html.theme--documenter-dark .docstring:hover>section>a.docs-sourcelink{opacity:0.2}html.theme--documenter-dark .docstring:focus-within>section>a.docs-sourcelink{opacity:0.2}html.theme--documenter-dark .docstring>section:hover a.docs-sourcelink{opacity:1}html.theme--documenter-dark .documenter-example-output{background-color:#1f2424}html.theme--documenter-dark .outdated-warning-overlay{position:fixed;top:0;left:0;right:0;box-shadow:0 0 10px rgba(0,0,0,0.3);z-index:999;background-color:#282f2f;color:#fff;border-bottom:3px solid #9e1b0d;padding:10px 35px;text-align:center;font-size:15px}html.theme--documenter-dark .outdated-warning-overlay .outdated-warning-closer{position:absolute;top:calc(50% - 10px);right:18px;cursor:pointer;width:12px}html.theme--documenter-dark .outdated-warning-overlay a{color:#1abc9c}html.theme--documenter-dark .outdated-warning-overlay a:hover{color:#1dd2af}html.theme--documenter-dark .content pre{border:1px solid #5e6d6f}html.theme--documenter-dark .content code{font-weight:inherit}html.theme--documenter-dark .content a code{color:#1abc9c}html.theme--documenter-dark .content h1 code,html.theme--documenter-dark .content h2 code,html.theme--documenter-dark .content h3 code,html.theme--documenter-dark .content h4 code,html.theme--documenter-dark .content h5 code,html.theme--documenter-dark .content h6 code{color:#f2f2f2}html.theme--documenter-dark .content table{display:block;width:initial;max-width:100%;overflow-x:auto}html.theme--documenter-dark .content blockquote>ul:first-child,html.theme--documenter-dark .content blockquote>ol:first-child,html.theme--documenter-dark .content .admonition-body>ul:first-child,html.theme--documenter-dark .content .admonition-body>ol:first-child{margin-top:0}html.theme--documenter-dark pre,html.theme--documenter-dark code{font-variant-ligatures:no-contextual}html.theme--documenter-dark .breadcrumb a.is-disabled{cursor:default;pointer-events:none}html.theme--documenter-dark .breadcrumb a.is-disabled,html.theme--documenter-dark .breadcrumb a.is-disabled:hover{color:#f2f2f2}html.theme--documenter-dark .hljs{background:initial !important}html.theme--documenter-dark .katex .katex-mathml{top:0;right:0}html.theme--documenter-dark .katex-display,html.theme--documenter-dark mjx-container,html.theme--documenter-dark .MathJax_Display{margin:0.5em 0 !important}html.theme--documenter-dark html{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto}html.theme--documenter-dark li.no-marker{list-style:none}html.theme--documenter-dark #documenter .docs-main>article{overflow-wrap:break-word}html.theme--documenter-dark #documenter .docs-main>article .math-container{overflow-x:auto;overflow-y:hidden}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-main{max-width:52rem;margin-left:20rem;padding-right:1rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main{width:100%}html.theme--documenter-dark #documenter .docs-main>article{max-width:52rem;margin-left:auto;margin-right:auto;margin-bottom:1rem;padding:0 1rem}html.theme--documenter-dark #documenter .docs-main>header,html.theme--documenter-dark #documenter .docs-main>nav{max-width:100%;width:100%;margin:0}}html.theme--documenter-dark #documenter .docs-main header.docs-navbar{background-color:#1f2424;border-bottom:1px solid #5e6d6f;z-index:2;min-height:4rem;margin-bottom:1rem;display:flex}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .breadcrumb{flex-grow:1;overflow-x:hidden}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-sidebar-button{display:block;font-size:1.5rem;padding-bottom:0.1rem;margin-right:1rem}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right{display:flex;white-space:nowrap;gap:1rem;align-items:center}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-icon,html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label{display:inline-block}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label{padding:0;margin-left:0.3em}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-navbar-link{margin-left:0.4rem;margin-right:0.4rem}}html.theme--documenter-dark #documenter .docs-main header.docs-navbar>*{margin:auto 0}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main header.docs-navbar{position:sticky;top:0;padding:0 1rem;transition-property:top, box-shadow;-webkit-transition-property:top, box-shadow;transition-duration:0.3s;-webkit-transition-duration:0.3s}html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--not-top{box-shadow:.2rem 0rem .4rem #171717;transition-duration:0.7s;-webkit-transition-duration:0.7s}html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom{top:-4.5rem;transition-duration:0.7s;-webkit-transition-duration:0.7s}}html.theme--documenter-dark #documenter .docs-main section.footnotes{border-top:1px solid #5e6d6f}html.theme--documenter-dark #documenter .docs-main section.footnotes li .tag:first-child,html.theme--documenter-dark #documenter .docs-main section.footnotes li .docstring>section>a.docs-sourcelink:first-child,html.theme--documenter-dark #documenter .docs-main section.footnotes li .content kbd:first-child,html.theme--documenter-dark .content #documenter .docs-main section.footnotes li kbd:first-child{margin-right:1em;margin-bottom:0.4em}html.theme--documenter-dark #documenter .docs-main .docs-footer{display:flex;flex-wrap:wrap;margin-left:0;margin-right:0;border-top:1px solid #5e6d6f;padding-top:1rem;padding-bottom:1rem}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main .docs-footer{padding-left:1rem;padding-right:1rem}}html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage,html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-prevpage{flex-grow:1}html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage{text-align:right}html.theme--documenter-dark #documenter .docs-main .docs-footer .flexbox-break{flex-basis:100%;height:0}html.theme--documenter-dark #documenter .docs-main .docs-footer .footer-message{font-size:0.8em;margin:0.5em auto 0 auto;text-align:center}html.theme--documenter-dark #documenter .docs-sidebar{display:flex;flex-direction:column;color:#fff;background-color:#282f2f;border-right:1px solid #5e6d6f;padding:0;flex:0 0 18rem;z-index:5;font-size:1rem;position:fixed;left:-18rem;width:18rem;height:100%;transition:left 0.3s}html.theme--documenter-dark #documenter .docs-sidebar.visible{left:0;box-shadow:.4rem 0rem .8rem #171717}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-sidebar.visible{box-shadow:none}}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-sidebar{left:0;top:0}}html.theme--documenter-dark #documenter .docs-sidebar .docs-logo{margin-top:1rem;padding:0 1rem}html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img{max-height:6rem;margin:auto}html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name{flex-shrink:0;font-size:1.5rem;font-weight:700;text-align:center;white-space:nowrap;overflow:hidden;padding:0.5rem 0}html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name .docs-autofit{max-width:16.2rem}html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a,html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a:hover{color:#fff}html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector{border-top:1px solid #5e6d6f;display:none;padding:0.5rem}html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector.visible{display:flex}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu{flex-grow:1;user-select:none;border-top:1px solid #5e6d6f;padding-bottom:1.5rem}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu>li>.tocitem{font-weight:bold}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu>li li{font-size:.95rem;margin-left:1em;border-left:1px solid #5e6d6f}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input.collapse-toggle{display:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.collapsed{display:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked~ul.collapsed{display:block}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem{display:flex}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label{flex-grow:2}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron{display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;font-size:.75rem;margin-left:1rem;margin-top:auto;margin-bottom:auto}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before{font-family:"Font Awesome 6 Free";font-weight:900;content:"\f054"}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked~label.tocitem .docs-chevron::before{content:"\f078"}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem{display:block;padding:0.5rem 0.5rem}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem,html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem:hover{color:#fff;background:#282f2f}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu a.tocitem:hover,html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem:hover{color:#fff;background-color:#32393a}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active{border-top:1px solid #5e6d6f;border-bottom:1px solid #5e6d6f;background-color:#1f2424}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem,html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover{background-color:#1f2424;color:#fff}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover{background-color:#32393a;color:#fff}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu>li.is-active:first-child{border-top:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal{margin:0 0.5rem 0.5rem;border-top:1px solid #5e6d6f}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal li{font-size:.85rem;border-left:none;margin-left:0;margin-top:0.5rem}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem{width:100%;padding:0}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before{content:"⚬";margin-right:0.4em}html.theme--documenter-dark #documenter .docs-sidebar form.docs-search{margin:auto;margin-top:0.5rem;margin-bottom:0.5rem}html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{width:14.4rem}html.theme--documenter-dark #documenter .docs-sidebar #documenter-search-query{color:#868c98;width:14.4rem;box-shadow:inset 0 1px 2px rgba(10,10,10,0.1)}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu{overflow-y:auto;-webkit-overflow-scroll:touch}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar{width:.3rem;background:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#3b4445}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover{background:#4e5a5c}}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-sidebar{overflow-y:auto;-webkit-overflow-scroll:touch}html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar{width:.3rem;background:none}html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#3b4445}html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover{background:#4e5a5c}}html.theme--documenter-dark kbd.search-modal-key-hints{border-radius:0.25rem;border:1px solid rgba(245,245,245,0.6);box-shadow:0 2px 0 1px rgba(245,245,245,0.6);cursor:default;font-size:0.9rem;line-height:1.5;min-width:0.75rem;text-align:center;padding:0.1rem 0.3rem;position:relative;top:-1px}html.theme--documenter-dark .search-min-width-50{min-width:50%}html.theme--documenter-dark .search-min-height-100{min-height:100%}html.theme--documenter-dark .search-modal-card-body{max-height:calc(100vh - 15rem)}html.theme--documenter-dark .search-result-link{border-radius:0.7em;transition:all 300ms}html.theme--documenter-dark .search-result-link:hover,html.theme--documenter-dark .search-result-link:focus{background-color:rgba(0,128,128,0.1)}html.theme--documenter-dark .search-result-link .property-search-result-badge,html.theme--documenter-dark .search-result-link .search-filter{transition:all 300ms}html.theme--documenter-dark .property-search-result-badge,html.theme--documenter-dark .search-filter{padding:0.15em 0.5em;font-size:0.8em;font-style:italic;text-transform:none !important;line-height:1.5;color:#f5f5f5;background-color:rgba(51,65,85,0.501961);border-radius:0.6rem}html.theme--documenter-dark .search-result-link:hover .property-search-result-badge,html.theme--documenter-dark .search-result-link:hover .search-filter,html.theme--documenter-dark .search-result-link:focus .property-search-result-badge,html.theme--documenter-dark .search-result-link:focus .search-filter{color:#333;background-color:#f1f5f9}html.theme--documenter-dark .search-filter{color:#333;background-color:#f5f5f5;transition:all 300ms}html.theme--documenter-dark .search-filter:hover,html.theme--documenter-dark .search-filter:focus{color:#333}html.theme--documenter-dark .search-filter-selected{color:#f5f5f5;background-color:rgba(139,0,139,0.5)}html.theme--documenter-dark .search-filter-selected:hover,html.theme--documenter-dark .search-filter-selected:focus{color:#f5f5f5}html.theme--documenter-dark .search-result-highlight{background-color:#ffdd57;color:black}html.theme--documenter-dark .search-divider{border-bottom:1px solid #5e6d6f}html.theme--documenter-dark .search-result-title{width:85%;color:#f5f5f5}html.theme--documenter-dark .search-result-code-title{font-size:0.875rem;font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace}html.theme--documenter-dark #search-modal .modal-card-body::-webkit-scrollbar,html.theme--documenter-dark #search-modal .filter-tabs::-webkit-scrollbar{height:10px;width:10px;background-color:transparent}html.theme--documenter-dark #search-modal .modal-card-body::-webkit-scrollbar-thumb,html.theme--documenter-dark #search-modal .filter-tabs::-webkit-scrollbar-thumb{background-color:gray;border-radius:1rem}html.theme--documenter-dark #search-modal .modal-card-body::-webkit-scrollbar-track,html.theme--documenter-dark #search-modal .filter-tabs::-webkit-scrollbar-track{-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,0.6);background-color:transparent}html.theme--documenter-dark .w-100{width:100%}html.theme--documenter-dark .gap-2{gap:0.5rem}html.theme--documenter-dark .gap-4{gap:1rem}html.theme--documenter-dark .gap-8{gap:2rem}html.theme--documenter-dark{background-color:#1f2424;font-size:16px;min-width:300px;overflow-x:auto;overflow-y:scroll;text-rendering:optimizeLegibility;text-size-adjust:100%}html.theme--documenter-dark .ansi span.sgr1{font-weight:bolder}html.theme--documenter-dark .ansi span.sgr2{font-weight:lighter}html.theme--documenter-dark .ansi span.sgr3{font-style:italic}html.theme--documenter-dark .ansi span.sgr4{text-decoration:underline}html.theme--documenter-dark .ansi span.sgr7{color:#1f2424;background-color:#fff}html.theme--documenter-dark .ansi span.sgr8{color:transparent}html.theme--documenter-dark .ansi span.sgr8 span{color:transparent}html.theme--documenter-dark .ansi span.sgr9{text-decoration:line-through}html.theme--documenter-dark .ansi span.sgr30{color:#242424}html.theme--documenter-dark .ansi span.sgr31{color:#f6705f}html.theme--documenter-dark .ansi span.sgr32{color:#4fb43a}html.theme--documenter-dark .ansi span.sgr33{color:#f4c72f}html.theme--documenter-dark .ansi span.sgr34{color:#7587f0}html.theme--documenter-dark .ansi span.sgr35{color:#bc89d3}html.theme--documenter-dark .ansi span.sgr36{color:#49b6ca}html.theme--documenter-dark .ansi span.sgr37{color:#b3bdbe}html.theme--documenter-dark .ansi span.sgr40{background-color:#242424}html.theme--documenter-dark .ansi span.sgr41{background-color:#f6705f}html.theme--documenter-dark .ansi span.sgr42{background-color:#4fb43a}html.theme--documenter-dark .ansi span.sgr43{background-color:#f4c72f}html.theme--documenter-dark .ansi span.sgr44{background-color:#7587f0}html.theme--documenter-dark .ansi span.sgr45{background-color:#bc89d3}html.theme--documenter-dark .ansi span.sgr46{background-color:#49b6ca}html.theme--documenter-dark .ansi span.sgr47{background-color:#b3bdbe}html.theme--documenter-dark .ansi span.sgr90{color:#92a0a2}html.theme--documenter-dark .ansi span.sgr91{color:#ff8674}html.theme--documenter-dark .ansi span.sgr92{color:#79d462}html.theme--documenter-dark .ansi span.sgr93{color:#ffe76b}html.theme--documenter-dark .ansi span.sgr94{color:#8a98ff}html.theme--documenter-dark .ansi span.sgr95{color:#d2a4e6}html.theme--documenter-dark .ansi span.sgr96{color:#6bc8db}html.theme--documenter-dark .ansi span.sgr97{color:#ecf0f1}html.theme--documenter-dark .ansi span.sgr100{background-color:#92a0a2}html.theme--documenter-dark .ansi span.sgr101{background-color:#ff8674}html.theme--documenter-dark .ansi span.sgr102{background-color:#79d462}html.theme--documenter-dark .ansi span.sgr103{background-color:#ffe76b}html.theme--documenter-dark .ansi span.sgr104{background-color:#8a98ff}html.theme--documenter-dark .ansi span.sgr105{background-color:#d2a4e6}html.theme--documenter-dark .ansi span.sgr106{background-color:#6bc8db}html.theme--documenter-dark .ansi span.sgr107{background-color:#ecf0f1}html.theme--documenter-dark code.language-julia-repl>span.hljs-meta{color:#4fb43a;font-weight:bolder}html.theme--documenter-dark .hljs{background:#2b2b2b;color:#f8f8f2}html.theme--documenter-dark .hljs-comment,html.theme--documenter-dark .hljs-quote{color:#d4d0ab}html.theme--documenter-dark .hljs-variable,html.theme--documenter-dark .hljs-template-variable,html.theme--documenter-dark .hljs-tag,html.theme--documenter-dark .hljs-name,html.theme--documenter-dark .hljs-selector-id,html.theme--documenter-dark .hljs-selector-class,html.theme--documenter-dark .hljs-regexp,html.theme--documenter-dark .hljs-deletion{color:#ffa07a}html.theme--documenter-dark .hljs-number,html.theme--documenter-dark .hljs-built_in,html.theme--documenter-dark .hljs-literal,html.theme--documenter-dark .hljs-type,html.theme--documenter-dark .hljs-params,html.theme--documenter-dark .hljs-meta,html.theme--documenter-dark .hljs-link{color:#f5ab35}html.theme--documenter-dark .hljs-attribute{color:#ffd700}html.theme--documenter-dark .hljs-string,html.theme--documenter-dark .hljs-symbol,html.theme--documenter-dark .hljs-bullet,html.theme--documenter-dark .hljs-addition{color:#abe338}html.theme--documenter-dark .hljs-title,html.theme--documenter-dark .hljs-section{color:#00e0e0}html.theme--documenter-dark .hljs-keyword,html.theme--documenter-dark .hljs-selector-tag{color:#dcc6e0}html.theme--documenter-dark .hljs-emphasis{font-style:italic}html.theme--documenter-dark .hljs-strong{font-weight:bold}@media screen and (-ms-high-contrast: active){html.theme--documenter-dark .hljs-addition,html.theme--documenter-dark .hljs-attribute,html.theme--documenter-dark .hljs-built_in,html.theme--documenter-dark .hljs-bullet,html.theme--documenter-dark .hljs-comment,html.theme--documenter-dark .hljs-link,html.theme--documenter-dark .hljs-literal,html.theme--documenter-dark .hljs-meta,html.theme--documenter-dark .hljs-number,html.theme--documenter-dark .hljs-params,html.theme--documenter-dark .hljs-string,html.theme--documenter-dark .hljs-symbol,html.theme--documenter-dark .hljs-type,html.theme--documenter-dark .hljs-quote{color:highlight}html.theme--documenter-dark .hljs-keyword,html.theme--documenter-dark .hljs-selector-tag{font-weight:bold}}html.theme--documenter-dark .hljs-subst{color:#f8f8f2}html.theme--documenter-dark .search-result-link{border-radius:0.7em;transition:all 300ms}html.theme--documenter-dark .search-result-link:hover,html.theme--documenter-dark .search-result-link:focus{background-color:rgba(0,128,128,0.1)}html.theme--documenter-dark .search-result-link .property-search-result-badge,html.theme--documenter-dark .search-result-link .search-filter{transition:all 300ms}html.theme--documenter-dark .search-result-link:hover .property-search-result-badge,html.theme--documenter-dark .search-result-link:hover .search-filter,html.theme--documenter-dark .search-result-link:focus .property-search-result-badge,html.theme--documenter-dark .search-result-link:focus .search-filter{color:#333 !important;background-color:#f1f5f9 !important}html.theme--documenter-dark .property-search-result-badge,html.theme--documenter-dark .search-filter{padding:0.15em 0.5em;font-size:0.8em;font-style:italic;text-transform:none !important;line-height:1.5;color:whitesmoke;background-color:#33415580;border-radius:0.6rem}html.theme--documenter-dark .search-result-title{color:whitesmoke}html.theme--documenter-dark .search-result-highlight{background-color:greenyellow;color:black}html.theme--documenter-dark .search-divider{border-bottom:1px solid #5e6d6f50}html.theme--documenter-dark .w-100{width:100%}html.theme--documenter-dark .gap-2{gap:0.5rem}html.theme--documenter-dark .gap-4{gap:1rem} diff --git a/dev/assets/themes/documenter-light.css b/dev/assets/themes/documenter-light.css index 9595d5b8..2f168c77 100644 --- a/dev/assets/themes/documenter-light.css +++ b/dev/assets/themes/documenter-light.css @@ -1,7642 +1,4 @@ -@charset "UTF-8"; -/* Font Awesome 5 mixin. Can be included in any rule that should render Font Awesome icons. */ -@keyframes spinAround { - from { - transform: rotate(0deg); } - to { - transform: rotate(359deg); } } - -.tabs, .pagination-previous, -.pagination-next, -.pagination-link, -.pagination-ellipsis, .breadcrumb, .file, .button, .is-unselectable, .modal-close, .delete { - -webkit-touch-callout: none; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; } - -.navbar-link:not(.is-arrowless)::after, .select:not(.is-multiple):not(.is-loading)::after { - border: 3px solid transparent; - border-radius: 2px; - border-right: 0; - border-top: 0; - content: " "; - display: block; - height: 0.625em; - margin-top: -0.4375em; - pointer-events: none; - position: absolute; - top: 50%; - transform: rotate(-45deg); - transform-origin: center; - width: 0.625em; } - -.admonition:not(:last-child), .tabs:not(:last-child), .message:not(:last-child), .list:not(:last-child), .level:not(:last-child), .breadcrumb:not(:last-child), .highlight:not(:last-child), .block:not(:last-child), .title:not(:last-child), -.subtitle:not(:last-child), .table-container:not(:last-child), .table:not(:last-child), .progress:not(:last-child), .notification:not(:last-child), .content:not(:last-child), .box:not(:last-child) { - margin-bottom: 1.5rem; } - -.modal-close, .delete { - -moz-appearance: none; - -webkit-appearance: none; - background-color: rgba(10, 10, 10, 0.2); - border: none; - border-radius: 290486px; - cursor: pointer; - pointer-events: auto; - display: inline-block; - flex-grow: 0; - flex-shrink: 0; - font-size: 0; - height: 20px; - max-height: 20px; - max-width: 20px; - min-height: 20px; - min-width: 20px; - outline: none; - position: relative; - vertical-align: top; - width: 20px; } - .modal-close::before, .delete::before, .modal-close::after, .delete::after { - background-color: white; - content: ""; - display: block; - left: 50%; - position: absolute; - top: 50%; - transform: translateX(-50%) translateY(-50%) rotate(45deg); - transform-origin: center center; } - .modal-close::before, .delete::before { - height: 2px; - width: 50%; } - .modal-close::after, .delete::after { - height: 50%; - width: 2px; } - .modal-close:hover, .delete:hover, .modal-close:focus, .delete:focus { - background-color: rgba(10, 10, 10, 0.3); } - .modal-close:active, .delete:active { - background-color: rgba(10, 10, 10, 0.4); } - .is-small.modal-close, #documenter .docs-sidebar form.docs-search > input.modal-close, .is-small.delete, #documenter .docs-sidebar form.docs-search > input.delete { - height: 16px; - max-height: 16px; - max-width: 16px; - min-height: 16px; - min-width: 16px; - width: 16px; } - .is-medium.modal-close, .is-medium.delete { - height: 24px; - max-height: 24px; - max-width: 24px; - min-height: 24px; - min-width: 24px; - width: 24px; } - .is-large.modal-close, .is-large.delete { - height: 32px; - max-height: 32px; - max-width: 32px; - min-height: 32px; - min-width: 32px; - width: 32px; } - -.control.is-loading::after, .select.is-loading::after, .loader, .button.is-loading::after { - animation: spinAround 500ms infinite linear; - border: 2px solid #dbdbdb; - border-radius: 290486px; - border-right-color: transparent; - border-top-color: transparent; - content: ""; - display: block; - height: 1em; - position: relative; - width: 1em; } - -.hero-video, .modal-background, .modal, .image.is-square img, #documenter .docs-sidebar .docs-logo > img.is-square img, -.image.is-square .has-ratio, -#documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, .image.is-1by1 img, #documenter .docs-sidebar .docs-logo > img.is-1by1 img, -.image.is-1by1 .has-ratio, -#documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, .image.is-5by4 img, #documenter .docs-sidebar .docs-logo > img.is-5by4 img, -.image.is-5by4 .has-ratio, -#documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, .image.is-4by3 img, #documenter .docs-sidebar .docs-logo > img.is-4by3 img, -.image.is-4by3 .has-ratio, -#documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, .image.is-3by2 img, #documenter .docs-sidebar .docs-logo > img.is-3by2 img, -.image.is-3by2 .has-ratio, -#documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, .image.is-5by3 img, #documenter .docs-sidebar .docs-logo > img.is-5by3 img, -.image.is-5by3 .has-ratio, -#documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, .image.is-16by9 img, #documenter .docs-sidebar .docs-logo > img.is-16by9 img, -.image.is-16by9 .has-ratio, -#documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, .image.is-2by1 img, #documenter .docs-sidebar .docs-logo > img.is-2by1 img, -.image.is-2by1 .has-ratio, -#documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, .image.is-3by1 img, #documenter .docs-sidebar .docs-logo > img.is-3by1 img, -.image.is-3by1 .has-ratio, -#documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, .image.is-4by5 img, #documenter .docs-sidebar .docs-logo > img.is-4by5 img, -.image.is-4by5 .has-ratio, -#documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, .image.is-3by4 img, #documenter .docs-sidebar .docs-logo > img.is-3by4 img, -.image.is-3by4 .has-ratio, -#documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, .image.is-2by3 img, #documenter .docs-sidebar .docs-logo > img.is-2by3 img, -.image.is-2by3 .has-ratio, -#documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, .image.is-3by5 img, #documenter .docs-sidebar .docs-logo > img.is-3by5 img, -.image.is-3by5 .has-ratio, -#documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, .image.is-9by16 img, #documenter .docs-sidebar .docs-logo > img.is-9by16 img, -.image.is-9by16 .has-ratio, -#documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, .image.is-1by2 img, #documenter .docs-sidebar .docs-logo > img.is-1by2 img, -.image.is-1by2 .has-ratio, -#documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, .image.is-1by3 img, #documenter .docs-sidebar .docs-logo > img.is-1by3 img, -.image.is-1by3 .has-ratio, -#documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio, .is-overlay { - bottom: 0; - left: 0; - position: absolute; - right: 0; - top: 0; } - -.pagination-previous, -.pagination-next, -.pagination-link, -.pagination-ellipsis, .file-cta, -.file-name, .select select, .textarea, .input, #documenter .docs-sidebar form.docs-search > input, .button { - -moz-appearance: none; - -webkit-appearance: none; - align-items: center; - border: 1px solid transparent; - border-radius: 4px; - box-shadow: none; - display: inline-flex; - font-size: 1rem; - height: 2.25em; - justify-content: flex-start; - line-height: 1.5; - padding-bottom: calc(0.375em - 1px); - padding-left: calc(0.625em - 1px); - padding-right: calc(0.625em - 1px); - padding-top: calc(0.375em - 1px); - position: relative; - vertical-align: top; } - .pagination-previous:focus, - .pagination-next:focus, - .pagination-link:focus, - .pagination-ellipsis:focus, .file-cta:focus, - .file-name:focus, .select select:focus, .textarea:focus, .input:focus, #documenter .docs-sidebar form.docs-search > input:focus, .button:focus, .is-focused.pagination-previous, - .is-focused.pagination-next, - .is-focused.pagination-link, - .is-focused.pagination-ellipsis, .is-focused.file-cta, - .is-focused.file-name, .select select.is-focused, .is-focused.textarea, .is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-focused.button, .pagination-previous:active, - .pagination-next:active, - .pagination-link:active, - .pagination-ellipsis:active, .file-cta:active, - .file-name:active, .select select:active, .textarea:active, .input:active, #documenter .docs-sidebar form.docs-search > input:active, .button:active, .is-active.pagination-previous, - .is-active.pagination-next, - .is-active.pagination-link, - .is-active.pagination-ellipsis, .is-active.file-cta, - .is-active.file-name, .select select.is-active, .is-active.textarea, .is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .is-active.button { - outline: none; } - .pagination-previous[disabled], - .pagination-next[disabled], - .pagination-link[disabled], - .pagination-ellipsis[disabled], .file-cta[disabled], - .file-name[disabled], .select select[disabled], .textarea[disabled], .input[disabled], #documenter .docs-sidebar form.docs-search > input[disabled], .button[disabled], fieldset[disabled] .pagination-previous, - fieldset[disabled] .pagination-next, - fieldset[disabled] .pagination-link, - fieldset[disabled] .pagination-ellipsis, fieldset[disabled] .file-cta, - fieldset[disabled] .file-name, fieldset[disabled] .select select, .select fieldset[disabled] select, fieldset[disabled] .textarea, fieldset[disabled] .input, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, fieldset[disabled] .button { - cursor: not-allowed; } - -/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */ -html, -body, -p, -ol, -ul, -li, -dl, -dt, -dd, -blockquote, -figure, -fieldset, -legend, -textarea, -pre, -iframe, -hr, -h1, -h2, -h3, -h4, -h5, -h6 { - margin: 0; - padding: 0; } - -h1, -h2, -h3, -h4, -h5, -h6 { - font-size: 100%; - font-weight: normal; } - -ul { - list-style: none; } - -button, -input, -select, -textarea { - margin: 0; } - -html { - box-sizing: border-box; } - -*, *::before, *::after { - box-sizing: inherit; } - -img, -embed, -iframe, -object, -video { - height: auto; - max-width: 100%; } - -audio { - max-width: 100%; } - -iframe { - border: 0; } - -table { - border-collapse: collapse; - border-spacing: 0; } - -td, -th { - padding: 0; } - td:not([align]), - th:not([align]) { - text-align: left; } - -html { - background-color: white; - font-size: 16px; - -moz-osx-font-smoothing: grayscale; - -webkit-font-smoothing: antialiased; - min-width: 300px; - overflow-x: auto; - overflow-y: scroll; - text-rendering: optimizeLegibility; - text-size-adjust: 100%; } - -article, -aside, -figure, -footer, -header, -hgroup, -section { - display: block; } - -body, -button, -input, -select, -textarea { - font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif; } - -code, -pre { - -moz-osx-font-smoothing: auto; - -webkit-font-smoothing: auto; - font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace; } - -body { - color: #222222; - font-size: 1em; - font-weight: 400; - line-height: 1.5; } - -a { - color: #2e63b8; - cursor: pointer; - text-decoration: none; } - a strong { - color: currentColor; } - a:hover { - color: #363636; } - -code { - background-color: rgba(0, 0, 0, 0.05); - color: #000000; - font-size: 0.875em; - font-weight: normal; - padding: 0.1em; } - -hr { - background-color: whitesmoke; - border: none; - display: block; - height: 2px; - margin: 1.5rem 0; } - -img { - height: auto; - max-width: 100%; } - -input[type="checkbox"], -input[type="radio"] { - vertical-align: baseline; } - -small { - font-size: 0.875em; } - -span { - font-style: inherit; - font-weight: inherit; } - -strong { - color: #222222; - font-weight: 700; } - -fieldset { - border: none; } - -pre { - -webkit-overflow-scrolling: touch; - background-color: whitesmoke; - color: #222222; - font-size: 0.875em; - overflow-x: auto; - padding: 1.25rem 1.5rem; - white-space: pre; - word-wrap: normal; } - pre code { - background-color: transparent; - color: currentColor; - font-size: 1em; - padding: 0; } - -table td, -table th { - vertical-align: top; } - table td:not([align]), - table th:not([align]) { - text-align: left; } - -table th { - color: #222222; } - -.is-clearfix::after { - clear: both; - content: " "; - display: table; } - -.is-pulled-left { - float: left !important; } - -.is-pulled-right { - float: right !important; } - -.is-clipped { - overflow: hidden !important; } - -.is-size-1 { - font-size: 3rem !important; } - -.is-size-2 { - font-size: 2.5rem !important; } - -.is-size-3 { - font-size: 2rem !important; } - -.is-size-4 { - font-size: 1.5rem !important; } - -.is-size-5 { - font-size: 1.25rem !important; } - -.is-size-6 { - font-size: 1rem !important; } - -.is-size-7, .docstring > section > a.docs-sourcelink { - font-size: 0.75rem !important; } - -@media screen and (max-width: 768px) { - .is-size-1-mobile { - font-size: 3rem !important; } - .is-size-2-mobile { - font-size: 2.5rem !important; } - .is-size-3-mobile { - font-size: 2rem !important; } - .is-size-4-mobile { - font-size: 1.5rem !important; } - .is-size-5-mobile { - font-size: 1.25rem !important; } - .is-size-6-mobile { - font-size: 1rem !important; } - .is-size-7-mobile { - font-size: 0.75rem !important; } } - -@media screen and (min-width: 769px), print { - .is-size-1-tablet { - font-size: 3rem !important; } - .is-size-2-tablet { - font-size: 2.5rem !important; } - .is-size-3-tablet { - font-size: 2rem !important; } - .is-size-4-tablet { - font-size: 1.5rem !important; } - .is-size-5-tablet { - font-size: 1.25rem !important; } - .is-size-6-tablet { - font-size: 1rem !important; } - .is-size-7-tablet { - font-size: 0.75rem !important; } } - -@media screen and (max-width: 1055px) { - .is-size-1-touch { - font-size: 3rem !important; } - .is-size-2-touch { - font-size: 2.5rem !important; } - .is-size-3-touch { - font-size: 2rem !important; } - .is-size-4-touch { - font-size: 1.5rem !important; } - .is-size-5-touch { - font-size: 1.25rem !important; } - .is-size-6-touch { - font-size: 1rem !important; } - .is-size-7-touch { - font-size: 0.75rem !important; } } - -@media screen and (min-width: 1056px) { - .is-size-1-desktop { - font-size: 3rem !important; } - .is-size-2-desktop { - font-size: 2.5rem !important; } - .is-size-3-desktop { - font-size: 2rem !important; } - .is-size-4-desktop { - font-size: 1.5rem !important; } - .is-size-5-desktop { - font-size: 1.25rem !important; } - .is-size-6-desktop { - font-size: 1rem !important; } - .is-size-7-desktop { - font-size: 0.75rem !important; } } - -@media screen and (min-width: 1216px) { - .is-size-1-widescreen { - font-size: 3rem !important; } - .is-size-2-widescreen { - font-size: 2.5rem !important; } - .is-size-3-widescreen { - font-size: 2rem !important; } - .is-size-4-widescreen { - font-size: 1.5rem !important; } - .is-size-5-widescreen { - font-size: 1.25rem !important; } - .is-size-6-widescreen { - font-size: 1rem !important; } - .is-size-7-widescreen { - font-size: 0.75rem !important; } } - -@media screen and (min-width: 1408px) { - .is-size-1-fullhd { - font-size: 3rem !important; } - .is-size-2-fullhd { - font-size: 2.5rem !important; } - .is-size-3-fullhd { - font-size: 2rem !important; } - .is-size-4-fullhd { - font-size: 1.5rem !important; } - .is-size-5-fullhd { - font-size: 1.25rem !important; } - .is-size-6-fullhd { - font-size: 1rem !important; } - .is-size-7-fullhd { - font-size: 0.75rem !important; } } - -.has-text-centered { - text-align: center !important; } - -.has-text-justified { - text-align: justify !important; } - -.has-text-left { - text-align: left !important; } - -.has-text-right { - text-align: right !important; } - -@media screen and (max-width: 768px) { - .has-text-centered-mobile { - text-align: center !important; } } - -@media screen and (min-width: 769px), print { - .has-text-centered-tablet { - text-align: center !important; } } - -@media screen and (min-width: 769px) and (max-width: 1055px) { - .has-text-centered-tablet-only { - text-align: center !important; } } - -@media screen and (max-width: 1055px) { - .has-text-centered-touch { - text-align: center !important; } } - -@media screen and (min-width: 1056px) { - .has-text-centered-desktop { - text-align: center !important; } } - -@media screen and (min-width: 1056px) and (max-width: 1215px) { - .has-text-centered-desktop-only { - text-align: center !important; } } - -@media screen and (min-width: 1216px) { - .has-text-centered-widescreen { - text-align: center !important; } } - -@media screen and (min-width: 1216px) and (max-width: 1407px) { - .has-text-centered-widescreen-only { - text-align: center !important; } } - -@media screen and (min-width: 1408px) { - .has-text-centered-fullhd { - text-align: center !important; } } - -@media screen and (max-width: 768px) { - .has-text-justified-mobile { - text-align: justify !important; } } - -@media screen and (min-width: 769px), print { - .has-text-justified-tablet { - text-align: justify !important; } } - -@media screen and (min-width: 769px) and (max-width: 1055px) { - .has-text-justified-tablet-only { - text-align: justify !important; } } - -@media screen and (max-width: 1055px) { - .has-text-justified-touch { - text-align: justify !important; } } - -@media screen and (min-width: 1056px) { - .has-text-justified-desktop { - text-align: justify !important; } } - -@media screen and (min-width: 1056px) and (max-width: 1215px) { - .has-text-justified-desktop-only { - text-align: justify !important; } } - -@media screen and (min-width: 1216px) { - .has-text-justified-widescreen { - text-align: justify !important; } } - -@media screen and (min-width: 1216px) and (max-width: 1407px) { - .has-text-justified-widescreen-only { - text-align: justify !important; } } - -@media screen and (min-width: 1408px) { - .has-text-justified-fullhd { - text-align: justify !important; } } - -@media screen and (max-width: 768px) { - .has-text-left-mobile { - text-align: left !important; } } - -@media screen and (min-width: 769px), print { - .has-text-left-tablet { - text-align: left !important; } } - -@media screen and (min-width: 769px) and (max-width: 1055px) { - .has-text-left-tablet-only { - text-align: left !important; } } - -@media screen and (max-width: 1055px) { - .has-text-left-touch { - text-align: left !important; } } - -@media screen and (min-width: 1056px) { - .has-text-left-desktop { - text-align: left !important; } } - -@media screen and (min-width: 1056px) and (max-width: 1215px) { - .has-text-left-desktop-only { - text-align: left !important; } } - -@media screen and (min-width: 1216px) { - .has-text-left-widescreen { - text-align: left !important; } } - -@media screen and (min-width: 1216px) and (max-width: 1407px) { - .has-text-left-widescreen-only { - text-align: left !important; } } - -@media screen and (min-width: 1408px) { - .has-text-left-fullhd { - text-align: left !important; } } - -@media screen and (max-width: 768px) { - .has-text-right-mobile { - text-align: right !important; } } - -@media screen and (min-width: 769px), print { - .has-text-right-tablet { - text-align: right !important; } } - -@media screen and (min-width: 769px) and (max-width: 1055px) { - .has-text-right-tablet-only { - text-align: right !important; } } - -@media screen and (max-width: 1055px) { - .has-text-right-touch { - text-align: right !important; } } - -@media screen and (min-width: 1056px) { - .has-text-right-desktop { - text-align: right !important; } } - -@media screen and (min-width: 1056px) and (max-width: 1215px) { - .has-text-right-desktop-only { - text-align: right !important; } } - -@media screen and (min-width: 1216px) { - .has-text-right-widescreen { - text-align: right !important; } } - -@media screen and (min-width: 1216px) and (max-width: 1407px) { - .has-text-right-widescreen-only { - text-align: right !important; } } - -@media screen and (min-width: 1408px) { - .has-text-right-fullhd { - text-align: right !important; } } - -.is-capitalized { - text-transform: capitalize !important; } - -.is-lowercase { - text-transform: lowercase !important; } - -.is-uppercase { - text-transform: uppercase !important; } - -.is-italic { - font-style: italic !important; } - -.has-text-white { - color: white !important; } - -a.has-text-white:hover, a.has-text-white:focus { - color: #e6e6e6 !important; } - -.has-background-white { - background-color: white !important; } - -.has-text-black { - color: #0a0a0a !important; } - -a.has-text-black:hover, a.has-text-black:focus { - color: black !important; } - -.has-background-black { - background-color: #0a0a0a !important; } - -.has-text-light { - color: whitesmoke !important; } - -a.has-text-light:hover, a.has-text-light:focus { - color: #dbdbdb !important; } - -.has-background-light { - background-color: whitesmoke !important; } - -.has-text-dark { - color: #363636 !important; } - -a.has-text-dark:hover, a.has-text-dark:focus { - color: #1c1c1c !important; } - -.has-background-dark { - background-color: #363636 !important; } - -.has-text-primary { - color: #4eb5de !important; } - -a.has-text-primary:hover, a.has-text-primary:focus { - color: #27a1d2 !important; } - -.has-background-primary { - background-color: #4eb5de !important; } - -.has-text-link { - color: #2e63b8 !important; } - -a.has-text-link:hover, a.has-text-link:focus { - color: #244d8f !important; } - -.has-background-link { - background-color: #2e63b8 !important; } - -.has-text-info { - color: #209cee !important; } - -a.has-text-info:hover, a.has-text-info:focus { - color: #1081cb !important; } - -.has-background-info { - background-color: #209cee !important; } - -.has-text-success { - color: #22c35b !important; } - -a.has-text-success:hover, a.has-text-success:focus { - color: #1a9847 !important; } - -.has-background-success { - background-color: #22c35b !important; } - -.has-text-warning { - color: #ffdd57 !important; } - -a.has-text-warning:hover, a.has-text-warning:focus { - color: #ffd324 !important; } - -.has-background-warning { - background-color: #ffdd57 !important; } - -.has-text-danger { - color: #da0b00 !important; } - -a.has-text-danger:hover, a.has-text-danger:focus { - color: #a70800 !important; } - -.has-background-danger { - background-color: #da0b00 !important; } - -.has-text-black-bis { - color: #121212 !important; } - -.has-background-black-bis { - background-color: #121212 !important; } - -.has-text-black-ter { - color: #242424 !important; } - -.has-background-black-ter { - background-color: #242424 !important; } - -.has-text-grey-darker { - color: #363636 !important; } - -.has-background-grey-darker { - background-color: #363636 !important; } - -.has-text-grey-dark { - color: #4a4a4a !important; } - -.has-background-grey-dark { - background-color: #4a4a4a !important; } - -.has-text-grey { - color: #6b6b6b !important; } - -.has-background-grey { - background-color: #6b6b6b !important; } - -.has-text-grey-light { - color: #b5b5b5 !important; } - -.has-background-grey-light { - background-color: #b5b5b5 !important; } - -.has-text-grey-lighter { - color: #dbdbdb !important; } - -.has-background-grey-lighter { - background-color: #dbdbdb !important; } - -.has-text-white-ter { - color: whitesmoke !important; } - -.has-background-white-ter { - background-color: whitesmoke !important; } - -.has-text-white-bis { - color: #fafafa !important; } - -.has-background-white-bis { - background-color: #fafafa !important; } - -.has-text-weight-light { - font-weight: 300 !important; } - -.has-text-weight-normal { - font-weight: 400 !important; } - -.has-text-weight-medium { - font-weight: 500 !important; } - -.has-text-weight-semibold { - font-weight: 600 !important; } - -.has-text-weight-bold { - font-weight: 700 !important; } - -.is-family-primary { - font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } - -.is-family-secondary { - font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } - -.is-family-sans-serif { - font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } - -.is-family-monospace { - font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } - -.is-family-code { - font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } - -.is-block { - display: block !important; } - -@media screen and (max-width: 768px) { - .is-block-mobile { - display: block !important; } } - -@media screen and (min-width: 769px), print { - .is-block-tablet { - display: block !important; } } - -@media screen and (min-width: 769px) and (max-width: 1055px) { - .is-block-tablet-only { - display: block !important; } } - -@media screen and (max-width: 1055px) { - .is-block-touch { - display: block !important; } } - -@media screen and (min-width: 1056px) { - .is-block-desktop { - display: block !important; } } - -@media screen and (min-width: 1056px) and (max-width: 1215px) { - .is-block-desktop-only { - display: block !important; } } - -@media screen and (min-width: 1216px) { - .is-block-widescreen { - display: block !important; } } - -@media screen and (min-width: 1216px) and (max-width: 1407px) { - .is-block-widescreen-only { - display: block !important; } } - -@media screen and (min-width: 1408px) { - .is-block-fullhd { - display: block !important; } } - -.is-flex { - display: flex !important; } - -@media screen and (max-width: 768px) { - .is-flex-mobile { - display: flex !important; } } - -@media screen and (min-width: 769px), print { - .is-flex-tablet { - display: flex !important; } } - -@media screen and (min-width: 769px) and (max-width: 1055px) { - .is-flex-tablet-only { - display: flex !important; } } - -@media screen and (max-width: 1055px) { - .is-flex-touch { - display: flex !important; } } - -@media screen and (min-width: 1056px) { - .is-flex-desktop { - display: flex !important; } } - -@media screen and (min-width: 1056px) and (max-width: 1215px) { - .is-flex-desktop-only { - display: flex !important; } } - -@media screen and (min-width: 1216px) { - .is-flex-widescreen { - display: flex !important; } } - -@media screen and (min-width: 1216px) and (max-width: 1407px) { - .is-flex-widescreen-only { - display: flex !important; } } - -@media screen and (min-width: 1408px) { - .is-flex-fullhd { - display: flex !important; } } - -.is-inline { - display: inline !important; } - -@media screen and (max-width: 768px) { - .is-inline-mobile { - display: inline !important; } } - -@media screen and (min-width: 769px), print { - .is-inline-tablet { - display: inline !important; } } - -@media screen and (min-width: 769px) and (max-width: 1055px) { - .is-inline-tablet-only { - display: inline !important; } } - -@media screen and (max-width: 1055px) { - .is-inline-touch { - display: inline !important; } } - -@media screen and (min-width: 1056px) { - .is-inline-desktop { - display: inline !important; } } - -@media screen and (min-width: 1056px) and (max-width: 1215px) { - .is-inline-desktop-only { - display: inline !important; } } - -@media screen and (min-width: 1216px) { - .is-inline-widescreen { - display: inline !important; } } - -@media screen and (min-width: 1216px) and (max-width: 1407px) { - .is-inline-widescreen-only { - display: inline !important; } } - -@media screen and (min-width: 1408px) { - .is-inline-fullhd { - display: inline !important; } } - -.is-inline-block { - display: inline-block !important; } - -@media screen and (max-width: 768px) { - .is-inline-block-mobile { - display: inline-block !important; } } - -@media screen and (min-width: 769px), print { - .is-inline-block-tablet { - display: inline-block !important; } } - -@media screen and (min-width: 769px) and (max-width: 1055px) { - .is-inline-block-tablet-only { - display: inline-block !important; } } - -@media screen and (max-width: 1055px) { - .is-inline-block-touch { - display: inline-block !important; } } - -@media screen and (min-width: 1056px) { - .is-inline-block-desktop { - display: inline-block !important; } } - -@media screen and (min-width: 1056px) and (max-width: 1215px) { - .is-inline-block-desktop-only { - display: inline-block !important; } } - -@media screen and (min-width: 1216px) { - .is-inline-block-widescreen { - display: inline-block !important; } } - -@media screen and (min-width: 1216px) and (max-width: 1407px) { - .is-inline-block-widescreen-only { - display: inline-block !important; } } - -@media screen and (min-width: 1408px) { - .is-inline-block-fullhd { - display: inline-block !important; } } - -.is-inline-flex { - display: inline-flex !important; } - -@media screen and (max-width: 768px) { - .is-inline-flex-mobile { - display: inline-flex !important; } } - -@media screen and (min-width: 769px), print { - .is-inline-flex-tablet { - display: inline-flex !important; } } - -@media screen and (min-width: 769px) and (max-width: 1055px) { - .is-inline-flex-tablet-only { - display: inline-flex !important; } } - -@media screen and (max-width: 1055px) { - .is-inline-flex-touch { - display: inline-flex !important; } } - -@media screen and (min-width: 1056px) { - .is-inline-flex-desktop { - display: inline-flex !important; } } - -@media screen and (min-width: 1056px) and (max-width: 1215px) { - .is-inline-flex-desktop-only { - display: inline-flex !important; } } - -@media screen and (min-width: 1216px) { - .is-inline-flex-widescreen { - display: inline-flex !important; } } - -@media screen and (min-width: 1216px) and (max-width: 1407px) { - .is-inline-flex-widescreen-only { - display: inline-flex !important; } } - -@media screen and (min-width: 1408px) { - .is-inline-flex-fullhd { - display: inline-flex !important; } } - -.is-hidden { - display: none !important; } - -.is-sr-only { - border: none !important; - clip: rect(0, 0, 0, 0) !important; - height: 0.01em !important; - overflow: hidden !important; - padding: 0 !important; - position: absolute !important; - white-space: nowrap !important; - width: 0.01em !important; } - -@media screen and (max-width: 768px) { - .is-hidden-mobile { - display: none !important; } } - -@media screen and (min-width: 769px), print { - .is-hidden-tablet { - display: none !important; } } - -@media screen and (min-width: 769px) and (max-width: 1055px) { - .is-hidden-tablet-only { - display: none !important; } } - -@media screen and (max-width: 1055px) { - .is-hidden-touch { - display: none !important; } } - -@media screen and (min-width: 1056px) { - .is-hidden-desktop { - display: none !important; } } - -@media screen and (min-width: 1056px) and (max-width: 1215px) { - .is-hidden-desktop-only { - display: none !important; } } - -@media screen and (min-width: 1216px) { - .is-hidden-widescreen { - display: none !important; } } - -@media screen and (min-width: 1216px) and (max-width: 1407px) { - .is-hidden-widescreen-only { - display: none !important; } } - -@media screen and (min-width: 1408px) { - .is-hidden-fullhd { - display: none !important; } } - -.is-invisible { - visibility: hidden !important; } - -@media screen and (max-width: 768px) { - .is-invisible-mobile { - visibility: hidden !important; } } - -@media screen and (min-width: 769px), print { - .is-invisible-tablet { - visibility: hidden !important; } } - -@media screen and (min-width: 769px) and (max-width: 1055px) { - .is-invisible-tablet-only { - visibility: hidden !important; } } - -@media screen and (max-width: 1055px) { - .is-invisible-touch { - visibility: hidden !important; } } - -@media screen and (min-width: 1056px) { - .is-invisible-desktop { - visibility: hidden !important; } } - -@media screen and (min-width: 1056px) and (max-width: 1215px) { - .is-invisible-desktop-only { - visibility: hidden !important; } } - -@media screen and (min-width: 1216px) { - .is-invisible-widescreen { - visibility: hidden !important; } } - -@media screen and (min-width: 1216px) and (max-width: 1407px) { - .is-invisible-widescreen-only { - visibility: hidden !important; } } - -@media screen and (min-width: 1408px) { - .is-invisible-fullhd { - visibility: hidden !important; } } - -.is-marginless { - margin: 0 !important; } - -.is-paddingless { - padding: 0 !important; } - -.is-radiusless { - border-radius: 0 !important; } - -.is-shadowless { - box-shadow: none !important; } - -.is-relative { - position: relative !important; } - -.box { - background-color: white; - border-radius: 6px; - box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); - color: #222222; - display: block; - padding: 1.25rem; } - -a.box:hover, a.box:focus { - box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #2e63b8; } - -a.box:active { - box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #2e63b8; } - -.button { - background-color: white; - border-color: #dbdbdb; - border-width: 1px; - color: #363636; - cursor: pointer; - justify-content: center; - padding-bottom: calc(0.375em - 1px); - padding-left: 0.75em; - padding-right: 0.75em; - padding-top: calc(0.375em - 1px); - text-align: center; - white-space: nowrap; } - .button strong { - color: inherit; } - .button .icon, .button .icon.is-small, .button #documenter .docs-sidebar form.docs-search > input.icon, #documenter .docs-sidebar .button form.docs-search > input.icon, .button .icon.is-medium, .button .icon.is-large { - height: 1.5em; - width: 1.5em; } - .button .icon:first-child:not(:last-child) { - margin-left: calc(-0.375em - 1px); - margin-right: 0.1875em; } - .button .icon:last-child:not(:first-child) { - margin-left: 0.1875em; - margin-right: calc(-0.375em - 1px); } - .button .icon:first-child:last-child { - margin-left: calc(-0.375em - 1px); - margin-right: calc(-0.375em - 1px); } - .button:hover, .button.is-hovered { - border-color: #b5b5b5; - color: #363636; } - .button:focus, .button.is-focused { - border-color: #3c5dcd; - color: #363636; } - .button:focus:not(:active), .button.is-focused:not(:active) { - box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } - .button:active, .button.is-active { - border-color: #4a4a4a; - color: #363636; } - .button.is-text { - background-color: transparent; - border-color: transparent; - color: #222222; - text-decoration: underline; } - .button.is-text:hover, .button.is-text.is-hovered, .button.is-text:focus, .button.is-text.is-focused { - background-color: whitesmoke; - color: #222222; } - .button.is-text:active, .button.is-text.is-active { - background-color: #e8e8e8; - color: #222222; } - .button.is-text[disabled], fieldset[disabled] .button.is-text { - background-color: transparent; - border-color: transparent; - box-shadow: none; } - .button.is-white { - background-color: white; - border-color: transparent; - color: #0a0a0a; } - .button.is-white:hover, .button.is-white.is-hovered { - background-color: #f9f9f9; - border-color: transparent; - color: #0a0a0a; } - .button.is-white:focus, .button.is-white.is-focused { - border-color: transparent; - color: #0a0a0a; } - .button.is-white:focus:not(:active), .button.is-white.is-focused:not(:active) { - box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } - .button.is-white:active, .button.is-white.is-active { - background-color: #f2f2f2; - border-color: transparent; - color: #0a0a0a; } - .button.is-white[disabled], fieldset[disabled] .button.is-white { - background-color: white; - border-color: transparent; - box-shadow: none; } - .button.is-white.is-inverted { - background-color: #0a0a0a; - color: white; } - .button.is-white.is-inverted:hover, .button.is-white.is-inverted.is-hovered { - background-color: black; } - .button.is-white.is-inverted[disabled], fieldset[disabled] .button.is-white.is-inverted { - background-color: #0a0a0a; - border-color: transparent; - box-shadow: none; - color: white; } - .button.is-white.is-loading::after { - border-color: transparent transparent #0a0a0a #0a0a0a !important; } - .button.is-white.is-outlined { - background-color: transparent; - border-color: white; - color: white; } - .button.is-white.is-outlined:hover, .button.is-white.is-outlined.is-hovered, .button.is-white.is-outlined:focus, .button.is-white.is-outlined.is-focused { - background-color: white; - border-color: white; - color: #0a0a0a; } - .button.is-white.is-outlined.is-loading::after { - border-color: transparent transparent white white !important; } - .button.is-white.is-outlined.is-loading:hover::after, .button.is-white.is-outlined.is-loading.is-hovered::after, .button.is-white.is-outlined.is-loading:focus::after, .button.is-white.is-outlined.is-loading.is-focused::after { - border-color: transparent transparent #0a0a0a #0a0a0a !important; } - .button.is-white.is-outlined[disabled], fieldset[disabled] .button.is-white.is-outlined { - background-color: transparent; - border-color: white; - box-shadow: none; - color: white; } - .button.is-white.is-inverted.is-outlined { - background-color: transparent; - border-color: #0a0a0a; - color: #0a0a0a; } - .button.is-white.is-inverted.is-outlined:hover, .button.is-white.is-inverted.is-outlined.is-hovered, .button.is-white.is-inverted.is-outlined:focus, .button.is-white.is-inverted.is-outlined.is-focused { - background-color: #0a0a0a; - color: white; } - .button.is-white.is-inverted.is-outlined.is-loading:hover::after, .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-white.is-inverted.is-outlined.is-loading:focus::after, .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after { - border-color: transparent transparent white white !important; } - .button.is-white.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-white.is-inverted.is-outlined { - background-color: transparent; - border-color: #0a0a0a; - box-shadow: none; - color: #0a0a0a; } - .button.is-black { - background-color: #0a0a0a; - border-color: transparent; - color: white; } - .button.is-black:hover, .button.is-black.is-hovered { - background-color: #040404; - border-color: transparent; - color: white; } - .button.is-black:focus, .button.is-black.is-focused { - border-color: transparent; - color: white; } - .button.is-black:focus:not(:active), .button.is-black.is-focused:not(:active) { - box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } - .button.is-black:active, .button.is-black.is-active { - background-color: black; - border-color: transparent; - color: white; } - .button.is-black[disabled], fieldset[disabled] .button.is-black { - background-color: #0a0a0a; - border-color: transparent; - box-shadow: none; } - .button.is-black.is-inverted { - background-color: white; - color: #0a0a0a; } - .button.is-black.is-inverted:hover, .button.is-black.is-inverted.is-hovered { - background-color: #f2f2f2; } - .button.is-black.is-inverted[disabled], fieldset[disabled] .button.is-black.is-inverted { - background-color: white; - border-color: transparent; - box-shadow: none; - color: #0a0a0a; } - .button.is-black.is-loading::after { - border-color: transparent transparent white white !important; } - .button.is-black.is-outlined { - background-color: transparent; - border-color: #0a0a0a; - color: #0a0a0a; } - .button.is-black.is-outlined:hover, .button.is-black.is-outlined.is-hovered, .button.is-black.is-outlined:focus, .button.is-black.is-outlined.is-focused { - background-color: #0a0a0a; - border-color: #0a0a0a; - color: white; } - .button.is-black.is-outlined.is-loading::after { - border-color: transparent transparent #0a0a0a #0a0a0a !important; } - .button.is-black.is-outlined.is-loading:hover::after, .button.is-black.is-outlined.is-loading.is-hovered::after, .button.is-black.is-outlined.is-loading:focus::after, .button.is-black.is-outlined.is-loading.is-focused::after { - border-color: transparent transparent white white !important; } - .button.is-black.is-outlined[disabled], fieldset[disabled] .button.is-black.is-outlined { - background-color: transparent; - border-color: #0a0a0a; - box-shadow: none; - color: #0a0a0a; } - .button.is-black.is-inverted.is-outlined { - background-color: transparent; - border-color: white; - color: white; } - .button.is-black.is-inverted.is-outlined:hover, .button.is-black.is-inverted.is-outlined.is-hovered, .button.is-black.is-inverted.is-outlined:focus, .button.is-black.is-inverted.is-outlined.is-focused { - background-color: white; - color: #0a0a0a; } - .button.is-black.is-inverted.is-outlined.is-loading:hover::after, .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-black.is-inverted.is-outlined.is-loading:focus::after, .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after { - border-color: transparent transparent #0a0a0a #0a0a0a !important; } - .button.is-black.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-black.is-inverted.is-outlined { - background-color: transparent; - border-color: white; - box-shadow: none; - color: white; } - .button.is-light { - background-color: whitesmoke; - border-color: transparent; - color: #363636; } - .button.is-light:hover, .button.is-light.is-hovered { - background-color: #eeeeee; - border-color: transparent; - color: #363636; } - .button.is-light:focus, .button.is-light.is-focused { - border-color: transparent; - color: #363636; } - .button.is-light:focus:not(:active), .button.is-light.is-focused:not(:active) { - box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); } - .button.is-light:active, .button.is-light.is-active { - background-color: #e8e8e8; - border-color: transparent; - color: #363636; } - .button.is-light[disabled], fieldset[disabled] .button.is-light { - background-color: whitesmoke; - border-color: transparent; - box-shadow: none; } - .button.is-light.is-inverted { - background-color: #363636; - color: whitesmoke; } - .button.is-light.is-inverted:hover, .button.is-light.is-inverted.is-hovered { - background-color: #292929; } - .button.is-light.is-inverted[disabled], fieldset[disabled] .button.is-light.is-inverted { - background-color: #363636; - border-color: transparent; - box-shadow: none; - color: whitesmoke; } - .button.is-light.is-loading::after { - border-color: transparent transparent #363636 #363636 !important; } - .button.is-light.is-outlined { - background-color: transparent; - border-color: whitesmoke; - color: whitesmoke; } - .button.is-light.is-outlined:hover, .button.is-light.is-outlined.is-hovered, .button.is-light.is-outlined:focus, .button.is-light.is-outlined.is-focused { - background-color: whitesmoke; - border-color: whitesmoke; - color: #363636; } - .button.is-light.is-outlined.is-loading::after { - border-color: transparent transparent whitesmoke whitesmoke !important; } - .button.is-light.is-outlined.is-loading:hover::after, .button.is-light.is-outlined.is-loading.is-hovered::after, .button.is-light.is-outlined.is-loading:focus::after, .button.is-light.is-outlined.is-loading.is-focused::after { - border-color: transparent transparent #363636 #363636 !important; } - .button.is-light.is-outlined[disabled], fieldset[disabled] .button.is-light.is-outlined { - background-color: transparent; - border-color: whitesmoke; - box-shadow: none; - color: whitesmoke; } - .button.is-light.is-inverted.is-outlined { - background-color: transparent; - border-color: #363636; - color: #363636; } - .button.is-light.is-inverted.is-outlined:hover, .button.is-light.is-inverted.is-outlined.is-hovered, .button.is-light.is-inverted.is-outlined:focus, .button.is-light.is-inverted.is-outlined.is-focused { - background-color: #363636; - color: whitesmoke; } - .button.is-light.is-inverted.is-outlined.is-loading:hover::after, .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-light.is-inverted.is-outlined.is-loading:focus::after, .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after { - border-color: transparent transparent whitesmoke whitesmoke !important; } - .button.is-light.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-light.is-inverted.is-outlined { - background-color: transparent; - border-color: #363636; - box-shadow: none; - color: #363636; } - .button.is-dark, .content kbd.button { - background-color: #363636; - border-color: transparent; - color: whitesmoke; } - .button.is-dark:hover, .content kbd.button:hover, .button.is-dark.is-hovered, .content kbd.button.is-hovered { - background-color: #2f2f2f; - border-color: transparent; - color: whitesmoke; } - .button.is-dark:focus, .content kbd.button:focus, .button.is-dark.is-focused, .content kbd.button.is-focused { - border-color: transparent; - color: whitesmoke; } - .button.is-dark:focus:not(:active), .content kbd.button:focus:not(:active), .button.is-dark.is-focused:not(:active), .content kbd.button.is-focused:not(:active) { - box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); } - .button.is-dark:active, .content kbd.button:active, .button.is-dark.is-active, .content kbd.button.is-active { - background-color: #292929; - border-color: transparent; - color: whitesmoke; } - .button.is-dark[disabled], .content kbd.button[disabled], fieldset[disabled] .button.is-dark, fieldset[disabled] .content kbd.button, .content fieldset[disabled] kbd.button { - background-color: #363636; - border-color: transparent; - box-shadow: none; } - .button.is-dark.is-inverted, .content kbd.button.is-inverted { - background-color: whitesmoke; - color: #363636; } - .button.is-dark.is-inverted:hover, .content kbd.button.is-inverted:hover, .button.is-dark.is-inverted.is-hovered, .content kbd.button.is-inverted.is-hovered { - background-color: #e8e8e8; } - .button.is-dark.is-inverted[disabled], .content kbd.button.is-inverted[disabled], fieldset[disabled] .button.is-dark.is-inverted, fieldset[disabled] .content kbd.button.is-inverted, .content fieldset[disabled] kbd.button.is-inverted { - background-color: whitesmoke; - border-color: transparent; - box-shadow: none; - color: #363636; } - .button.is-dark.is-loading::after, .content kbd.button.is-loading::after { - border-color: transparent transparent whitesmoke whitesmoke !important; } - .button.is-dark.is-outlined, .content kbd.button.is-outlined { - background-color: transparent; - border-color: #363636; - color: #363636; } - .button.is-dark.is-outlined:hover, .content kbd.button.is-outlined:hover, .button.is-dark.is-outlined.is-hovered, .content kbd.button.is-outlined.is-hovered, .button.is-dark.is-outlined:focus, .content kbd.button.is-outlined:focus, .button.is-dark.is-outlined.is-focused, .content kbd.button.is-outlined.is-focused { - background-color: #363636; - border-color: #363636; - color: whitesmoke; } - .button.is-dark.is-outlined.is-loading::after, .content kbd.button.is-outlined.is-loading::after { - border-color: transparent transparent #363636 #363636 !important; } - .button.is-dark.is-outlined.is-loading:hover::after, .content kbd.button.is-outlined.is-loading:hover::after, .button.is-dark.is-outlined.is-loading.is-hovered::after, .content kbd.button.is-outlined.is-loading.is-hovered::after, .button.is-dark.is-outlined.is-loading:focus::after, .content kbd.button.is-outlined.is-loading:focus::after, .button.is-dark.is-outlined.is-loading.is-focused::after, .content kbd.button.is-outlined.is-loading.is-focused::after { - border-color: transparent transparent whitesmoke whitesmoke !important; } - .button.is-dark.is-outlined[disabled], .content kbd.button.is-outlined[disabled], fieldset[disabled] .button.is-dark.is-outlined, fieldset[disabled] .content kbd.button.is-outlined, .content fieldset[disabled] kbd.button.is-outlined { - background-color: transparent; - border-color: #363636; - box-shadow: none; - color: #363636; } - .button.is-dark.is-inverted.is-outlined, .content kbd.button.is-inverted.is-outlined { - background-color: transparent; - border-color: whitesmoke; - color: whitesmoke; } - .button.is-dark.is-inverted.is-outlined:hover, .content kbd.button.is-inverted.is-outlined:hover, .button.is-dark.is-inverted.is-outlined.is-hovered, .content kbd.button.is-inverted.is-outlined.is-hovered, .button.is-dark.is-inverted.is-outlined:focus, .content kbd.button.is-inverted.is-outlined:focus, .button.is-dark.is-inverted.is-outlined.is-focused, .content kbd.button.is-inverted.is-outlined.is-focused { - background-color: whitesmoke; - color: #363636; } - .button.is-dark.is-inverted.is-outlined.is-loading:hover::after, .content kbd.button.is-inverted.is-outlined.is-loading:hover::after, .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after, .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-dark.is-inverted.is-outlined.is-loading:focus::after, .content kbd.button.is-inverted.is-outlined.is-loading:focus::after, .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after, .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after { - border-color: transparent transparent #363636 #363636 !important; } - .button.is-dark.is-inverted.is-outlined[disabled], .content kbd.button.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-dark.is-inverted.is-outlined, fieldset[disabled] .content kbd.button.is-inverted.is-outlined, .content fieldset[disabled] kbd.button.is-inverted.is-outlined { - background-color: transparent; - border-color: whitesmoke; - box-shadow: none; - color: whitesmoke; } - .button.is-primary, .docstring > section > a.button.docs-sourcelink { - background-color: #4eb5de; - border-color: transparent; - color: #fff; } - .button.is-primary:hover, .docstring > section > a.button.docs-sourcelink:hover, .button.is-primary.is-hovered, .docstring > section > a.button.is-hovered.docs-sourcelink { - background-color: #43b1dc; - border-color: transparent; - color: #fff; } - .button.is-primary:focus, .docstring > section > a.button.docs-sourcelink:focus, .button.is-primary.is-focused, .docstring > section > a.button.is-focused.docs-sourcelink { - border-color: transparent; - color: #fff; } - .button.is-primary:focus:not(:active), .docstring > section > a.button.docs-sourcelink:focus:not(:active), .button.is-primary.is-focused:not(:active), .docstring > section > a.button.is-focused.docs-sourcelink:not(:active) { - box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); } - .button.is-primary:active, .docstring > section > a.button.docs-sourcelink:active, .button.is-primary.is-active, .docstring > section > a.button.is-active.docs-sourcelink { - background-color: #39acda; - border-color: transparent; - color: #fff; } - .button.is-primary[disabled], .docstring > section > a.button.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary, fieldset[disabled] .docstring > section > a.button.docs-sourcelink { - background-color: #4eb5de; - border-color: transparent; - box-shadow: none; } - .button.is-primary.is-inverted, .docstring > section > a.button.is-inverted.docs-sourcelink { - background-color: #fff; - color: #4eb5de; } - .button.is-primary.is-inverted:hover, .docstring > section > a.button.is-inverted.docs-sourcelink:hover, .button.is-primary.is-inverted.is-hovered, .docstring > section > a.button.is-inverted.is-hovered.docs-sourcelink { - background-color: #f2f2f2; } - .button.is-primary.is-inverted[disabled], .docstring > section > a.button.is-inverted.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-inverted, fieldset[disabled] .docstring > section > a.button.is-inverted.docs-sourcelink { - background-color: #fff; - border-color: transparent; - box-shadow: none; - color: #4eb5de; } - .button.is-primary.is-loading::after, .docstring > section > a.button.is-loading.docs-sourcelink::after { - border-color: transparent transparent #fff #fff !important; } - .button.is-primary.is-outlined, .docstring > section > a.button.is-outlined.docs-sourcelink { - background-color: transparent; - border-color: #4eb5de; - color: #4eb5de; } - .button.is-primary.is-outlined:hover, .docstring > section > a.button.is-outlined.docs-sourcelink:hover, .button.is-primary.is-outlined.is-hovered, .docstring > section > a.button.is-outlined.is-hovered.docs-sourcelink, .button.is-primary.is-outlined:focus, .docstring > section > a.button.is-outlined.docs-sourcelink:focus, .button.is-primary.is-outlined.is-focused, .docstring > section > a.button.is-outlined.is-focused.docs-sourcelink { - background-color: #4eb5de; - border-color: #4eb5de; - color: #fff; } - .button.is-primary.is-outlined.is-loading::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink::after { - border-color: transparent transparent #4eb5de #4eb5de !important; } - .button.is-primary.is-outlined.is-loading:hover::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:hover::after, .button.is-primary.is-outlined.is-loading.is-hovered::after, .docstring > section > a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after, .button.is-primary.is-outlined.is-loading:focus::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:focus::after, .button.is-primary.is-outlined.is-loading.is-focused::after, .docstring > section > a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after { - border-color: transparent transparent #fff #fff !important; } - .button.is-primary.is-outlined[disabled], .docstring > section > a.button.is-outlined.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-outlined, fieldset[disabled] .docstring > section > a.button.is-outlined.docs-sourcelink { - background-color: transparent; - border-color: #4eb5de; - box-shadow: none; - color: #4eb5de; } - .button.is-primary.is-inverted.is-outlined, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { - background-color: transparent; - border-color: #fff; - color: #fff; } - .button.is-primary.is-inverted.is-outlined:hover, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:hover, .button.is-primary.is-inverted.is-outlined.is-hovered, .docstring > section > a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink, .button.is-primary.is-inverted.is-outlined:focus, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:focus, .button.is-primary.is-inverted.is-outlined.is-focused, .docstring > section > a.button.is-inverted.is-outlined.is-focused.docs-sourcelink { - background-color: #fff; - color: #4eb5de; } - .button.is-primary.is-inverted.is-outlined.is-loading:hover::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after, .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after { - border-color: transparent transparent #4eb5de #4eb5de !important; } - .button.is-primary.is-inverted.is-outlined[disabled], .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-inverted.is-outlined, fieldset[disabled] .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { - background-color: transparent; - border-color: #fff; - box-shadow: none; - color: #fff; } - .button.is-link { - background-color: #2e63b8; - border-color: transparent; - color: #fff; } - .button.is-link:hover, .button.is-link.is-hovered { - background-color: #2b5eae; - border-color: transparent; - color: #fff; } - .button.is-link:focus, .button.is-link.is-focused { - border-color: transparent; - color: #fff; } - .button.is-link:focus:not(:active), .button.is-link.is-focused:not(:active) { - box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } - .button.is-link:active, .button.is-link.is-active { - background-color: #2958a4; - border-color: transparent; - color: #fff; } - .button.is-link[disabled], fieldset[disabled] .button.is-link { - background-color: #2e63b8; - border-color: transparent; - box-shadow: none; } - .button.is-link.is-inverted { - background-color: #fff; - color: #2e63b8; } - .button.is-link.is-inverted:hover, .button.is-link.is-inverted.is-hovered { - background-color: #f2f2f2; } - .button.is-link.is-inverted[disabled], fieldset[disabled] .button.is-link.is-inverted { - background-color: #fff; - border-color: transparent; - box-shadow: none; - color: #2e63b8; } - .button.is-link.is-loading::after { - border-color: transparent transparent #fff #fff !important; } - .button.is-link.is-outlined { - background-color: transparent; - border-color: #2e63b8; - color: #2e63b8; } - .button.is-link.is-outlined:hover, .button.is-link.is-outlined.is-hovered, .button.is-link.is-outlined:focus, .button.is-link.is-outlined.is-focused { - background-color: #2e63b8; - border-color: #2e63b8; - color: #fff; } - .button.is-link.is-outlined.is-loading::after { - border-color: transparent transparent #2e63b8 #2e63b8 !important; } - .button.is-link.is-outlined.is-loading:hover::after, .button.is-link.is-outlined.is-loading.is-hovered::after, .button.is-link.is-outlined.is-loading:focus::after, .button.is-link.is-outlined.is-loading.is-focused::after { - border-color: transparent transparent #fff #fff !important; } - .button.is-link.is-outlined[disabled], fieldset[disabled] .button.is-link.is-outlined { - background-color: transparent; - border-color: #2e63b8; - box-shadow: none; - color: #2e63b8; } - .button.is-link.is-inverted.is-outlined { - background-color: transparent; - border-color: #fff; - color: #fff; } - .button.is-link.is-inverted.is-outlined:hover, .button.is-link.is-inverted.is-outlined.is-hovered, .button.is-link.is-inverted.is-outlined:focus, .button.is-link.is-inverted.is-outlined.is-focused { - background-color: #fff; - color: #2e63b8; } - .button.is-link.is-inverted.is-outlined.is-loading:hover::after, .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-link.is-inverted.is-outlined.is-loading:focus::after, .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after { - border-color: transparent transparent #2e63b8 #2e63b8 !important; } - .button.is-link.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-link.is-inverted.is-outlined { - background-color: transparent; - border-color: #fff; - box-shadow: none; - color: #fff; } - .button.is-info { - background-color: #209cee; - border-color: transparent; - color: #fff; } - .button.is-info:hover, .button.is-info.is-hovered { - background-color: #1497ed; - border-color: transparent; - color: #fff; } - .button.is-info:focus, .button.is-info.is-focused { - border-color: transparent; - color: #fff; } - .button.is-info:focus:not(:active), .button.is-info.is-focused:not(:active) { - box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); } - .button.is-info:active, .button.is-info.is-active { - background-color: #1190e3; - border-color: transparent; - color: #fff; } - .button.is-info[disabled], fieldset[disabled] .button.is-info { - background-color: #209cee; - border-color: transparent; - box-shadow: none; } - .button.is-info.is-inverted { - background-color: #fff; - color: #209cee; } - .button.is-info.is-inverted:hover, .button.is-info.is-inverted.is-hovered { - background-color: #f2f2f2; } - .button.is-info.is-inverted[disabled], fieldset[disabled] .button.is-info.is-inverted { - background-color: #fff; - border-color: transparent; - box-shadow: none; - color: #209cee; } - .button.is-info.is-loading::after { - border-color: transparent transparent #fff #fff !important; } - .button.is-info.is-outlined { - background-color: transparent; - border-color: #209cee; - color: #209cee; } - .button.is-info.is-outlined:hover, .button.is-info.is-outlined.is-hovered, .button.is-info.is-outlined:focus, .button.is-info.is-outlined.is-focused { - background-color: #209cee; - border-color: #209cee; - color: #fff; } - .button.is-info.is-outlined.is-loading::after { - border-color: transparent transparent #209cee #209cee !important; } - .button.is-info.is-outlined.is-loading:hover::after, .button.is-info.is-outlined.is-loading.is-hovered::after, .button.is-info.is-outlined.is-loading:focus::after, .button.is-info.is-outlined.is-loading.is-focused::after { - border-color: transparent transparent #fff #fff !important; } - .button.is-info.is-outlined[disabled], fieldset[disabled] .button.is-info.is-outlined { - background-color: transparent; - border-color: #209cee; - box-shadow: none; - color: #209cee; } - .button.is-info.is-inverted.is-outlined { - background-color: transparent; - border-color: #fff; - color: #fff; } - .button.is-info.is-inverted.is-outlined:hover, .button.is-info.is-inverted.is-outlined.is-hovered, .button.is-info.is-inverted.is-outlined:focus, .button.is-info.is-inverted.is-outlined.is-focused { - background-color: #fff; - color: #209cee; } - .button.is-info.is-inverted.is-outlined.is-loading:hover::after, .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-info.is-inverted.is-outlined.is-loading:focus::after, .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after { - border-color: transparent transparent #209cee #209cee !important; } - .button.is-info.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-info.is-inverted.is-outlined { - background-color: transparent; - border-color: #fff; - box-shadow: none; - color: #fff; } - .button.is-success { - background-color: #22c35b; - border-color: transparent; - color: #fff; } - .button.is-success:hover, .button.is-success.is-hovered { - background-color: #20b856; - border-color: transparent; - color: #fff; } - .button.is-success:focus, .button.is-success.is-focused { - border-color: transparent; - color: #fff; } - .button.is-success:focus:not(:active), .button.is-success.is-focused:not(:active) { - box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); } - .button.is-success:active, .button.is-success.is-active { - background-color: #1ead51; - border-color: transparent; - color: #fff; } - .button.is-success[disabled], fieldset[disabled] .button.is-success { - background-color: #22c35b; - border-color: transparent; - box-shadow: none; } - .button.is-success.is-inverted { - background-color: #fff; - color: #22c35b; } - .button.is-success.is-inverted:hover, .button.is-success.is-inverted.is-hovered { - background-color: #f2f2f2; } - .button.is-success.is-inverted[disabled], fieldset[disabled] .button.is-success.is-inverted { - background-color: #fff; - border-color: transparent; - box-shadow: none; - color: #22c35b; } - .button.is-success.is-loading::after { - border-color: transparent transparent #fff #fff !important; } - .button.is-success.is-outlined { - background-color: transparent; - border-color: #22c35b; - color: #22c35b; } - .button.is-success.is-outlined:hover, .button.is-success.is-outlined.is-hovered, .button.is-success.is-outlined:focus, .button.is-success.is-outlined.is-focused { - background-color: #22c35b; - border-color: #22c35b; - color: #fff; } - .button.is-success.is-outlined.is-loading::after { - border-color: transparent transparent #22c35b #22c35b !important; } - .button.is-success.is-outlined.is-loading:hover::after, .button.is-success.is-outlined.is-loading.is-hovered::after, .button.is-success.is-outlined.is-loading:focus::after, .button.is-success.is-outlined.is-loading.is-focused::after { - border-color: transparent transparent #fff #fff !important; } - .button.is-success.is-outlined[disabled], fieldset[disabled] .button.is-success.is-outlined { - background-color: transparent; - border-color: #22c35b; - box-shadow: none; - color: #22c35b; } - .button.is-success.is-inverted.is-outlined { - background-color: transparent; - border-color: #fff; - color: #fff; } - .button.is-success.is-inverted.is-outlined:hover, .button.is-success.is-inverted.is-outlined.is-hovered, .button.is-success.is-inverted.is-outlined:focus, .button.is-success.is-inverted.is-outlined.is-focused { - background-color: #fff; - color: #22c35b; } - .button.is-success.is-inverted.is-outlined.is-loading:hover::after, .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-success.is-inverted.is-outlined.is-loading:focus::after, .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after { - border-color: transparent transparent #22c35b #22c35b !important; } - .button.is-success.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-success.is-inverted.is-outlined { - background-color: transparent; - border-color: #fff; - box-shadow: none; - color: #fff; } - .button.is-warning { - background-color: #ffdd57; - border-color: transparent; - color: rgba(0, 0, 0, 0.7); } - .button.is-warning:hover, .button.is-warning.is-hovered { - background-color: #ffda4a; - border-color: transparent; - color: rgba(0, 0, 0, 0.7); } - .button.is-warning:focus, .button.is-warning.is-focused { - border-color: transparent; - color: rgba(0, 0, 0, 0.7); } - .button.is-warning:focus:not(:active), .button.is-warning.is-focused:not(:active) { - box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); } - .button.is-warning:active, .button.is-warning.is-active { - background-color: #ffd83e; - border-color: transparent; - color: rgba(0, 0, 0, 0.7); } - .button.is-warning[disabled], fieldset[disabled] .button.is-warning { - background-color: #ffdd57; - border-color: transparent; - box-shadow: none; } - .button.is-warning.is-inverted { - background-color: rgba(0, 0, 0, 0.7); - color: #ffdd57; } - .button.is-warning.is-inverted:hover, .button.is-warning.is-inverted.is-hovered { - background-color: rgba(0, 0, 0, 0.7); } - .button.is-warning.is-inverted[disabled], fieldset[disabled] .button.is-warning.is-inverted { - background-color: rgba(0, 0, 0, 0.7); - border-color: transparent; - box-shadow: none; - color: #ffdd57; } - .button.is-warning.is-loading::after { - border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; } - .button.is-warning.is-outlined { - background-color: transparent; - border-color: #ffdd57; - color: #ffdd57; } - .button.is-warning.is-outlined:hover, .button.is-warning.is-outlined.is-hovered, .button.is-warning.is-outlined:focus, .button.is-warning.is-outlined.is-focused { - background-color: #ffdd57; - border-color: #ffdd57; - color: rgba(0, 0, 0, 0.7); } - .button.is-warning.is-outlined.is-loading::after { - border-color: transparent transparent #ffdd57 #ffdd57 !important; } - .button.is-warning.is-outlined.is-loading:hover::after, .button.is-warning.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-outlined.is-loading:focus::after, .button.is-warning.is-outlined.is-loading.is-focused::after { - border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; } - .button.is-warning.is-outlined[disabled], fieldset[disabled] .button.is-warning.is-outlined { - background-color: transparent; - border-color: #ffdd57; - box-shadow: none; - color: #ffdd57; } - .button.is-warning.is-inverted.is-outlined { - background-color: transparent; - border-color: rgba(0, 0, 0, 0.7); - color: rgba(0, 0, 0, 0.7); } - .button.is-warning.is-inverted.is-outlined:hover, .button.is-warning.is-inverted.is-outlined.is-hovered, .button.is-warning.is-inverted.is-outlined:focus, .button.is-warning.is-inverted.is-outlined.is-focused { - background-color: rgba(0, 0, 0, 0.7); - color: #ffdd57; } - .button.is-warning.is-inverted.is-outlined.is-loading:hover::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after { - border-color: transparent transparent #ffdd57 #ffdd57 !important; } - .button.is-warning.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-warning.is-inverted.is-outlined { - background-color: transparent; - border-color: rgba(0, 0, 0, 0.7); - box-shadow: none; - color: rgba(0, 0, 0, 0.7); } - .button.is-danger { - background-color: #da0b00; - border-color: transparent; - color: #fff; } - .button.is-danger:hover, .button.is-danger.is-hovered { - background-color: #cd0a00; - border-color: transparent; - color: #fff; } - .button.is-danger:focus, .button.is-danger.is-focused { - border-color: transparent; - color: #fff; } - .button.is-danger:focus:not(:active), .button.is-danger.is-focused:not(:active) { - box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); } - .button.is-danger:active, .button.is-danger.is-active { - background-color: #c10a00; - border-color: transparent; - color: #fff; } - .button.is-danger[disabled], fieldset[disabled] .button.is-danger { - background-color: #da0b00; - border-color: transparent; - box-shadow: none; } - .button.is-danger.is-inverted { - background-color: #fff; - color: #da0b00; } - .button.is-danger.is-inverted:hover, .button.is-danger.is-inverted.is-hovered { - background-color: #f2f2f2; } - .button.is-danger.is-inverted[disabled], fieldset[disabled] .button.is-danger.is-inverted { - background-color: #fff; - border-color: transparent; - box-shadow: none; - color: #da0b00; } - .button.is-danger.is-loading::after { - border-color: transparent transparent #fff #fff !important; } - .button.is-danger.is-outlined { - background-color: transparent; - border-color: #da0b00; - color: #da0b00; } - .button.is-danger.is-outlined:hover, .button.is-danger.is-outlined.is-hovered, .button.is-danger.is-outlined:focus, .button.is-danger.is-outlined.is-focused { - background-color: #da0b00; - border-color: #da0b00; - color: #fff; } - .button.is-danger.is-outlined.is-loading::after { - border-color: transparent transparent #da0b00 #da0b00 !important; } - .button.is-danger.is-outlined.is-loading:hover::after, .button.is-danger.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-outlined.is-loading:focus::after, .button.is-danger.is-outlined.is-loading.is-focused::after { - border-color: transparent transparent #fff #fff !important; } - .button.is-danger.is-outlined[disabled], fieldset[disabled] .button.is-danger.is-outlined { - background-color: transparent; - border-color: #da0b00; - box-shadow: none; - color: #da0b00; } - .button.is-danger.is-inverted.is-outlined { - background-color: transparent; - border-color: #fff; - color: #fff; } - .button.is-danger.is-inverted.is-outlined:hover, .button.is-danger.is-inverted.is-outlined.is-hovered, .button.is-danger.is-inverted.is-outlined:focus, .button.is-danger.is-inverted.is-outlined.is-focused { - background-color: #fff; - color: #da0b00; } - .button.is-danger.is-inverted.is-outlined.is-loading:hover::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after { - border-color: transparent transparent #da0b00 #da0b00 !important; } - .button.is-danger.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-danger.is-inverted.is-outlined { - background-color: transparent; - border-color: #fff; - box-shadow: none; - color: #fff; } - .button.is-small, #documenter .docs-sidebar form.docs-search > input.button { - border-radius: 2px; - font-size: 0.75rem; } - .button.is-normal { - font-size: 1rem; } - .button.is-medium { - font-size: 1.25rem; } - .button.is-large { - font-size: 1.5rem; } - .button[disabled], fieldset[disabled] .button { - background-color: white; - border-color: #dbdbdb; - box-shadow: none; - opacity: 0.5; } - .button.is-fullwidth { - display: flex; - width: 100%; } - .button.is-loading { - color: transparent !important; - pointer-events: none; } - .button.is-loading::after { - position: absolute; - left: calc(50% - (1em / 2)); - top: calc(50% - (1em / 2)); - position: absolute !important; } - .button.is-static { - background-color: whitesmoke; - border-color: #dbdbdb; - color: #6b6b6b; - box-shadow: none; - pointer-events: none; } - .button.is-rounded, #documenter .docs-sidebar form.docs-search > input.button { - border-radius: 290486px; - padding-left: 1em; - padding-right: 1em; } - -.buttons { - align-items: center; - display: flex; - flex-wrap: wrap; - justify-content: flex-start; } - .buttons .button { - margin-bottom: 0.5rem; } - .buttons .button:not(:last-child):not(.is-fullwidth) { - margin-right: 0.5rem; } - .buttons:last-child { - margin-bottom: -0.5rem; } - .buttons:not(:last-child) { - margin-bottom: 1rem; } - .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) { - border-radius: 2px; - font-size: 0.75rem; } - .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) { - font-size: 1.25rem; } - .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) { - font-size: 1.5rem; } - .buttons.has-addons .button:not(:first-child) { - border-bottom-left-radius: 0; - border-top-left-radius: 0; } - .buttons.has-addons .button:not(:last-child) { - border-bottom-right-radius: 0; - border-top-right-radius: 0; - margin-right: -1px; } - .buttons.has-addons .button:last-child { - margin-right: 0; } - .buttons.has-addons .button:hover, .buttons.has-addons .button.is-hovered { - z-index: 2; } - .buttons.has-addons .button:focus, .buttons.has-addons .button.is-focused, .buttons.has-addons .button:active, .buttons.has-addons .button.is-active, .buttons.has-addons .button.is-selected { - z-index: 3; } - .buttons.has-addons .button:focus:hover, .buttons.has-addons .button.is-focused:hover, .buttons.has-addons .button:active:hover, .buttons.has-addons .button.is-active:hover, .buttons.has-addons .button.is-selected:hover { - z-index: 4; } - .buttons.has-addons .button.is-expanded { - flex-grow: 1; - flex-shrink: 1; } - .buttons.is-centered { - justify-content: center; } - .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) { - margin-left: 0.25rem; - margin-right: 0.25rem; } - .buttons.is-right { - justify-content: flex-end; } - .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) { - margin-left: 0.25rem; - margin-right: 0.25rem; } - -.container { - flex-grow: 1; - margin: 0 auto; - position: relative; - width: auto; } - @media screen and (min-width: 1056px) { - .container { - max-width: 992px; } - .container.is-fluid { - margin-left: 32px; - margin-right: 32px; - max-width: none; } } - @media screen and (max-width: 1215px) { - .container.is-widescreen { - max-width: 1152px; } } - @media screen and (max-width: 1407px) { - .container.is-fullhd { - max-width: 1344px; } } - @media screen and (min-width: 1216px) { - .container { - max-width: 1152px; } } - @media screen and (min-width: 1408px) { - .container { - max-width: 1344px; } } -.content li + li { - margin-top: 0.25em; } - -.content p:not(:last-child), -.content dl:not(:last-child), -.content ol:not(:last-child), -.content ul:not(:last-child), -.content blockquote:not(:last-child), -.content pre:not(:last-child), -.content table:not(:last-child) { - margin-bottom: 1em; } - -.content h1, -.content h2, -.content h3, -.content h4, -.content h5, -.content h6 { - color: #222222; - font-weight: 600; - line-height: 1.125; } - -.content h1 { - font-size: 2em; - margin-bottom: 0.5em; } - .content h1:not(:first-child) { - margin-top: 1em; } - -.content h2 { - font-size: 1.75em; - margin-bottom: 0.5714em; } - .content h2:not(:first-child) { - margin-top: 1.1428em; } - -.content h3 { - font-size: 1.5em; - margin-bottom: 0.6666em; } - .content h3:not(:first-child) { - margin-top: 1.3333em; } - -.content h4 { - font-size: 1.25em; - margin-bottom: 0.8em; } - -.content h5 { - font-size: 1.125em; - margin-bottom: 0.8888em; } - -.content h6 { - font-size: 1em; - margin-bottom: 1em; } - -.content blockquote { - background-color: whitesmoke; - border-left: 5px solid #dbdbdb; - padding: 1.25em 1.5em; } - -.content ol { - list-style-position: outside; - margin-left: 2em; - margin-top: 1em; } - .content ol:not([type]) { - list-style-type: decimal; } - .content ol.is-lower-alpha:not([type]) { - list-style-type: lower-alpha; } - .content ol.is-lower-roman:not([type]) { - list-style-type: lower-roman; } - .content ol.is-upper-alpha:not([type]) { - list-style-type: upper-alpha; } - .content ol.is-upper-roman:not([type]) { - list-style-type: upper-roman; } - -.content ul { - list-style: disc outside; - margin-left: 2em; - margin-top: 1em; } - .content ul ul { - list-style-type: circle; - margin-top: 0.5em; } - .content ul ul ul { - list-style-type: square; } - -.content dd { - margin-left: 2em; } - -.content figure { - margin-left: 2em; - margin-right: 2em; - text-align: center; } - .content figure:not(:first-child) { - margin-top: 2em; } - .content figure:not(:last-child) { - margin-bottom: 2em; } - .content figure img { - display: inline-block; } - .content figure figcaption { - font-style: italic; } - -.content pre { - -webkit-overflow-scrolling: touch; - overflow-x: auto; - padding: 0; - white-space: pre; - word-wrap: normal; } - -.content sup, -.content sub { - font-size: 75%; } - -.content table { - width: 100%; } - .content table td, - .content table th { - border: 1px solid #dbdbdb; - border-width: 0 0 1px; - padding: 0.5em 0.75em; - vertical-align: top; } - .content table th { - color: #222222; } - .content table th:not([align]) { - text-align: left; } - .content table thead td, - .content table thead th { - border-width: 0 0 2px; - color: #222222; } - .content table tfoot td, - .content table tfoot th { - border-width: 2px 0 0; - color: #222222; } - .content table tbody tr:last-child td, - .content table tbody tr:last-child th { - border-bottom-width: 0; } - -.content .tabs li + li { - margin-top: 0; } - -.content.is-small, #documenter .docs-sidebar form.docs-search > input.content { - font-size: 0.75rem; } - -.content.is-medium { - font-size: 1.25rem; } - -.content.is-large { - font-size: 1.5rem; } - -.icon { - align-items: center; - display: inline-flex; - justify-content: center; - height: 1.5rem; - width: 1.5rem; } - .icon.is-small, #documenter .docs-sidebar form.docs-search > input.icon { - height: 1rem; - width: 1rem; } - .icon.is-medium { - height: 2rem; - width: 2rem; } - .icon.is-large { - height: 3rem; - width: 3rem; } - -.image, #documenter .docs-sidebar .docs-logo > img { - display: block; - position: relative; } - .image img, #documenter .docs-sidebar .docs-logo > img img { - display: block; - height: auto; - width: 100%; } - .image img.is-rounded, #documenter .docs-sidebar .docs-logo > img img.is-rounded { - border-radius: 290486px; } - .image.is-square img, #documenter .docs-sidebar .docs-logo > img.is-square img, - .image.is-square .has-ratio, - #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, .image.is-1by1 img, #documenter .docs-sidebar .docs-logo > img.is-1by1 img, - .image.is-1by1 .has-ratio, - #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, .image.is-5by4 img, #documenter .docs-sidebar .docs-logo > img.is-5by4 img, - .image.is-5by4 .has-ratio, - #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, .image.is-4by3 img, #documenter .docs-sidebar .docs-logo > img.is-4by3 img, - .image.is-4by3 .has-ratio, - #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, .image.is-3by2 img, #documenter .docs-sidebar .docs-logo > img.is-3by2 img, - .image.is-3by2 .has-ratio, - #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, .image.is-5by3 img, #documenter .docs-sidebar .docs-logo > img.is-5by3 img, - .image.is-5by3 .has-ratio, - #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, .image.is-16by9 img, #documenter .docs-sidebar .docs-logo > img.is-16by9 img, - .image.is-16by9 .has-ratio, - #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, .image.is-2by1 img, #documenter .docs-sidebar .docs-logo > img.is-2by1 img, - .image.is-2by1 .has-ratio, - #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, .image.is-3by1 img, #documenter .docs-sidebar .docs-logo > img.is-3by1 img, - .image.is-3by1 .has-ratio, - #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, .image.is-4by5 img, #documenter .docs-sidebar .docs-logo > img.is-4by5 img, - .image.is-4by5 .has-ratio, - #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, .image.is-3by4 img, #documenter .docs-sidebar .docs-logo > img.is-3by4 img, - .image.is-3by4 .has-ratio, - #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, .image.is-2by3 img, #documenter .docs-sidebar .docs-logo > img.is-2by3 img, - .image.is-2by3 .has-ratio, - #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, .image.is-3by5 img, #documenter .docs-sidebar .docs-logo > img.is-3by5 img, - .image.is-3by5 .has-ratio, - #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, .image.is-9by16 img, #documenter .docs-sidebar .docs-logo > img.is-9by16 img, - .image.is-9by16 .has-ratio, - #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, .image.is-1by2 img, #documenter .docs-sidebar .docs-logo > img.is-1by2 img, - .image.is-1by2 .has-ratio, - #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, .image.is-1by3 img, #documenter .docs-sidebar .docs-logo > img.is-1by3 img, - .image.is-1by3 .has-ratio, - #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio { - height: 100%; - width: 100%; } - .image.is-square, #documenter .docs-sidebar .docs-logo > img.is-square, .image.is-1by1, #documenter .docs-sidebar .docs-logo > img.is-1by1 { - padding-top: 100%; } - .image.is-5by4, #documenter .docs-sidebar .docs-logo > img.is-5by4 { - padding-top: 80%; } - .image.is-4by3, #documenter .docs-sidebar .docs-logo > img.is-4by3 { - padding-top: 75%; } - .image.is-3by2, #documenter .docs-sidebar .docs-logo > img.is-3by2 { - padding-top: 66.6666%; } - .image.is-5by3, #documenter .docs-sidebar .docs-logo > img.is-5by3 { - padding-top: 60%; } - .image.is-16by9, #documenter .docs-sidebar .docs-logo > img.is-16by9 { - padding-top: 56.25%; } - .image.is-2by1, #documenter .docs-sidebar .docs-logo > img.is-2by1 { - padding-top: 50%; } - .image.is-3by1, #documenter .docs-sidebar .docs-logo > img.is-3by1 { - padding-top: 33.3333%; } - .image.is-4by5, #documenter .docs-sidebar .docs-logo > img.is-4by5 { - padding-top: 125%; } - .image.is-3by4, #documenter .docs-sidebar .docs-logo > img.is-3by4 { - padding-top: 133.3333%; } - .image.is-2by3, #documenter .docs-sidebar .docs-logo > img.is-2by3 { - padding-top: 150%; } - .image.is-3by5, #documenter .docs-sidebar .docs-logo > img.is-3by5 { - padding-top: 166.6666%; } - .image.is-9by16, #documenter .docs-sidebar .docs-logo > img.is-9by16 { - padding-top: 177.7777%; } - .image.is-1by2, #documenter .docs-sidebar .docs-logo > img.is-1by2 { - padding-top: 200%; } - .image.is-1by3, #documenter .docs-sidebar .docs-logo > img.is-1by3 { - padding-top: 300%; } - .image.is-16x16, #documenter .docs-sidebar .docs-logo > img.is-16x16 { - height: 16px; - width: 16px; } - .image.is-24x24, #documenter .docs-sidebar .docs-logo > img.is-24x24 { - height: 24px; - width: 24px; } - .image.is-32x32, #documenter .docs-sidebar .docs-logo > img.is-32x32 { - height: 32px; - width: 32px; } - .image.is-48x48, #documenter .docs-sidebar .docs-logo > img.is-48x48 { - height: 48px; - width: 48px; } - .image.is-64x64, #documenter .docs-sidebar .docs-logo > img.is-64x64 { - height: 64px; - width: 64px; } - .image.is-96x96, #documenter .docs-sidebar .docs-logo > img.is-96x96 { - height: 96px; - width: 96px; } - .image.is-128x128, #documenter .docs-sidebar .docs-logo > img.is-128x128 { - height: 128px; - width: 128px; } - -.notification { - background-color: whitesmoke; - border-radius: 4px; - padding: 1.25rem 2.5rem 1.25rem 1.5rem; - position: relative; } - .notification a:not(.button):not(.dropdown-item) { - color: currentColor; - text-decoration: underline; } - .notification strong { - color: currentColor; } - .notification code, - .notification pre { - background: white; } - .notification pre code { - background: transparent; } - .notification > .delete { - position: absolute; - right: 0.5rem; - top: 0.5rem; } - .notification .title, - .notification .subtitle, - .notification .content { - color: currentColor; } - .notification.is-white { - background-color: white; - color: #0a0a0a; } - .notification.is-black { - background-color: #0a0a0a; - color: white; } - .notification.is-light { - background-color: whitesmoke; - color: #363636; } - .notification.is-dark, .content kbd.notification { - background-color: #363636; - color: whitesmoke; } - .notification.is-primary, .docstring > section > a.notification.docs-sourcelink { - background-color: #4eb5de; - color: #fff; } - .notification.is-link { - background-color: #2e63b8; - color: #fff; } - .notification.is-info { - background-color: #209cee; - color: #fff; } - .notification.is-success { - background-color: #22c35b; - color: #fff; } - .notification.is-warning { - background-color: #ffdd57; - color: rgba(0, 0, 0, 0.7); } - .notification.is-danger { - background-color: #da0b00; - color: #fff; } - -.progress { - -moz-appearance: none; - -webkit-appearance: none; - border: none; - border-radius: 290486px; - display: block; - height: 1rem; - overflow: hidden; - padding: 0; - width: 100%; } - .progress::-webkit-progress-bar { - background-color: #dbdbdb; } - .progress::-webkit-progress-value { - background-color: #222222; } - .progress::-moz-progress-bar { - background-color: #222222; } - .progress::-ms-fill { - background-color: #222222; - border: none; } - .progress.is-white::-webkit-progress-value { - background-color: white; } - .progress.is-white::-moz-progress-bar { - background-color: white; } - .progress.is-white::-ms-fill { - background-color: white; } - .progress.is-white:indeterminate { - background-image: linear-gradient(to right, white 30%, #dbdbdb 30%); } - .progress.is-black::-webkit-progress-value { - background-color: #0a0a0a; } - .progress.is-black::-moz-progress-bar { - background-color: #0a0a0a; } - .progress.is-black::-ms-fill { - background-color: #0a0a0a; } - .progress.is-black:indeterminate { - background-image: linear-gradient(to right, #0a0a0a 30%, #dbdbdb 30%); } - .progress.is-light::-webkit-progress-value { - background-color: whitesmoke; } - .progress.is-light::-moz-progress-bar { - background-color: whitesmoke; } - .progress.is-light::-ms-fill { - background-color: whitesmoke; } - .progress.is-light:indeterminate { - background-image: linear-gradient(to right, whitesmoke 30%, #dbdbdb 30%); } - .progress.is-dark::-webkit-progress-value, .content kbd.progress::-webkit-progress-value { - background-color: #363636; } - .progress.is-dark::-moz-progress-bar, .content kbd.progress::-moz-progress-bar { - background-color: #363636; } - .progress.is-dark::-ms-fill, .content kbd.progress::-ms-fill { - background-color: #363636; } - .progress.is-dark:indeterminate, .content kbd.progress:indeterminate { - background-image: linear-gradient(to right, #363636 30%, #dbdbdb 30%); } - .progress.is-primary::-webkit-progress-value, .docstring > section > a.progress.docs-sourcelink::-webkit-progress-value { - background-color: #4eb5de; } - .progress.is-primary::-moz-progress-bar, .docstring > section > a.progress.docs-sourcelink::-moz-progress-bar { - background-color: #4eb5de; } - .progress.is-primary::-ms-fill, .docstring > section > a.progress.docs-sourcelink::-ms-fill { - background-color: #4eb5de; } - .progress.is-primary:indeterminate, .docstring > section > a.progress.docs-sourcelink:indeterminate { - background-image: linear-gradient(to right, #4eb5de 30%, #dbdbdb 30%); } - .progress.is-link::-webkit-progress-value { - background-color: #2e63b8; } - .progress.is-link::-moz-progress-bar { - background-color: #2e63b8; } - .progress.is-link::-ms-fill { - background-color: #2e63b8; } - .progress.is-link:indeterminate { - background-image: linear-gradient(to right, #2e63b8 30%, #dbdbdb 30%); } - .progress.is-info::-webkit-progress-value { - background-color: #209cee; } - .progress.is-info::-moz-progress-bar { - background-color: #209cee; } - .progress.is-info::-ms-fill { - background-color: #209cee; } - .progress.is-info:indeterminate { - background-image: linear-gradient(to right, #209cee 30%, #dbdbdb 30%); } - .progress.is-success::-webkit-progress-value { - background-color: #22c35b; } - .progress.is-success::-moz-progress-bar { - background-color: #22c35b; } - .progress.is-success::-ms-fill { - background-color: #22c35b; } - .progress.is-success:indeterminate { - background-image: linear-gradient(to right, #22c35b 30%, #dbdbdb 30%); } - .progress.is-warning::-webkit-progress-value { - background-color: #ffdd57; } - .progress.is-warning::-moz-progress-bar { - background-color: #ffdd57; } - .progress.is-warning::-ms-fill { - background-color: #ffdd57; } - .progress.is-warning:indeterminate { - background-image: linear-gradient(to right, #ffdd57 30%, #dbdbdb 30%); } - .progress.is-danger::-webkit-progress-value { - background-color: #da0b00; } - .progress.is-danger::-moz-progress-bar { - background-color: #da0b00; } - .progress.is-danger::-ms-fill { - background-color: #da0b00; } - .progress.is-danger:indeterminate { - background-image: linear-gradient(to right, #da0b00 30%, #dbdbdb 30%); } - .progress:indeterminate { - animation-duration: 1.5s; - animation-iteration-count: infinite; - animation-name: moveIndeterminate; - animation-timing-function: linear; - background-color: #dbdbdb; - background-image: linear-gradient(to right, #222222 30%, #dbdbdb 30%); - background-position: top left; - background-repeat: no-repeat; - background-size: 150% 150%; } - .progress:indeterminate::-webkit-progress-bar { - background-color: transparent; } - .progress:indeterminate::-moz-progress-bar { - background-color: transparent; } - .progress.is-small, #documenter .docs-sidebar form.docs-search > input.progress { - height: 0.75rem; } - .progress.is-medium { - height: 1.25rem; } - .progress.is-large { - height: 1.5rem; } - -@keyframes moveIndeterminate { - from { - background-position: 200% 0; } - to { - background-position: -200% 0; } } - -.table { - background-color: white; - color: #363636; } - .table td, - .table th { - border: 1px solid #dbdbdb; - border-width: 0 0 1px; - padding: 0.5em 0.75em; - vertical-align: top; } - .table td.is-white, - .table th.is-white { - background-color: white; - border-color: white; - color: #0a0a0a; } - .table td.is-black, - .table th.is-black { - background-color: #0a0a0a; - border-color: #0a0a0a; - color: white; } - .table td.is-light, - .table th.is-light { - background-color: whitesmoke; - border-color: whitesmoke; - color: #363636; } - .table td.is-dark, - .table th.is-dark { - background-color: #363636; - border-color: #363636; - color: whitesmoke; } - .table td.is-primary, - .table th.is-primary { - background-color: #4eb5de; - border-color: #4eb5de; - color: #fff; } - .table td.is-link, - .table th.is-link { - background-color: #2e63b8; - border-color: #2e63b8; - color: #fff; } - .table td.is-info, - .table th.is-info { - background-color: #209cee; - border-color: #209cee; - color: #fff; } - .table td.is-success, - .table th.is-success { - background-color: #22c35b; - border-color: #22c35b; - color: #fff; } - .table td.is-warning, - .table th.is-warning { - background-color: #ffdd57; - border-color: #ffdd57; - color: rgba(0, 0, 0, 0.7); } - .table td.is-danger, - .table th.is-danger { - background-color: #da0b00; - border-color: #da0b00; - color: #fff; } - .table td.is-narrow, - .table th.is-narrow { - white-space: nowrap; - width: 1%; } - .table td.is-selected, - .table th.is-selected { - background-color: #4eb5de; - color: #fff; } - .table td.is-selected a, - .table td.is-selected strong, - .table th.is-selected a, - .table th.is-selected strong { - color: currentColor; } - .table th { - color: #222222; } - .table th:not([align]) { - text-align: left; } - .table tr.is-selected { - background-color: #4eb5de; - color: #fff; } - .table tr.is-selected a, - .table tr.is-selected strong { - color: currentColor; } - .table tr.is-selected td, - .table tr.is-selected th { - border-color: #fff; - color: currentColor; } - .table thead { - background-color: transparent; } - .table thead td, - .table thead th { - border-width: 0 0 2px; - color: #222222; } - .table tfoot { - background-color: transparent; } - .table tfoot td, - .table tfoot th { - border-width: 2px 0 0; - color: #222222; } - .table tbody { - background-color: transparent; } - .table tbody tr:last-child td, - .table tbody tr:last-child th { - border-bottom-width: 0; } - .table.is-bordered td, - .table.is-bordered th { - border-width: 1px; } - .table.is-bordered tr:last-child td, - .table.is-bordered tr:last-child th { - border-bottom-width: 1px; } - .table.is-fullwidth { - width: 100%; } - .table.is-hoverable tbody tr:not(.is-selected):hover { - background-color: #fafafa; } - .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover { - background-color: #fafafa; } - .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even) { - background-color: whitesmoke; } - .table.is-narrow td, - .table.is-narrow th { - padding: 0.25em 0.5em; } - .table.is-striped tbody tr:not(.is-selected):nth-child(even) { - background-color: #fafafa; } - -.table-container { - -webkit-overflow-scrolling: touch; - overflow: auto; - overflow-y: hidden; - max-width: 100%; } - -.tags { - align-items: center; - display: flex; - flex-wrap: wrap; - justify-content: flex-start; } - .tags .tag, .tags .content kbd, .content .tags kbd, .tags .docstring > section > a.docs-sourcelink { - margin-bottom: 0.5rem; } - .tags .tag:not(:last-child), .tags .content kbd:not(:last-child), .content .tags kbd:not(:last-child), .tags .docstring > section > a.docs-sourcelink:not(:last-child) { - margin-right: 0.5rem; } - .tags:last-child { - margin-bottom: -0.5rem; } - .tags:not(:last-child) { - margin-bottom: 1rem; } - .tags.are-medium .tag:not(.is-normal):not(.is-large), .tags.are-medium .content kbd:not(.is-normal):not(.is-large), .content .tags.are-medium kbd:not(.is-normal):not(.is-large), .tags.are-medium .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-large) { - font-size: 1rem; } - .tags.are-large .tag:not(.is-normal):not(.is-medium), .tags.are-large .content kbd:not(.is-normal):not(.is-medium), .content .tags.are-large kbd:not(.is-normal):not(.is-medium), .tags.are-large .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-medium) { - font-size: 1.25rem; } - .tags.is-centered { - justify-content: center; } - .tags.is-centered .tag, .tags.is-centered .content kbd, .content .tags.is-centered kbd, .tags.is-centered .docstring > section > a.docs-sourcelink { - margin-right: 0.25rem; - margin-left: 0.25rem; } - .tags.is-right { - justify-content: flex-end; } - .tags.is-right .tag:not(:first-child), .tags.is-right .content kbd:not(:first-child), .content .tags.is-right kbd:not(:first-child), .tags.is-right .docstring > section > a.docs-sourcelink:not(:first-child) { - margin-left: 0.5rem; } - .tags.is-right .tag:not(:last-child), .tags.is-right .content kbd:not(:last-child), .content .tags.is-right kbd:not(:last-child), .tags.is-right .docstring > section > a.docs-sourcelink:not(:last-child) { - margin-right: 0; } - .tags.has-addons .tag, .tags.has-addons .content kbd, .content .tags.has-addons kbd, .tags.has-addons .docstring > section > a.docs-sourcelink { - margin-right: 0; } - .tags.has-addons .tag:not(:first-child), .tags.has-addons .content kbd:not(:first-child), .content .tags.has-addons kbd:not(:first-child), .tags.has-addons .docstring > section > a.docs-sourcelink:not(:first-child) { - margin-left: 0; - border-bottom-left-radius: 0; - border-top-left-radius: 0; } - .tags.has-addons .tag:not(:last-child), .tags.has-addons .content kbd:not(:last-child), .content .tags.has-addons kbd:not(:last-child), .tags.has-addons .docstring > section > a.docs-sourcelink:not(:last-child) { - border-bottom-right-radius: 0; - border-top-right-radius: 0; } - -.tag:not(body), .content kbd:not(body), .docstring > section > a.docs-sourcelink:not(body) { - align-items: center; - background-color: whitesmoke; - border-radius: 4px; - color: #222222; - display: inline-flex; - font-size: 0.75rem; - height: 2em; - justify-content: center; - line-height: 1.5; - padding-left: 0.75em; - padding-right: 0.75em; - white-space: nowrap; } - .tag:not(body) .delete, .content kbd:not(body) .delete, .docstring > section > a.docs-sourcelink:not(body) .delete { - margin-left: 0.25rem; - margin-right: -0.375rem; } - .tag.is-white:not(body), .content kbd.is-white:not(body), .docstring > section > a.docs-sourcelink.is-white:not(body) { - background-color: white; - color: #0a0a0a; } - .tag.is-black:not(body), .content kbd.is-black:not(body), .docstring > section > a.docs-sourcelink.is-black:not(body) { - background-color: #0a0a0a; - color: white; } - .tag.is-light:not(body), .content kbd.is-light:not(body), .docstring > section > a.docs-sourcelink.is-light:not(body) { - background-color: whitesmoke; - color: #363636; } - .tag.is-dark:not(body), .content kbd:not(body), .docstring > section > a.docs-sourcelink.is-dark:not(body), .content .docstring > section > kbd:not(body) { - background-color: #363636; - color: whitesmoke; } - .tag.is-primary:not(body), .content kbd.is-primary:not(body), .docstring > section > a.docs-sourcelink:not(body) { - background-color: #4eb5de; - color: #fff; } - .tag.is-link:not(body), .content kbd.is-link:not(body), .docstring > section > a.docs-sourcelink.is-link:not(body) { - background-color: #2e63b8; - color: #fff; } - .tag.is-info:not(body), .content kbd.is-info:not(body), .docstring > section > a.docs-sourcelink.is-info:not(body) { - background-color: #209cee; - color: #fff; } - .tag.is-success:not(body), .content kbd.is-success:not(body), .docstring > section > a.docs-sourcelink.is-success:not(body) { - background-color: #22c35b; - color: #fff; } - .tag.is-warning:not(body), .content kbd.is-warning:not(body), .docstring > section > a.docs-sourcelink.is-warning:not(body) { - background-color: #ffdd57; - color: rgba(0, 0, 0, 0.7); } - .tag.is-danger:not(body), .content kbd.is-danger:not(body), .docstring > section > a.docs-sourcelink.is-danger:not(body) { - background-color: #da0b00; - color: #fff; } - .tag.is-normal:not(body), .content kbd.is-normal:not(body), .docstring > section > a.docs-sourcelink.is-normal:not(body) { - font-size: 0.75rem; } - .tag.is-medium:not(body), .content kbd.is-medium:not(body), .docstring > section > a.docs-sourcelink.is-medium:not(body) { - font-size: 1rem; } - .tag.is-large:not(body), .content kbd.is-large:not(body), .docstring > section > a.docs-sourcelink.is-large:not(body) { - font-size: 1.25rem; } - .tag:not(body) .icon:first-child:not(:last-child), .content kbd:not(body) .icon:first-child:not(:last-child), .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:not(:last-child) { - margin-left: -0.375em; - margin-right: 0.1875em; } - .tag:not(body) .icon:last-child:not(:first-child), .content kbd:not(body) .icon:last-child:not(:first-child), .docstring > section > a.docs-sourcelink:not(body) .icon:last-child:not(:first-child) { - margin-left: 0.1875em; - margin-right: -0.375em; } - .tag:not(body) .icon:first-child:last-child, .content kbd:not(body) .icon:first-child:last-child, .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:last-child { - margin-left: -0.375em; - margin-right: -0.375em; } - .tag.is-delete:not(body), .content kbd.is-delete:not(body), .docstring > section > a.docs-sourcelink.is-delete:not(body) { - margin-left: 1px; - padding: 0; - position: relative; - width: 2em; } - .tag.is-delete:not(body)::before, .content kbd.is-delete:not(body)::before, .docstring > section > a.docs-sourcelink.is-delete:not(body)::before, .tag.is-delete:not(body)::after, .content kbd.is-delete:not(body)::after, .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { - background-color: currentColor; - content: ""; - display: block; - left: 50%; - position: absolute; - top: 50%; - transform: translateX(-50%) translateY(-50%) rotate(45deg); - transform-origin: center center; } - .tag.is-delete:not(body)::before, .content kbd.is-delete:not(body)::before, .docstring > section > a.docs-sourcelink.is-delete:not(body)::before { - height: 1px; - width: 50%; } - .tag.is-delete:not(body)::after, .content kbd.is-delete:not(body)::after, .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { - height: 50%; - width: 1px; } - .tag.is-delete:not(body):hover, .content kbd.is-delete:not(body):hover, .docstring > section > a.docs-sourcelink.is-delete:not(body):hover, .tag.is-delete:not(body):focus, .content kbd.is-delete:not(body):focus, .docstring > section > a.docs-sourcelink.is-delete:not(body):focus { - background-color: #e8e8e8; } - .tag.is-delete:not(body):active, .content kbd.is-delete:not(body):active, .docstring > section > a.docs-sourcelink.is-delete:not(body):active { - background-color: #dbdbdb; } - .tag.is-rounded:not(body), #documenter .docs-sidebar form.docs-search > input:not(body), .content kbd.is-rounded:not(body), #documenter .docs-sidebar .content form.docs-search > input:not(body), .docstring > section > a.docs-sourcelink.is-rounded:not(body) { - border-radius: 290486px; } - -a.tag:hover, .docstring > section > a.docs-sourcelink:hover { - text-decoration: underline; } - -.title, -.subtitle { - word-break: break-word; } - .title em, - .title span, - .subtitle em, - .subtitle span { - font-weight: inherit; } - .title sub, - .subtitle sub { - font-size: 0.75em; } - .title sup, - .subtitle sup { - font-size: 0.75em; } - .title .tag, .title .content kbd, .content .title kbd, .title .docstring > section > a.docs-sourcelink, - .subtitle .tag, - .subtitle .content kbd, - .content .subtitle kbd, - .subtitle .docstring > section > a.docs-sourcelink { - vertical-align: middle; } - -.title { - color: #363636; - font-size: 2rem; - font-weight: 600; - line-height: 1.125; } - .title strong { - color: inherit; - font-weight: inherit; } - .title + .highlight { - margin-top: -0.75rem; } - .title:not(.is-spaced) + .subtitle { - margin-top: -1.25rem; } - .title.is-1 { - font-size: 3rem; } - .title.is-2 { - font-size: 2.5rem; } - .title.is-3 { - font-size: 2rem; } - .title.is-4 { - font-size: 1.5rem; } - .title.is-5 { - font-size: 1.25rem; } - .title.is-6 { - font-size: 1rem; } - .title.is-7 { - font-size: 0.75rem; } - -.subtitle { - color: #4a4a4a; - font-size: 1.25rem; - font-weight: 400; - line-height: 1.25; } - .subtitle strong { - color: #363636; - font-weight: 600; } - .subtitle:not(.is-spaced) + .title { - margin-top: -1.25rem; } - .subtitle.is-1 { - font-size: 3rem; } - .subtitle.is-2 { - font-size: 2.5rem; } - .subtitle.is-3 { - font-size: 2rem; } - .subtitle.is-4 { - font-size: 1.5rem; } - .subtitle.is-5 { - font-size: 1.25rem; } - .subtitle.is-6 { - font-size: 1rem; } - .subtitle.is-7 { - font-size: 0.75rem; } - -.heading { - display: block; - font-size: 11px; - letter-spacing: 1px; - margin-bottom: 5px; - text-transform: uppercase; } - -.highlight { - font-weight: 400; - max-width: 100%; - overflow: hidden; - padding: 0; } - .highlight pre { - overflow: auto; - max-width: 100%; } - -.number { - align-items: center; - background-color: whitesmoke; - border-radius: 290486px; - display: inline-flex; - font-size: 1.25rem; - height: 2em; - justify-content: center; - margin-right: 1.5rem; - min-width: 2.5em; - padding: 0.25rem 0.5rem; - text-align: center; - vertical-align: top; } - -.select select, .textarea, .input, #documenter .docs-sidebar form.docs-search > input { - background-color: white; - border-color: #dbdbdb; - border-radius: 4px; - color: #363636; } - .select select::-moz-placeholder, .textarea::-moz-placeholder, .input::-moz-placeholder, #documenter .docs-sidebar form.docs-search > input::-moz-placeholder { - color: rgba(54, 54, 54, 0.3); } - .select select::-webkit-input-placeholder, .textarea::-webkit-input-placeholder, .input::-webkit-input-placeholder, #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder { - color: rgba(54, 54, 54, 0.3); } - .select select:-moz-placeholder, .textarea:-moz-placeholder, .input:-moz-placeholder, #documenter .docs-sidebar form.docs-search > input:-moz-placeholder { - color: rgba(54, 54, 54, 0.3); } - .select select:-ms-input-placeholder, .textarea:-ms-input-placeholder, .input:-ms-input-placeholder, #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder { - color: rgba(54, 54, 54, 0.3); } - .select select:hover, .textarea:hover, .input:hover, #documenter .docs-sidebar form.docs-search > input:hover, .select select.is-hovered, .is-hovered.textarea, .is-hovered.input, #documenter .docs-sidebar form.docs-search > input.is-hovered { - border-color: #b5b5b5; } - .select select:focus, .textarea:focus, .input:focus, #documenter .docs-sidebar form.docs-search > input:focus, .select select.is-focused, .is-focused.textarea, .is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .select select:active, .textarea:active, .input:active, #documenter .docs-sidebar form.docs-search > input:active, .select select.is-active, .is-active.textarea, .is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { - border-color: #2e63b8; - box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } - .select select[disabled], .textarea[disabled], .input[disabled], #documenter .docs-sidebar form.docs-search > input[disabled], fieldset[disabled] .select select, .select fieldset[disabled] select, fieldset[disabled] .textarea, fieldset[disabled] .input, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input { - background-color: whitesmoke; - border-color: whitesmoke; - box-shadow: none; - color: #6b6b6b; } - .select select[disabled]::-moz-placeholder, .textarea[disabled]::-moz-placeholder, .input[disabled]::-moz-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]::-moz-placeholder, fieldset[disabled] .select select::-moz-placeholder, .select fieldset[disabled] select::-moz-placeholder, fieldset[disabled] .textarea::-moz-placeholder, fieldset[disabled] .input::-moz-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input::-moz-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input::-moz-placeholder { - color: rgba(107, 107, 107, 0.3); } - .select select[disabled]::-webkit-input-placeholder, .textarea[disabled]::-webkit-input-placeholder, .input[disabled]::-webkit-input-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]::-webkit-input-placeholder, fieldset[disabled] .select select::-webkit-input-placeholder, .select fieldset[disabled] select::-webkit-input-placeholder, fieldset[disabled] .textarea::-webkit-input-placeholder, fieldset[disabled] .input::-webkit-input-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input::-webkit-input-placeholder { - color: rgba(107, 107, 107, 0.3); } - .select select[disabled]:-moz-placeholder, .textarea[disabled]:-moz-placeholder, .input[disabled]:-moz-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]:-moz-placeholder, fieldset[disabled] .select select:-moz-placeholder, .select fieldset[disabled] select:-moz-placeholder, fieldset[disabled] .textarea:-moz-placeholder, fieldset[disabled] .input:-moz-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input:-moz-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input:-moz-placeholder { - color: rgba(107, 107, 107, 0.3); } - .select select[disabled]:-ms-input-placeholder, .textarea[disabled]:-ms-input-placeholder, .input[disabled]:-ms-input-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]:-ms-input-placeholder, fieldset[disabled] .select select:-ms-input-placeholder, .select fieldset[disabled] select:-ms-input-placeholder, fieldset[disabled] .textarea:-ms-input-placeholder, fieldset[disabled] .input:-ms-input-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input:-ms-input-placeholder { - color: rgba(107, 107, 107, 0.3); } - -.textarea, .input, #documenter .docs-sidebar form.docs-search > input { - box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1); - max-width: 100%; - width: 100%; } - .textarea[readonly], .input[readonly], #documenter .docs-sidebar form.docs-search > input[readonly] { - box-shadow: none; } - .is-white.textarea, .is-white.input, #documenter .docs-sidebar form.docs-search > input.is-white { - border-color: white; } - .is-white.textarea:focus, .is-white.input:focus, #documenter .docs-sidebar form.docs-search > input.is-white:focus, .is-white.is-focused.textarea, .is-white.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-white.textarea:active, .is-white.input:active, #documenter .docs-sidebar form.docs-search > input.is-white:active, .is-white.is-active.textarea, .is-white.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { - box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } - .is-black.textarea, .is-black.input, #documenter .docs-sidebar form.docs-search > input.is-black { - border-color: #0a0a0a; } - .is-black.textarea:focus, .is-black.input:focus, #documenter .docs-sidebar form.docs-search > input.is-black:focus, .is-black.is-focused.textarea, .is-black.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-black.textarea:active, .is-black.input:active, #documenter .docs-sidebar form.docs-search > input.is-black:active, .is-black.is-active.textarea, .is-black.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { - box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } - .is-light.textarea, .is-light.input, #documenter .docs-sidebar form.docs-search > input.is-light { - border-color: whitesmoke; } - .is-light.textarea:focus, .is-light.input:focus, #documenter .docs-sidebar form.docs-search > input.is-light:focus, .is-light.is-focused.textarea, .is-light.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-light.textarea:active, .is-light.input:active, #documenter .docs-sidebar form.docs-search > input.is-light:active, .is-light.is-active.textarea, .is-light.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { - box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); } - .is-dark.textarea, .content kbd.textarea, .is-dark.input, #documenter .docs-sidebar form.docs-search > input.is-dark, .content kbd.input { - border-color: #363636; } - .is-dark.textarea:focus, .content kbd.textarea:focus, .is-dark.input:focus, #documenter .docs-sidebar form.docs-search > input.is-dark:focus, .content kbd.input:focus, .is-dark.is-focused.textarea, .content kbd.is-focused.textarea, .is-dark.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .content kbd.is-focused.input, #documenter .docs-sidebar .content form.docs-search > input.is-focused, .is-dark.textarea:active, .content kbd.textarea:active, .is-dark.input:active, #documenter .docs-sidebar form.docs-search > input.is-dark:active, .content kbd.input:active, .is-dark.is-active.textarea, .content kbd.is-active.textarea, .is-dark.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .content kbd.is-active.input, #documenter .docs-sidebar .content form.docs-search > input.is-active { - box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); } - .is-primary.textarea, .docstring > section > a.textarea.docs-sourcelink, .is-primary.input, #documenter .docs-sidebar form.docs-search > input.is-primary, .docstring > section > a.input.docs-sourcelink { - border-color: #4eb5de; } - .is-primary.textarea:focus, .docstring > section > a.textarea.docs-sourcelink:focus, .is-primary.input:focus, #documenter .docs-sidebar form.docs-search > input.is-primary:focus, .docstring > section > a.input.docs-sourcelink:focus, .is-primary.is-focused.textarea, .docstring > section > a.is-focused.textarea.docs-sourcelink, .is-primary.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .docstring > section > a.is-focused.input.docs-sourcelink, .is-primary.textarea:active, .docstring > section > a.textarea.docs-sourcelink:active, .is-primary.input:active, #documenter .docs-sidebar form.docs-search > input.is-primary:active, .docstring > section > a.input.docs-sourcelink:active, .is-primary.is-active.textarea, .docstring > section > a.is-active.textarea.docs-sourcelink, .is-primary.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .docstring > section > a.is-active.input.docs-sourcelink { - box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); } - .is-link.textarea, .is-link.input, #documenter .docs-sidebar form.docs-search > input.is-link { - border-color: #2e63b8; } - .is-link.textarea:focus, .is-link.input:focus, #documenter .docs-sidebar form.docs-search > input.is-link:focus, .is-link.is-focused.textarea, .is-link.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-link.textarea:active, .is-link.input:active, #documenter .docs-sidebar form.docs-search > input.is-link:active, .is-link.is-active.textarea, .is-link.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { - box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } - .is-info.textarea, .is-info.input, #documenter .docs-sidebar form.docs-search > input.is-info { - border-color: #209cee; } - .is-info.textarea:focus, .is-info.input:focus, #documenter .docs-sidebar form.docs-search > input.is-info:focus, .is-info.is-focused.textarea, .is-info.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-info.textarea:active, .is-info.input:active, #documenter .docs-sidebar form.docs-search > input.is-info:active, .is-info.is-active.textarea, .is-info.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { - box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); } - .is-success.textarea, .is-success.input, #documenter .docs-sidebar form.docs-search > input.is-success { - border-color: #22c35b; } - .is-success.textarea:focus, .is-success.input:focus, #documenter .docs-sidebar form.docs-search > input.is-success:focus, .is-success.is-focused.textarea, .is-success.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-success.textarea:active, .is-success.input:active, #documenter .docs-sidebar form.docs-search > input.is-success:active, .is-success.is-active.textarea, .is-success.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { - box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); } - .is-warning.textarea, .is-warning.input, #documenter .docs-sidebar form.docs-search > input.is-warning { - border-color: #ffdd57; } - .is-warning.textarea:focus, .is-warning.input:focus, #documenter .docs-sidebar form.docs-search > input.is-warning:focus, .is-warning.is-focused.textarea, .is-warning.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-warning.textarea:active, .is-warning.input:active, #documenter .docs-sidebar form.docs-search > input.is-warning:active, .is-warning.is-active.textarea, .is-warning.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { - box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); } - .is-danger.textarea, .is-danger.input, #documenter .docs-sidebar form.docs-search > input.is-danger { - border-color: #da0b00; } - .is-danger.textarea:focus, .is-danger.input:focus, #documenter .docs-sidebar form.docs-search > input.is-danger:focus, .is-danger.is-focused.textarea, .is-danger.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-danger.textarea:active, .is-danger.input:active, #documenter .docs-sidebar form.docs-search > input.is-danger:active, .is-danger.is-active.textarea, .is-danger.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { - box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); } - .is-small.textarea, .is-small.input, #documenter .docs-sidebar form.docs-search > input { - border-radius: 2px; - font-size: 0.75rem; } - .is-medium.textarea, .is-medium.input, #documenter .docs-sidebar form.docs-search > input.is-medium { - font-size: 1.25rem; } - .is-large.textarea, .is-large.input, #documenter .docs-sidebar form.docs-search > input.is-large { - font-size: 1.5rem; } - .is-fullwidth.textarea, .is-fullwidth.input, #documenter .docs-sidebar form.docs-search > input.is-fullwidth { - display: block; - width: 100%; } - .is-inline.textarea, .is-inline.input, #documenter .docs-sidebar form.docs-search > input.is-inline { - display: inline; - width: auto; } - -.input.is-rounded, #documenter .docs-sidebar form.docs-search > input { - border-radius: 290486px; - padding-left: 1em; - padding-right: 1em; } - -.input.is-static, #documenter .docs-sidebar form.docs-search > input.is-static { - background-color: transparent; - border-color: transparent; - box-shadow: none; - padding-left: 0; - padding-right: 0; } - -.textarea { - display: block; - max-width: 100%; - min-width: 100%; - padding: 0.625em; - resize: vertical; } - .textarea:not([rows]) { - max-height: 600px; - min-height: 120px; } - .textarea[rows] { - height: initial; } - .textarea.has-fixed-size { - resize: none; } - -.radio, .checkbox { - cursor: pointer; - display: inline-block; - line-height: 1.25; - position: relative; } - .radio input, .checkbox input { - cursor: pointer; } - .radio:hover, .checkbox:hover { - color: #363636; } - .radio[disabled], .checkbox[disabled], fieldset[disabled] .radio, fieldset[disabled] .checkbox { - color: #6b6b6b; - cursor: not-allowed; } - -.radio + .radio { - margin-left: 0.5em; } - -.select { - display: inline-block; - max-width: 100%; - position: relative; - vertical-align: top; } - .select:not(.is-multiple) { - height: 2.25em; } - .select:not(.is-multiple):not(.is-loading)::after { - border-color: #2e63b8; - right: 1.125em; - z-index: 4; } - .select.is-rounded select, #documenter .docs-sidebar form.docs-search > input.select select { - border-radius: 290486px; - padding-left: 1em; } - .select select { - cursor: pointer; - display: block; - font-size: 1em; - max-width: 100%; - outline: none; } - .select select::-ms-expand { - display: none; } - .select select[disabled]:hover, fieldset[disabled] .select select:hover { - border-color: whitesmoke; } - .select select:not([multiple]) { - padding-right: 2.5em; } - .select select[multiple] { - height: auto; - padding: 0; } - .select select[multiple] option { - padding: 0.5em 1em; } - .select:not(.is-multiple):not(.is-loading):hover::after { - border-color: #363636; } - .select.is-white:not(:hover)::after { - border-color: white; } - .select.is-white select { - border-color: white; } - .select.is-white select:hover, .select.is-white select.is-hovered { - border-color: #f2f2f2; } - .select.is-white select:focus, .select.is-white select.is-focused, .select.is-white select:active, .select.is-white select.is-active { - box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } - .select.is-black:not(:hover)::after { - border-color: #0a0a0a; } - .select.is-black select { - border-color: #0a0a0a; } - .select.is-black select:hover, .select.is-black select.is-hovered { - border-color: black; } - .select.is-black select:focus, .select.is-black select.is-focused, .select.is-black select:active, .select.is-black select.is-active { - box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } - .select.is-light:not(:hover)::after { - border-color: whitesmoke; } - .select.is-light select { - border-color: whitesmoke; } - .select.is-light select:hover, .select.is-light select.is-hovered { - border-color: #e8e8e8; } - .select.is-light select:focus, .select.is-light select.is-focused, .select.is-light select:active, .select.is-light select.is-active { - box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); } - .select.is-dark:not(:hover)::after, .content kbd.select:not(:hover)::after { - border-color: #363636; } - .select.is-dark select, .content kbd.select select { - border-color: #363636; } - .select.is-dark select:hover, .content kbd.select select:hover, .select.is-dark select.is-hovered, .content kbd.select select.is-hovered { - border-color: #292929; } - .select.is-dark select:focus, .content kbd.select select:focus, .select.is-dark select.is-focused, .content kbd.select select.is-focused, .select.is-dark select:active, .content kbd.select select:active, .select.is-dark select.is-active, .content kbd.select select.is-active { - box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); } - .select.is-primary:not(:hover)::after, .docstring > section > a.select.docs-sourcelink:not(:hover)::after { - border-color: #4eb5de; } - .select.is-primary select, .docstring > section > a.select.docs-sourcelink select { - border-color: #4eb5de; } - .select.is-primary select:hover, .docstring > section > a.select.docs-sourcelink select:hover, .select.is-primary select.is-hovered, .docstring > section > a.select.docs-sourcelink select.is-hovered { - border-color: #39acda; } - .select.is-primary select:focus, .docstring > section > a.select.docs-sourcelink select:focus, .select.is-primary select.is-focused, .docstring > section > a.select.docs-sourcelink select.is-focused, .select.is-primary select:active, .docstring > section > a.select.docs-sourcelink select:active, .select.is-primary select.is-active, .docstring > section > a.select.docs-sourcelink select.is-active { - box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); } - .select.is-link:not(:hover)::after { - border-color: #2e63b8; } - .select.is-link select { - border-color: #2e63b8; } - .select.is-link select:hover, .select.is-link select.is-hovered { - border-color: #2958a4; } - .select.is-link select:focus, .select.is-link select.is-focused, .select.is-link select:active, .select.is-link select.is-active { - box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } - .select.is-info:not(:hover)::after { - border-color: #209cee; } - .select.is-info select { - border-color: #209cee; } - .select.is-info select:hover, .select.is-info select.is-hovered { - border-color: #1190e3; } - .select.is-info select:focus, .select.is-info select.is-focused, .select.is-info select:active, .select.is-info select.is-active { - box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); } - .select.is-success:not(:hover)::after { - border-color: #22c35b; } - .select.is-success select { - border-color: #22c35b; } - .select.is-success select:hover, .select.is-success select.is-hovered { - border-color: #1ead51; } - .select.is-success select:focus, .select.is-success select.is-focused, .select.is-success select:active, .select.is-success select.is-active { - box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); } - .select.is-warning:not(:hover)::after { - border-color: #ffdd57; } - .select.is-warning select { - border-color: #ffdd57; } - .select.is-warning select:hover, .select.is-warning select.is-hovered { - border-color: #ffd83e; } - .select.is-warning select:focus, .select.is-warning select.is-focused, .select.is-warning select:active, .select.is-warning select.is-active { - box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); } - .select.is-danger:not(:hover)::after { - border-color: #da0b00; } - .select.is-danger select { - border-color: #da0b00; } - .select.is-danger select:hover, .select.is-danger select.is-hovered { - border-color: #c10a00; } - .select.is-danger select:focus, .select.is-danger select.is-focused, .select.is-danger select:active, .select.is-danger select.is-active { - box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); } - .select.is-small, #documenter .docs-sidebar form.docs-search > input.select { - border-radius: 2px; - font-size: 0.75rem; } - .select.is-medium { - font-size: 1.25rem; } - .select.is-large { - font-size: 1.5rem; } - .select.is-disabled::after { - border-color: #6b6b6b; } - .select.is-fullwidth { - width: 100%; } - .select.is-fullwidth select { - width: 100%; } - .select.is-loading::after { - margin-top: 0; - position: absolute; - right: 0.625em; - top: 0.625em; - transform: none; } - .select.is-loading.is-small:after, #documenter .docs-sidebar form.docs-search > input.is-loading:after { - font-size: 0.75rem; } - .select.is-loading.is-medium:after { - font-size: 1.25rem; } - .select.is-loading.is-large:after { - font-size: 1.5rem; } - -.file { - align-items: stretch; - display: flex; - justify-content: flex-start; - position: relative; } - .file.is-white .file-cta { - background-color: white; - border-color: transparent; - color: #0a0a0a; } - .file.is-white:hover .file-cta, .file.is-white.is-hovered .file-cta { - background-color: #f9f9f9; - border-color: transparent; - color: #0a0a0a; } - .file.is-white:focus .file-cta, .file.is-white.is-focused .file-cta { - border-color: transparent; - box-shadow: 0 0 0.5em rgba(255, 255, 255, 0.25); - color: #0a0a0a; } - .file.is-white:active .file-cta, .file.is-white.is-active .file-cta { - background-color: #f2f2f2; - border-color: transparent; - color: #0a0a0a; } - .file.is-black .file-cta { - background-color: #0a0a0a; - border-color: transparent; - color: white; } - .file.is-black:hover .file-cta, .file.is-black.is-hovered .file-cta { - background-color: #040404; - border-color: transparent; - color: white; } - .file.is-black:focus .file-cta, .file.is-black.is-focused .file-cta { - border-color: transparent; - box-shadow: 0 0 0.5em rgba(10, 10, 10, 0.25); - color: white; } - .file.is-black:active .file-cta, .file.is-black.is-active .file-cta { - background-color: black; - border-color: transparent; - color: white; } - .file.is-light .file-cta { - background-color: whitesmoke; - border-color: transparent; - color: #363636; } - .file.is-light:hover .file-cta, .file.is-light.is-hovered .file-cta { - background-color: #eeeeee; - border-color: transparent; - color: #363636; } - .file.is-light:focus .file-cta, .file.is-light.is-focused .file-cta { - border-color: transparent; - box-shadow: 0 0 0.5em rgba(245, 245, 245, 0.25); - color: #363636; } - .file.is-light:active .file-cta, .file.is-light.is-active .file-cta { - background-color: #e8e8e8; - border-color: transparent; - color: #363636; } - .file.is-dark .file-cta, .content kbd.file .file-cta { - background-color: #363636; - border-color: transparent; - color: whitesmoke; } - .file.is-dark:hover .file-cta, .content kbd.file:hover .file-cta, .file.is-dark.is-hovered .file-cta, .content kbd.file.is-hovered .file-cta { - background-color: #2f2f2f; - border-color: transparent; - color: whitesmoke; } - .file.is-dark:focus .file-cta, .content kbd.file:focus .file-cta, .file.is-dark.is-focused .file-cta, .content kbd.file.is-focused .file-cta { - border-color: transparent; - box-shadow: 0 0 0.5em rgba(54, 54, 54, 0.25); - color: whitesmoke; } - .file.is-dark:active .file-cta, .content kbd.file:active .file-cta, .file.is-dark.is-active .file-cta, .content kbd.file.is-active .file-cta { - background-color: #292929; - border-color: transparent; - color: whitesmoke; } - .file.is-primary .file-cta, .docstring > section > a.file.docs-sourcelink .file-cta { - background-color: #4eb5de; - border-color: transparent; - color: #fff; } - .file.is-primary:hover .file-cta, .docstring > section > a.file.docs-sourcelink:hover .file-cta, .file.is-primary.is-hovered .file-cta, .docstring > section > a.file.is-hovered.docs-sourcelink .file-cta { - background-color: #43b1dc; - border-color: transparent; - color: #fff; } - .file.is-primary:focus .file-cta, .docstring > section > a.file.docs-sourcelink:focus .file-cta, .file.is-primary.is-focused .file-cta, .docstring > section > a.file.is-focused.docs-sourcelink .file-cta { - border-color: transparent; - box-shadow: 0 0 0.5em rgba(78, 181, 222, 0.25); - color: #fff; } - .file.is-primary:active .file-cta, .docstring > section > a.file.docs-sourcelink:active .file-cta, .file.is-primary.is-active .file-cta, .docstring > section > a.file.is-active.docs-sourcelink .file-cta { - background-color: #39acda; - border-color: transparent; - color: #fff; } - .file.is-link .file-cta { - background-color: #2e63b8; - border-color: transparent; - color: #fff; } - .file.is-link:hover .file-cta, .file.is-link.is-hovered .file-cta { - background-color: #2b5eae; - border-color: transparent; - color: #fff; } - .file.is-link:focus .file-cta, .file.is-link.is-focused .file-cta { - border-color: transparent; - box-shadow: 0 0 0.5em rgba(46, 99, 184, 0.25); - color: #fff; } - .file.is-link:active .file-cta, .file.is-link.is-active .file-cta { - background-color: #2958a4; - border-color: transparent; - color: #fff; } - .file.is-info .file-cta { - background-color: #209cee; - border-color: transparent; - color: #fff; } - .file.is-info:hover .file-cta, .file.is-info.is-hovered .file-cta { - background-color: #1497ed; - border-color: transparent; - color: #fff; } - .file.is-info:focus .file-cta, .file.is-info.is-focused .file-cta { - border-color: transparent; - box-shadow: 0 0 0.5em rgba(32, 156, 238, 0.25); - color: #fff; } - .file.is-info:active .file-cta, .file.is-info.is-active .file-cta { - background-color: #1190e3; - border-color: transparent; - color: #fff; } - .file.is-success .file-cta { - background-color: #22c35b; - border-color: transparent; - color: #fff; } - .file.is-success:hover .file-cta, .file.is-success.is-hovered .file-cta { - background-color: #20b856; - border-color: transparent; - color: #fff; } - .file.is-success:focus .file-cta, .file.is-success.is-focused .file-cta { - border-color: transparent; - box-shadow: 0 0 0.5em rgba(34, 195, 91, 0.25); - color: #fff; } - .file.is-success:active .file-cta, .file.is-success.is-active .file-cta { - background-color: #1ead51; - border-color: transparent; - color: #fff; } - .file.is-warning .file-cta { - background-color: #ffdd57; - border-color: transparent; - color: rgba(0, 0, 0, 0.7); } - .file.is-warning:hover .file-cta, .file.is-warning.is-hovered .file-cta { - background-color: #ffda4a; - border-color: transparent; - color: rgba(0, 0, 0, 0.7); } - .file.is-warning:focus .file-cta, .file.is-warning.is-focused .file-cta { - border-color: transparent; - box-shadow: 0 0 0.5em rgba(255, 221, 87, 0.25); - color: rgba(0, 0, 0, 0.7); } - .file.is-warning:active .file-cta, .file.is-warning.is-active .file-cta { - background-color: #ffd83e; - border-color: transparent; - color: rgba(0, 0, 0, 0.7); } - .file.is-danger .file-cta { - background-color: #da0b00; - border-color: transparent; - color: #fff; } - .file.is-danger:hover .file-cta, .file.is-danger.is-hovered .file-cta { - background-color: #cd0a00; - border-color: transparent; - color: #fff; } - .file.is-danger:focus .file-cta, .file.is-danger.is-focused .file-cta { - border-color: transparent; - box-shadow: 0 0 0.5em rgba(218, 11, 0, 0.25); - color: #fff; } - .file.is-danger:active .file-cta, .file.is-danger.is-active .file-cta { - background-color: #c10a00; - border-color: transparent; - color: #fff; } - .file.is-small, #documenter .docs-sidebar form.docs-search > input.file { - font-size: 0.75rem; } - .file.is-medium { - font-size: 1.25rem; } - .file.is-medium .file-icon .fa { - font-size: 21px; } - .file.is-large { - font-size: 1.5rem; } - .file.is-large .file-icon .fa { - font-size: 28px; } - .file.has-name .file-cta { - border-bottom-right-radius: 0; - border-top-right-radius: 0; } - .file.has-name .file-name { - border-bottom-left-radius: 0; - border-top-left-radius: 0; } - .file.has-name.is-empty .file-cta { - border-radius: 4px; } - .file.has-name.is-empty .file-name { - display: none; } - .file.is-boxed .file-label { - flex-direction: column; } - .file.is-boxed .file-cta { - flex-direction: column; - height: auto; - padding: 1em 3em; } - .file.is-boxed .file-name { - border-width: 0 1px 1px; } - .file.is-boxed .file-icon { - height: 1.5em; - width: 1.5em; } - .file.is-boxed .file-icon .fa { - font-size: 21px; } - .file.is-boxed.is-small .file-icon .fa, #documenter .docs-sidebar form.docs-search > input.is-boxed .file-icon .fa { - font-size: 14px; } - .file.is-boxed.is-medium .file-icon .fa { - font-size: 28px; } - .file.is-boxed.is-large .file-icon .fa { - font-size: 35px; } - .file.is-boxed.has-name .file-cta { - border-radius: 4px 4px 0 0; } - .file.is-boxed.has-name .file-name { - border-radius: 0 0 4px 4px; - border-width: 0 1px 1px; } - .file.is-centered { - justify-content: center; } - .file.is-fullwidth .file-label { - width: 100%; } - .file.is-fullwidth .file-name { - flex-grow: 1; - max-width: none; } - .file.is-right { - justify-content: flex-end; } - .file.is-right .file-cta { - border-radius: 0 4px 4px 0; } - .file.is-right .file-name { - border-radius: 4px 0 0 4px; - border-width: 1px 0 1px 1px; - order: -1; } - -.file-label { - align-items: stretch; - display: flex; - cursor: pointer; - justify-content: flex-start; - overflow: hidden; - position: relative; } - .file-label:hover .file-cta { - background-color: #eeeeee; - color: #363636; } - .file-label:hover .file-name { - border-color: #d5d5d5; } - .file-label:active .file-cta { - background-color: #e8e8e8; - color: #363636; } - .file-label:active .file-name { - border-color: #cfcfcf; } - -.file-input { - height: 100%; - left: 0; - opacity: 0; - outline: none; - position: absolute; - top: 0; - width: 100%; } - -.file-cta, -.file-name { - border-color: #dbdbdb; - border-radius: 4px; - font-size: 1em; - padding-left: 1em; - padding-right: 1em; - white-space: nowrap; } - -.file-cta { - background-color: whitesmoke; - color: #4a4a4a; } - -.file-name { - border-color: #dbdbdb; - border-style: solid; - border-width: 1px 1px 1px 0; - display: block; - max-width: 16em; - overflow: hidden; - text-align: left; - text-overflow: ellipsis; } - -.file-icon { - align-items: center; - display: flex; - height: 1em; - justify-content: center; - margin-right: 0.5em; - width: 1em; } - .file-icon .fa { - font-size: 14px; } - -.label { - color: #363636; - display: block; - font-size: 1rem; - font-weight: 700; } - .label:not(:last-child) { - margin-bottom: 0.5em; } - .label.is-small, #documenter .docs-sidebar form.docs-search > input.label { - font-size: 0.75rem; } - .label.is-medium { - font-size: 1.25rem; } - .label.is-large { - font-size: 1.5rem; } - -.help { - display: block; - font-size: 0.75rem; - margin-top: 0.25rem; } - .help.is-white { - color: white; } - .help.is-black { - color: #0a0a0a; } - .help.is-light { - color: whitesmoke; } - .help.is-dark, .content kbd.help { - color: #363636; } - .help.is-primary, .docstring > section > a.help.docs-sourcelink { - color: #4eb5de; } - .help.is-link { - color: #2e63b8; } - .help.is-info { - color: #209cee; } - .help.is-success { - color: #22c35b; } - .help.is-warning { - color: #ffdd57; } - .help.is-danger { - color: #da0b00; } - -.field:not(:last-child) { - margin-bottom: 0.75rem; } - -.field.has-addons { - display: flex; - justify-content: flex-start; } - .field.has-addons .control:not(:last-child) { - margin-right: -1px; } - .field.has-addons .control:not(:first-child):not(:last-child) .button, - .field.has-addons .control:not(:first-child):not(:last-child) .input, - .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search > input, - #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search > input, - .field.has-addons .control:not(:first-child):not(:last-child) .select select { - border-radius: 0; } - .field.has-addons .control:first-child:not(:only-child) .button, - .field.has-addons .control:first-child:not(:only-child) .input, - .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, - #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search > input, - .field.has-addons .control:first-child:not(:only-child) .select select { - border-bottom-right-radius: 0; - border-top-right-radius: 0; } - .field.has-addons .control:last-child:not(:only-child) .button, - .field.has-addons .control:last-child:not(:only-child) .input, - .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, - #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search > input, - .field.has-addons .control:last-child:not(:only-child) .select select { - border-bottom-left-radius: 0; - border-top-left-radius: 0; } - .field.has-addons .control .button:not([disabled]):hover, .field.has-addons .control .button.is-hovered:not([disabled]), - .field.has-addons .control .input:not([disabled]):hover, - .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):hover, - #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):hover, - .field.has-addons .control .input.is-hovered:not([disabled]), - .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-hovered:not([disabled]), - #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-hovered:not([disabled]), - .field.has-addons .control .select select:not([disabled]):hover, - .field.has-addons .control .select select.is-hovered:not([disabled]) { - z-index: 2; } - .field.has-addons .control .button:not([disabled]):focus, .field.has-addons .control .button.is-focused:not([disabled]), .field.has-addons .control .button:not([disabled]):active, .field.has-addons .control .button.is-active:not([disabled]), - .field.has-addons .control .input:not([disabled]):focus, - .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus, - #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus, - .field.has-addons .control .input.is-focused:not([disabled]), - .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]), - #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]), - .field.has-addons .control .input:not([disabled]):active, - .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active, - #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active, - .field.has-addons .control .input.is-active:not([disabled]), - .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]), - #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]), - .field.has-addons .control .select select:not([disabled]):focus, - .field.has-addons .control .select select.is-focused:not([disabled]), - .field.has-addons .control .select select:not([disabled]):active, - .field.has-addons .control .select select.is-active:not([disabled]) { - z-index: 3; } - .field.has-addons .control .button:not([disabled]):focus:hover, .field.has-addons .control .button.is-focused:not([disabled]):hover, .field.has-addons .control .button:not([disabled]):active:hover, .field.has-addons .control .button.is-active:not([disabled]):hover, - .field.has-addons .control .input:not([disabled]):focus:hover, - .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus:hover, - #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus:hover, - .field.has-addons .control .input.is-focused:not([disabled]):hover, - .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]):hover, - #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]):hover, - .field.has-addons .control .input:not([disabled]):active:hover, - .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active:hover, - #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active:hover, - .field.has-addons .control .input.is-active:not([disabled]):hover, - .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]):hover, - #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]):hover, - .field.has-addons .control .select select:not([disabled]):focus:hover, - .field.has-addons .control .select select.is-focused:not([disabled]):hover, - .field.has-addons .control .select select:not([disabled]):active:hover, - .field.has-addons .control .select select.is-active:not([disabled]):hover { - z-index: 4; } - .field.has-addons .control.is-expanded { - flex-grow: 1; - flex-shrink: 1; } - .field.has-addons.has-addons-centered { - justify-content: center; } - .field.has-addons.has-addons-right { - justify-content: flex-end; } - .field.has-addons.has-addons-fullwidth .control { - flex-grow: 1; - flex-shrink: 0; } - -.field.is-grouped { - display: flex; - justify-content: flex-start; } - .field.is-grouped > .control { - flex-shrink: 0; } - .field.is-grouped > .control:not(:last-child) { - margin-bottom: 0; - margin-right: 0.75rem; } - .field.is-grouped > .control.is-expanded { - flex-grow: 1; - flex-shrink: 1; } - .field.is-grouped.is-grouped-centered { - justify-content: center; } - .field.is-grouped.is-grouped-right { - justify-content: flex-end; } - .field.is-grouped.is-grouped-multiline { - flex-wrap: wrap; } - .field.is-grouped.is-grouped-multiline > .control:last-child, .field.is-grouped.is-grouped-multiline > .control:not(:last-child) { - margin-bottom: 0.75rem; } - .field.is-grouped.is-grouped-multiline:last-child { - margin-bottom: -0.75rem; } - .field.is-grouped.is-grouped-multiline:not(:last-child) { - margin-bottom: 0; } - -@media screen and (min-width: 769px), print { - .field.is-horizontal { - display: flex; } } - -.field-label .label { - font-size: inherit; } - -@media screen and (max-width: 768px) { - .field-label { - margin-bottom: 0.5rem; } } - -@media screen and (min-width: 769px), print { - .field-label { - flex-basis: 0; - flex-grow: 1; - flex-shrink: 0; - margin-right: 1.5rem; - text-align: right; } - .field-label.is-small, #documenter .docs-sidebar form.docs-search > input.field-label { - font-size: 0.75rem; - padding-top: 0.375em; } - .field-label.is-normal { - padding-top: 0.375em; } - .field-label.is-medium { - font-size: 1.25rem; - padding-top: 0.375em; } - .field-label.is-large { - font-size: 1.5rem; - padding-top: 0.375em; } } - -.field-body .field .field { - margin-bottom: 0; } - -@media screen and (min-width: 769px), print { - .field-body { - display: flex; - flex-basis: 0; - flex-grow: 5; - flex-shrink: 1; } - .field-body .field { - margin-bottom: 0; } - .field-body > .field { - flex-shrink: 1; } - .field-body > .field:not(.is-narrow) { - flex-grow: 1; } - .field-body > .field:not(:last-child) { - margin-right: 0.75rem; } } - -.control { - box-sizing: border-box; - clear: both; - font-size: 1rem; - position: relative; - text-align: left; } - .control.has-icons-left .input:focus ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input:focus ~ .icon, - .control.has-icons-left .select:focus ~ .icon, .control.has-icons-right .input:focus ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input:focus ~ .icon, - .control.has-icons-right .select:focus ~ .icon { - color: #6b6b6b; } - .control.has-icons-left .input.is-small ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input ~ .icon, - .control.has-icons-left .select.is-small ~ .icon, .control.has-icons-right .input.is-small ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input ~ .icon, - .control.has-icons-right .select.is-small ~ .icon { - font-size: 0.75rem; } - .control.has-icons-left .input.is-medium ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-medium ~ .icon, - .control.has-icons-left .select.is-medium ~ .icon, .control.has-icons-right .input.is-medium ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-medium ~ .icon, - .control.has-icons-right .select.is-medium ~ .icon { - font-size: 1.25rem; } - .control.has-icons-left .input.is-large ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-large ~ .icon, - .control.has-icons-left .select.is-large ~ .icon, .control.has-icons-right .input.is-large ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-large ~ .icon, - .control.has-icons-right .select.is-large ~ .icon { - font-size: 1.5rem; } - .control.has-icons-left .icon, .control.has-icons-right .icon { - color: #dbdbdb; - height: 2.25em; - pointer-events: none; - position: absolute; - top: 0; - width: 2.25em; - z-index: 4; } - .control.has-icons-left .input, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input, - .control.has-icons-left .select select { - padding-left: 2.25em; } - .control.has-icons-left .icon.is-left { - left: 0; } - .control.has-icons-right .input, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input, - .control.has-icons-right .select select { - padding-right: 2.25em; } - .control.has-icons-right .icon.is-right { - right: 0; } - .control.is-loading::after { - position: absolute !important; - right: 0.625em; - top: 0.625em; - z-index: 4; } - .control.is-loading.is-small:after, #documenter .docs-sidebar form.docs-search > input.is-loading:after { - font-size: 0.75rem; } - .control.is-loading.is-medium:after { - font-size: 1.25rem; } - .control.is-loading.is-large:after { - font-size: 1.5rem; } - -.breadcrumb { - font-size: 1rem; - white-space: nowrap; } - .breadcrumb a { - align-items: center; - color: #2e63b8; - display: flex; - justify-content: center; - padding: 0 0.75em; } - .breadcrumb a:hover { - color: #363636; } - .breadcrumb li { - align-items: center; - display: flex; } - .breadcrumb li:first-child a { - padding-left: 0; } - .breadcrumb li.is-active a { - color: #222222; - cursor: default; - pointer-events: none; } - .breadcrumb li + li::before { - color: #b5b5b5; - content: "\0002f"; } - .breadcrumb ul, - .breadcrumb ol { - align-items: flex-start; - display: flex; - flex-wrap: wrap; - justify-content: flex-start; } - .breadcrumb .icon:first-child { - margin-right: 0.5em; } - .breadcrumb .icon:last-child { - margin-left: 0.5em; } - .breadcrumb.is-centered ol, - .breadcrumb.is-centered ul { - justify-content: center; } - .breadcrumb.is-right ol, - .breadcrumb.is-right ul { - justify-content: flex-end; } - .breadcrumb.is-small, #documenter .docs-sidebar form.docs-search > input.breadcrumb { - font-size: 0.75rem; } - .breadcrumb.is-medium { - font-size: 1.25rem; } - .breadcrumb.is-large { - font-size: 1.5rem; } - .breadcrumb.has-arrow-separator li + li::before { - content: "\02192"; } - .breadcrumb.has-bullet-separator li + li::before { - content: "\02022"; } - .breadcrumb.has-dot-separator li + li::before { - content: "\000b7"; } - .breadcrumb.has-succeeds-separator li + li::before { - content: "\0227B"; } - -.card { - background-color: white; - box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); - color: #222222; - max-width: 100%; - position: relative; } - -.card-header { - background-color: transparent; - align-items: stretch; - box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); - display: flex; } - -.card-header-title { - align-items: center; - color: #222222; - display: flex; - flex-grow: 1; - font-weight: 700; - padding: 0.75rem; } - .card-header-title.is-centered { - justify-content: center; } - -.card-header-icon { - align-items: center; - cursor: pointer; - display: flex; - justify-content: center; - padding: 0.75rem; } - -.card-image { - display: block; - position: relative; } - -.card-content { - background-color: transparent; - padding: 1.5rem; } - -.card-footer { - background-color: transparent; - border-top: 1px solid #dbdbdb; - align-items: stretch; - display: flex; } - -.card-footer-item { - align-items: center; - display: flex; - flex-basis: 0; - flex-grow: 1; - flex-shrink: 0; - justify-content: center; - padding: 0.75rem; } - .card-footer-item:not(:last-child) { - border-right: 1px solid #dbdbdb; } - -.card .media:not(:last-child) { - margin-bottom: 1.5rem; } - -.dropdown { - display: inline-flex; - position: relative; - vertical-align: top; } - .dropdown.is-active .dropdown-menu, .dropdown.is-hoverable:hover .dropdown-menu { - display: block; } - .dropdown.is-right .dropdown-menu { - left: auto; - right: 0; } - .dropdown.is-up .dropdown-menu { - bottom: 100%; - padding-bottom: 4px; - padding-top: initial; - top: auto; } - -.dropdown-menu { - display: none; - left: 0; - min-width: 12rem; - padding-top: 4px; - position: absolute; - top: 100%; - z-index: 20; } - -.dropdown-content { - background-color: white; - border-radius: 4px; - box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); - padding-bottom: 0.5rem; - padding-top: 0.5rem; } - -.dropdown-item { - color: #4a4a4a; - display: block; - font-size: 0.875rem; - line-height: 1.5; - padding: 0.375rem 1rem; - position: relative; } - -a.dropdown-item, -button.dropdown-item { - padding-right: 3rem; - text-align: left; - white-space: nowrap; - width: 100%; } - a.dropdown-item:hover, - button.dropdown-item:hover { - background-color: whitesmoke; - color: #0a0a0a; } - a.dropdown-item.is-active, - button.dropdown-item.is-active { - background-color: #2e63b8; - color: #fff; } - -.dropdown-divider { - background-color: #dbdbdb; - border: none; - display: block; - height: 1px; - margin: 0.5rem 0; } - -.level { - align-items: center; - justify-content: space-between; } - .level code { - border-radius: 4px; } - .level img { - display: inline-block; - vertical-align: top; } - .level.is-mobile { - display: flex; } - .level.is-mobile .level-left, - .level.is-mobile .level-right { - display: flex; } - .level.is-mobile .level-left + .level-right { - margin-top: 0; } - .level.is-mobile .level-item:not(:last-child) { - margin-bottom: 0; - margin-right: 0.75rem; } - .level.is-mobile .level-item:not(.is-narrow) { - flex-grow: 1; } - @media screen and (min-width: 769px), print { - .level { - display: flex; } - .level > .level-item:not(.is-narrow) { - flex-grow: 1; } } -.level-item { - align-items: center; - display: flex; - flex-basis: auto; - flex-grow: 0; - flex-shrink: 0; - justify-content: center; } - .level-item .title, - .level-item .subtitle { - margin-bottom: 0; } - @media screen and (max-width: 768px) { - .level-item:not(:last-child) { - margin-bottom: 0.75rem; } } -.level-left, -.level-right { - flex-basis: auto; - flex-grow: 0; - flex-shrink: 0; } - .level-left .level-item.is-flexible, - .level-right .level-item.is-flexible { - flex-grow: 1; } - @media screen and (min-width: 769px), print { - .level-left .level-item:not(:last-child), - .level-right .level-item:not(:last-child) { - margin-right: 0.75rem; } } -.level-left { - align-items: center; - justify-content: flex-start; } - @media screen and (max-width: 768px) { - .level-left + .level-right { - margin-top: 1.5rem; } } - @media screen and (min-width: 769px), print { - .level-left { - display: flex; } } -.level-right { - align-items: center; - justify-content: flex-end; } - @media screen and (min-width: 769px), print { - .level-right { - display: flex; } } -.list { - background-color: white; - border-radius: 4px; - box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); } - -.list-item { - display: block; - padding: 0.5em 1em; } - .list-item:not(a) { - color: #222222; } - .list-item:first-child { - border-top-left-radius: 4px; - border-top-right-radius: 4px; } - .list-item:last-child { - border-bottom-left-radius: 4px; - border-bottom-right-radius: 4px; } - .list-item:not(:last-child) { - border-bottom: 1px solid #dbdbdb; } - .list-item.is-active { - background-color: #2e63b8; - color: #fff; } - -a.list-item { - background-color: whitesmoke; - cursor: pointer; } - -.media { - align-items: flex-start; - display: flex; - text-align: left; } - .media .content:not(:last-child) { - margin-bottom: 0.75rem; } - .media .media { - border-top: 1px solid rgba(219, 219, 219, 0.5); - display: flex; - padding-top: 0.75rem; } - .media .media .content:not(:last-child), - .media .media .control:not(:last-child) { - margin-bottom: 0.5rem; } - .media .media .media { - padding-top: 0.5rem; } - .media .media .media + .media { - margin-top: 0.5rem; } - .media + .media { - border-top: 1px solid rgba(219, 219, 219, 0.5); - margin-top: 1rem; - padding-top: 1rem; } - .media.is-large + .media { - margin-top: 1.5rem; - padding-top: 1.5rem; } - -.media-left, -.media-right { - flex-basis: auto; - flex-grow: 0; - flex-shrink: 0; } - -.media-left { - margin-right: 1rem; } - -.media-right { - margin-left: 1rem; } - -.media-content { - flex-basis: auto; - flex-grow: 1; - flex-shrink: 1; - text-align: left; } - -@media screen and (max-width: 768px) { - .media-content { - overflow-x: auto; } } - -.menu { - font-size: 1rem; } - .menu.is-small, #documenter .docs-sidebar form.docs-search > input.menu { - font-size: 0.75rem; } - .menu.is-medium { - font-size: 1.25rem; } - .menu.is-large { - font-size: 1.5rem; } - -.menu-list { - line-height: 1.25; } - .menu-list a { - border-radius: 2px; - color: #222222; - display: block; - padding: 0.5em 0.75em; } - .menu-list a:hover { - background-color: whitesmoke; - color: #222222; } - .menu-list a.is-active { - background-color: #2e63b8; - color: #fff; } - .menu-list li ul { - border-left: 1px solid #dbdbdb; - margin: 0.75em; - padding-left: 0.75em; } - -.menu-label { - color: #6b6b6b; - font-size: 0.75em; - letter-spacing: 0.1em; - text-transform: uppercase; } - .menu-label:not(:first-child) { - margin-top: 1em; } - .menu-label:not(:last-child) { - margin-bottom: 1em; } - -.message { - background-color: whitesmoke; - border-radius: 4px; - font-size: 1rem; } - .message strong { - color: currentColor; } - .message a:not(.button):not(.tag):not(.dropdown-item) { - color: currentColor; - text-decoration: underline; } - .message.is-small, #documenter .docs-sidebar form.docs-search > input.message { - font-size: 0.75rem; } - .message.is-medium { - font-size: 1.25rem; } - .message.is-large { - font-size: 1.5rem; } - .message.is-white { - background-color: white; } - .message.is-white .message-header { - background-color: white; - color: #0a0a0a; } - .message.is-white .message-body { - border-color: white; - color: #4d4d4d; } - .message.is-black { - background-color: #fafafa; } - .message.is-black .message-header { - background-color: #0a0a0a; - color: white; } - .message.is-black .message-body { - border-color: #0a0a0a; - color: #090909; } - .message.is-light { - background-color: #fafafa; } - .message.is-light .message-header { - background-color: whitesmoke; - color: #363636; } - .message.is-light .message-body { - border-color: whitesmoke; - color: #505050; } - .message.is-dark, .content kbd.message { - background-color: #fafafa; } - .message.is-dark .message-header, .content kbd.message .message-header { - background-color: #363636; - color: whitesmoke; } - .message.is-dark .message-body, .content kbd.message .message-body { - border-color: #363636; - color: #2a2a2a; } - .message.is-primary, .docstring > section > a.message.docs-sourcelink { - background-color: #f6fbfd; } - .message.is-primary .message-header, .docstring > section > a.message.docs-sourcelink .message-header { - background-color: #4eb5de; - color: #fff; } - .message.is-primary .message-body, .docstring > section > a.message.docs-sourcelink .message-body { - border-color: #4eb5de; - color: #1f556a; } - .message.is-link { - background-color: #f7f9fd; } - .message.is-link .message-header { - background-color: #2e63b8; - color: #fff; } - .message.is-link .message-body { - border-color: #2e63b8; - color: #264981; } - .message.is-info { - background-color: #f6fbfe; } - .message.is-info .message-header { - background-color: #209cee; - color: #fff; } - .message.is-info .message-body { - border-color: #209cee; - color: #12537d; } - .message.is-success { - background-color: #f6fdf9; } - .message.is-success .message-header { - background-color: #22c35b; - color: #fff; } - .message.is-success .message-body { - border-color: #22c35b; - color: #0f361d; } - .message.is-warning { - background-color: #fffdf5; } - .message.is-warning .message-header { - background-color: #ffdd57; - color: rgba(0, 0, 0, 0.7); } - .message.is-warning .message-body { - border-color: #ffdd57; - color: #3c3108; } - .message.is-danger { - background-color: #fff5f5; } - .message.is-danger .message-header { - background-color: #da0b00; - color: #fff; } - .message.is-danger .message-body { - border-color: #da0b00; - color: #9b0c04; } - -.message-header { - align-items: center; - background-color: #222222; - border-radius: 4px 4px 0 0; - color: #fff; - display: flex; - font-weight: 700; - justify-content: space-between; - line-height: 1.25; - padding: 0.75em 1em; - position: relative; } - .message-header .delete { - flex-grow: 0; - flex-shrink: 0; - margin-left: 0.75em; } - .message-header + .message-body { - border-width: 0; - border-top-left-radius: 0; - border-top-right-radius: 0; } - -.message-body { - border-color: #dbdbdb; - border-radius: 4px; - border-style: solid; - border-width: 0 0 0 4px; - color: #222222; - padding: 1.25em 1.5em; } - .message-body code, - .message-body pre { - background-color: white; } - .message-body pre code { - background-color: transparent; } - -.modal { - align-items: center; - display: none; - flex-direction: column; - justify-content: center; - overflow: hidden; - position: fixed; - z-index: 40; } - .modal.is-active { - display: flex; } - -.modal-background { - background-color: rgba(10, 10, 10, 0.86); } - -.modal-content, -.modal-card { - margin: 0 20px; - max-height: calc(100vh - 160px); - overflow: auto; - position: relative; - width: 100%; } - @media screen and (min-width: 769px), print { - .modal-content, - .modal-card { - margin: 0 auto; - max-height: calc(100vh - 40px); - width: 640px; } } -.modal-close { - background: none; - height: 40px; - position: fixed; - right: 20px; - top: 20px; - width: 40px; } - -.modal-card { - display: flex; - flex-direction: column; - max-height: calc(100vh - 40px); - overflow: hidden; - -ms-overflow-y: visible; } - -.modal-card-head, -.modal-card-foot { - align-items: center; - background-color: whitesmoke; - display: flex; - flex-shrink: 0; - justify-content: flex-start; - padding: 20px; - position: relative; } - -.modal-card-head { - border-bottom: 1px solid #dbdbdb; - border-top-left-radius: 6px; - border-top-right-radius: 6px; } - -.modal-card-title { - color: #222222; - flex-grow: 1; - flex-shrink: 0; - font-size: 1.5rem; - line-height: 1; } - -.modal-card-foot { - border-bottom-left-radius: 6px; - border-bottom-right-radius: 6px; - border-top: 1px solid #dbdbdb; } - .modal-card-foot .button:not(:last-child) { - margin-right: 0.5em; } - -.modal-card-body { - -webkit-overflow-scrolling: touch; - background-color: white; - flex-grow: 1; - flex-shrink: 1; - overflow: auto; - padding: 20px; } - -.navbar { - background-color: white; - min-height: 3.25rem; - position: relative; - z-index: 30; } - .navbar.is-white { - background-color: white; - color: #0a0a0a; } - .navbar.is-white .navbar-brand > .navbar-item, - .navbar.is-white .navbar-brand .navbar-link { - color: #0a0a0a; } - .navbar.is-white .navbar-brand > a.navbar-item:focus, .navbar.is-white .navbar-brand > a.navbar-item:hover, .navbar.is-white .navbar-brand > a.navbar-item.is-active, - .navbar.is-white .navbar-brand .navbar-link:focus, - .navbar.is-white .navbar-brand .navbar-link:hover, - .navbar.is-white .navbar-brand .navbar-link.is-active { - background-color: #f2f2f2; - color: #0a0a0a; } - .navbar.is-white .navbar-brand .navbar-link::after { - border-color: #0a0a0a; } - .navbar.is-white .navbar-burger { - color: #0a0a0a; } - @media screen and (min-width: 1056px) { - .navbar.is-white .navbar-start > .navbar-item, - .navbar.is-white .navbar-start .navbar-link, - .navbar.is-white .navbar-end > .navbar-item, - .navbar.is-white .navbar-end .navbar-link { - color: #0a0a0a; } - .navbar.is-white .navbar-start > a.navbar-item:focus, .navbar.is-white .navbar-start > a.navbar-item:hover, .navbar.is-white .navbar-start > a.navbar-item.is-active, - .navbar.is-white .navbar-start .navbar-link:focus, - .navbar.is-white .navbar-start .navbar-link:hover, - .navbar.is-white .navbar-start .navbar-link.is-active, - .navbar.is-white .navbar-end > a.navbar-item:focus, - .navbar.is-white .navbar-end > a.navbar-item:hover, - .navbar.is-white .navbar-end > a.navbar-item.is-active, - .navbar.is-white .navbar-end .navbar-link:focus, - .navbar.is-white .navbar-end .navbar-link:hover, - .navbar.is-white .navbar-end .navbar-link.is-active { - background-color: #f2f2f2; - color: #0a0a0a; } - .navbar.is-white .navbar-start .navbar-link::after, - .navbar.is-white .navbar-end .navbar-link::after { - border-color: #0a0a0a; } - .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link, - .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link, - .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link { - background-color: #f2f2f2; - color: #0a0a0a; } - .navbar.is-white .navbar-dropdown a.navbar-item.is-active { - background-color: white; - color: #0a0a0a; } } - .navbar.is-black { - background-color: #0a0a0a; - color: white; } - .navbar.is-black .navbar-brand > .navbar-item, - .navbar.is-black .navbar-brand .navbar-link { - color: white; } - .navbar.is-black .navbar-brand > a.navbar-item:focus, .navbar.is-black .navbar-brand > a.navbar-item:hover, .navbar.is-black .navbar-brand > a.navbar-item.is-active, - .navbar.is-black .navbar-brand .navbar-link:focus, - .navbar.is-black .navbar-brand .navbar-link:hover, - .navbar.is-black .navbar-brand .navbar-link.is-active { - background-color: black; - color: white; } - .navbar.is-black .navbar-brand .navbar-link::after { - border-color: white; } - .navbar.is-black .navbar-burger { - color: white; } - @media screen and (min-width: 1056px) { - .navbar.is-black .navbar-start > .navbar-item, - .navbar.is-black .navbar-start .navbar-link, - .navbar.is-black .navbar-end > .navbar-item, - .navbar.is-black .navbar-end .navbar-link { - color: white; } - .navbar.is-black .navbar-start > a.navbar-item:focus, .navbar.is-black .navbar-start > a.navbar-item:hover, .navbar.is-black .navbar-start > a.navbar-item.is-active, - .navbar.is-black .navbar-start .navbar-link:focus, - .navbar.is-black .navbar-start .navbar-link:hover, - .navbar.is-black .navbar-start .navbar-link.is-active, - .navbar.is-black .navbar-end > a.navbar-item:focus, - .navbar.is-black .navbar-end > a.navbar-item:hover, - .navbar.is-black .navbar-end > a.navbar-item.is-active, - .navbar.is-black .navbar-end .navbar-link:focus, - .navbar.is-black .navbar-end .navbar-link:hover, - .navbar.is-black .navbar-end .navbar-link.is-active { - background-color: black; - color: white; } - .navbar.is-black .navbar-start .navbar-link::after, - .navbar.is-black .navbar-end .navbar-link::after { - border-color: white; } - .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link, - .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link, - .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link { - background-color: black; - color: white; } - .navbar.is-black .navbar-dropdown a.navbar-item.is-active { - background-color: #0a0a0a; - color: white; } } - .navbar.is-light { - background-color: whitesmoke; - color: #363636; } - .navbar.is-light .navbar-brand > .navbar-item, - .navbar.is-light .navbar-brand .navbar-link { - color: #363636; } - .navbar.is-light .navbar-brand > a.navbar-item:focus, .navbar.is-light .navbar-brand > a.navbar-item:hover, .navbar.is-light .navbar-brand > a.navbar-item.is-active, - .navbar.is-light .navbar-brand .navbar-link:focus, - .navbar.is-light .navbar-brand .navbar-link:hover, - .navbar.is-light .navbar-brand .navbar-link.is-active { - background-color: #e8e8e8; - color: #363636; } - .navbar.is-light .navbar-brand .navbar-link::after { - border-color: #363636; } - .navbar.is-light .navbar-burger { - color: #363636; } - @media screen and (min-width: 1056px) { - .navbar.is-light .navbar-start > .navbar-item, - .navbar.is-light .navbar-start .navbar-link, - .navbar.is-light .navbar-end > .navbar-item, - .navbar.is-light .navbar-end .navbar-link { - color: #363636; } - .navbar.is-light .navbar-start > a.navbar-item:focus, .navbar.is-light .navbar-start > a.navbar-item:hover, .navbar.is-light .navbar-start > a.navbar-item.is-active, - .navbar.is-light .navbar-start .navbar-link:focus, - .navbar.is-light .navbar-start .navbar-link:hover, - .navbar.is-light .navbar-start .navbar-link.is-active, - .navbar.is-light .navbar-end > a.navbar-item:focus, - .navbar.is-light .navbar-end > a.navbar-item:hover, - .navbar.is-light .navbar-end > a.navbar-item.is-active, - .navbar.is-light .navbar-end .navbar-link:focus, - .navbar.is-light .navbar-end .navbar-link:hover, - .navbar.is-light .navbar-end .navbar-link.is-active { - background-color: #e8e8e8; - color: #363636; } - .navbar.is-light .navbar-start .navbar-link::after, - .navbar.is-light .navbar-end .navbar-link::after { - border-color: #363636; } - .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link, - .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link, - .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link { - background-color: #e8e8e8; - color: #363636; } - .navbar.is-light .navbar-dropdown a.navbar-item.is-active { - background-color: whitesmoke; - color: #363636; } } - .navbar.is-dark, .content kbd.navbar { - background-color: #363636; - color: whitesmoke; } - .navbar.is-dark .navbar-brand > .navbar-item, .content kbd.navbar .navbar-brand > .navbar-item, - .navbar.is-dark .navbar-brand .navbar-link, - .content kbd.navbar .navbar-brand .navbar-link { - color: whitesmoke; } - .navbar.is-dark .navbar-brand > a.navbar-item:focus, .content kbd.navbar .navbar-brand > a.navbar-item:focus, .navbar.is-dark .navbar-brand > a.navbar-item:hover, .content kbd.navbar .navbar-brand > a.navbar-item:hover, .navbar.is-dark .navbar-brand > a.navbar-item.is-active, .content kbd.navbar .navbar-brand > a.navbar-item.is-active, - .navbar.is-dark .navbar-brand .navbar-link:focus, - .content kbd.navbar .navbar-brand .navbar-link:focus, - .navbar.is-dark .navbar-brand .navbar-link:hover, - .content kbd.navbar .navbar-brand .navbar-link:hover, - .navbar.is-dark .navbar-brand .navbar-link.is-active, - .content kbd.navbar .navbar-brand .navbar-link.is-active { - background-color: #292929; - color: whitesmoke; } - .navbar.is-dark .navbar-brand .navbar-link::after, .content kbd.navbar .navbar-brand .navbar-link::after { - border-color: whitesmoke; } - .navbar.is-dark .navbar-burger, .content kbd.navbar .navbar-burger { - color: whitesmoke; } - @media screen and (min-width: 1056px) { - .navbar.is-dark .navbar-start > .navbar-item, .content kbd.navbar .navbar-start > .navbar-item, - .navbar.is-dark .navbar-start .navbar-link, - .content kbd.navbar .navbar-start .navbar-link, - .navbar.is-dark .navbar-end > .navbar-item, - .content kbd.navbar .navbar-end > .navbar-item, - .navbar.is-dark .navbar-end .navbar-link, - .content kbd.navbar .navbar-end .navbar-link { - color: whitesmoke; } - .navbar.is-dark .navbar-start > a.navbar-item:focus, .content kbd.navbar .navbar-start > a.navbar-item:focus, .navbar.is-dark .navbar-start > a.navbar-item:hover, .content kbd.navbar .navbar-start > a.navbar-item:hover, .navbar.is-dark .navbar-start > a.navbar-item.is-active, .content kbd.navbar .navbar-start > a.navbar-item.is-active, - .navbar.is-dark .navbar-start .navbar-link:focus, - .content kbd.navbar .navbar-start .navbar-link:focus, - .navbar.is-dark .navbar-start .navbar-link:hover, - .content kbd.navbar .navbar-start .navbar-link:hover, - .navbar.is-dark .navbar-start .navbar-link.is-active, - .content kbd.navbar .navbar-start .navbar-link.is-active, - .navbar.is-dark .navbar-end > a.navbar-item:focus, - .content kbd.navbar .navbar-end > a.navbar-item:focus, - .navbar.is-dark .navbar-end > a.navbar-item:hover, - .content kbd.navbar .navbar-end > a.navbar-item:hover, - .navbar.is-dark .navbar-end > a.navbar-item.is-active, - .content kbd.navbar .navbar-end > a.navbar-item.is-active, - .navbar.is-dark .navbar-end .navbar-link:focus, - .content kbd.navbar .navbar-end .navbar-link:focus, - .navbar.is-dark .navbar-end .navbar-link:hover, - .content kbd.navbar .navbar-end .navbar-link:hover, - .navbar.is-dark .navbar-end .navbar-link.is-active, - .content kbd.navbar .navbar-end .navbar-link.is-active { - background-color: #292929; - color: whitesmoke; } - .navbar.is-dark .navbar-start .navbar-link::after, .content kbd.navbar .navbar-start .navbar-link::after, - .navbar.is-dark .navbar-end .navbar-link::after, - .content kbd.navbar .navbar-end .navbar-link::after { - border-color: whitesmoke; } - .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link, .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link, - .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link, - .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link, - .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link, - .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link { - background-color: #292929; - color: whitesmoke; } - .navbar.is-dark .navbar-dropdown a.navbar-item.is-active, .content kbd.navbar .navbar-dropdown a.navbar-item.is-active { - background-color: #363636; - color: whitesmoke; } } - .navbar.is-primary, .docstring > section > a.navbar.docs-sourcelink { - background-color: #4eb5de; - color: #fff; } - .navbar.is-primary .navbar-brand > .navbar-item, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > .navbar-item, - .navbar.is-primary .navbar-brand .navbar-link, - .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link { - color: #fff; } - .navbar.is-primary .navbar-brand > a.navbar-item:focus, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:focus, .navbar.is-primary .navbar-brand > a.navbar-item:hover, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:hover, .navbar.is-primary .navbar-brand > a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item.is-active, - .navbar.is-primary .navbar-brand .navbar-link:focus, - .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus, - .navbar.is-primary .navbar-brand .navbar-link:hover, - .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover, - .navbar.is-primary .navbar-brand .navbar-link.is-active, - .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active { - background-color: #39acda; - color: #fff; } - .navbar.is-primary .navbar-brand .navbar-link::after, .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link::after { - border-color: #fff; } - .navbar.is-primary .navbar-burger, .docstring > section > a.navbar.docs-sourcelink .navbar-burger { - color: #fff; } - @media screen and (min-width: 1056px) { - .navbar.is-primary .navbar-start > .navbar-item, .docstring > section > a.navbar.docs-sourcelink .navbar-start > .navbar-item, - .navbar.is-primary .navbar-start .navbar-link, - .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link, - .navbar.is-primary .navbar-end > .navbar-item, - .docstring > section > a.navbar.docs-sourcelink .navbar-end > .navbar-item, - .navbar.is-primary .navbar-end .navbar-link, - .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link { - color: #fff; } - .navbar.is-primary .navbar-start > a.navbar-item:focus, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:focus, .navbar.is-primary .navbar-start > a.navbar-item:hover, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:hover, .navbar.is-primary .navbar-start > a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item.is-active, - .navbar.is-primary .navbar-start .navbar-link:focus, - .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:focus, - .navbar.is-primary .navbar-start .navbar-link:hover, - .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:hover, - .navbar.is-primary .navbar-start .navbar-link.is-active, - .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active, - .navbar.is-primary .navbar-end > a.navbar-item:focus, - .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:focus, - .navbar.is-primary .navbar-end > a.navbar-item:hover, - .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:hover, - .navbar.is-primary .navbar-end > a.navbar-item.is-active, - .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item.is-active, - .navbar.is-primary .navbar-end .navbar-link:focus, - .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:focus, - .navbar.is-primary .navbar-end .navbar-link:hover, - .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:hover, - .navbar.is-primary .navbar-end .navbar-link.is-active, - .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active { - background-color: #39acda; - color: #fff; } - .navbar.is-primary .navbar-start .navbar-link::after, .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link::after, - .navbar.is-primary .navbar-end .navbar-link::after, - .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link::after { - border-color: #fff; } - .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link, .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link, - .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link, - .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link, - .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link, - .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link { - background-color: #39acda; - color: #fff; } - .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active { - background-color: #4eb5de; - color: #fff; } } - .navbar.is-link { - background-color: #2e63b8; - color: #fff; } - .navbar.is-link .navbar-brand > .navbar-item, - .navbar.is-link .navbar-brand .navbar-link { - color: #fff; } - .navbar.is-link .navbar-brand > a.navbar-item:focus, .navbar.is-link .navbar-brand > a.navbar-item:hover, .navbar.is-link .navbar-brand > a.navbar-item.is-active, - .navbar.is-link .navbar-brand .navbar-link:focus, - .navbar.is-link .navbar-brand .navbar-link:hover, - .navbar.is-link .navbar-brand .navbar-link.is-active { - background-color: #2958a4; - color: #fff; } - .navbar.is-link .navbar-brand .navbar-link::after { - border-color: #fff; } - .navbar.is-link .navbar-burger { - color: #fff; } - @media screen and (min-width: 1056px) { - .navbar.is-link .navbar-start > .navbar-item, - .navbar.is-link .navbar-start .navbar-link, - .navbar.is-link .navbar-end > .navbar-item, - .navbar.is-link .navbar-end .navbar-link { - color: #fff; } - .navbar.is-link .navbar-start > a.navbar-item:focus, .navbar.is-link .navbar-start > a.navbar-item:hover, .navbar.is-link .navbar-start > a.navbar-item.is-active, - .navbar.is-link .navbar-start .navbar-link:focus, - .navbar.is-link .navbar-start .navbar-link:hover, - .navbar.is-link .navbar-start .navbar-link.is-active, - .navbar.is-link .navbar-end > a.navbar-item:focus, - .navbar.is-link .navbar-end > a.navbar-item:hover, - .navbar.is-link .navbar-end > a.navbar-item.is-active, - .navbar.is-link .navbar-end .navbar-link:focus, - .navbar.is-link .navbar-end .navbar-link:hover, - .navbar.is-link .navbar-end .navbar-link.is-active { - background-color: #2958a4; - color: #fff; } - .navbar.is-link .navbar-start .navbar-link::after, - .navbar.is-link .navbar-end .navbar-link::after { - border-color: #fff; } - .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link, - .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link, - .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link { - background-color: #2958a4; - color: #fff; } - .navbar.is-link .navbar-dropdown a.navbar-item.is-active { - background-color: #2e63b8; - color: #fff; } } - .navbar.is-info { - background-color: #209cee; - color: #fff; } - .navbar.is-info .navbar-brand > .navbar-item, - .navbar.is-info .navbar-brand .navbar-link { - color: #fff; } - .navbar.is-info .navbar-brand > a.navbar-item:focus, .navbar.is-info .navbar-brand > a.navbar-item:hover, .navbar.is-info .navbar-brand > a.navbar-item.is-active, - .navbar.is-info .navbar-brand .navbar-link:focus, - .navbar.is-info .navbar-brand .navbar-link:hover, - .navbar.is-info .navbar-brand .navbar-link.is-active { - background-color: #1190e3; - color: #fff; } - .navbar.is-info .navbar-brand .navbar-link::after { - border-color: #fff; } - .navbar.is-info .navbar-burger { - color: #fff; } - @media screen and (min-width: 1056px) { - .navbar.is-info .navbar-start > .navbar-item, - .navbar.is-info .navbar-start .navbar-link, - .navbar.is-info .navbar-end > .navbar-item, - .navbar.is-info .navbar-end .navbar-link { - color: #fff; } - .navbar.is-info .navbar-start > a.navbar-item:focus, .navbar.is-info .navbar-start > a.navbar-item:hover, .navbar.is-info .navbar-start > a.navbar-item.is-active, - .navbar.is-info .navbar-start .navbar-link:focus, - .navbar.is-info .navbar-start .navbar-link:hover, - .navbar.is-info .navbar-start .navbar-link.is-active, - .navbar.is-info .navbar-end > a.navbar-item:focus, - .navbar.is-info .navbar-end > a.navbar-item:hover, - .navbar.is-info .navbar-end > a.navbar-item.is-active, - .navbar.is-info .navbar-end .navbar-link:focus, - .navbar.is-info .navbar-end .navbar-link:hover, - .navbar.is-info .navbar-end .navbar-link.is-active { - background-color: #1190e3; - color: #fff; } - .navbar.is-info .navbar-start .navbar-link::after, - .navbar.is-info .navbar-end .navbar-link::after { - border-color: #fff; } - .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link, - .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link, - .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link { - background-color: #1190e3; - color: #fff; } - .navbar.is-info .navbar-dropdown a.navbar-item.is-active { - background-color: #209cee; - color: #fff; } } - .navbar.is-success { - background-color: #22c35b; - color: #fff; } - .navbar.is-success .navbar-brand > .navbar-item, - .navbar.is-success .navbar-brand .navbar-link { - color: #fff; } - .navbar.is-success .navbar-brand > a.navbar-item:focus, .navbar.is-success .navbar-brand > a.navbar-item:hover, .navbar.is-success .navbar-brand > a.navbar-item.is-active, - .navbar.is-success .navbar-brand .navbar-link:focus, - .navbar.is-success .navbar-brand .navbar-link:hover, - .navbar.is-success .navbar-brand .navbar-link.is-active { - background-color: #1ead51; - color: #fff; } - .navbar.is-success .navbar-brand .navbar-link::after { - border-color: #fff; } - .navbar.is-success .navbar-burger { - color: #fff; } - @media screen and (min-width: 1056px) { - .navbar.is-success .navbar-start > .navbar-item, - .navbar.is-success .navbar-start .navbar-link, - .navbar.is-success .navbar-end > .navbar-item, - .navbar.is-success .navbar-end .navbar-link { - color: #fff; } - .navbar.is-success .navbar-start > a.navbar-item:focus, .navbar.is-success .navbar-start > a.navbar-item:hover, .navbar.is-success .navbar-start > a.navbar-item.is-active, - .navbar.is-success .navbar-start .navbar-link:focus, - .navbar.is-success .navbar-start .navbar-link:hover, - .navbar.is-success .navbar-start .navbar-link.is-active, - .navbar.is-success .navbar-end > a.navbar-item:focus, - .navbar.is-success .navbar-end > a.navbar-item:hover, - .navbar.is-success .navbar-end > a.navbar-item.is-active, - .navbar.is-success .navbar-end .navbar-link:focus, - .navbar.is-success .navbar-end .navbar-link:hover, - .navbar.is-success .navbar-end .navbar-link.is-active { - background-color: #1ead51; - color: #fff; } - .navbar.is-success .navbar-start .navbar-link::after, - .navbar.is-success .navbar-end .navbar-link::after { - border-color: #fff; } - .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link, - .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link, - .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link { - background-color: #1ead51; - color: #fff; } - .navbar.is-success .navbar-dropdown a.navbar-item.is-active { - background-color: #22c35b; - color: #fff; } } - .navbar.is-warning { - background-color: #ffdd57; - color: rgba(0, 0, 0, 0.7); } - .navbar.is-warning .navbar-brand > .navbar-item, - .navbar.is-warning .navbar-brand .navbar-link { - color: rgba(0, 0, 0, 0.7); } - .navbar.is-warning .navbar-brand > a.navbar-item:focus, .navbar.is-warning .navbar-brand > a.navbar-item:hover, .navbar.is-warning .navbar-brand > a.navbar-item.is-active, - .navbar.is-warning .navbar-brand .navbar-link:focus, - .navbar.is-warning .navbar-brand .navbar-link:hover, - .navbar.is-warning .navbar-brand .navbar-link.is-active { - background-color: #ffd83e; - color: rgba(0, 0, 0, 0.7); } - .navbar.is-warning .navbar-brand .navbar-link::after { - border-color: rgba(0, 0, 0, 0.7); } - .navbar.is-warning .navbar-burger { - color: rgba(0, 0, 0, 0.7); } - @media screen and (min-width: 1056px) { - .navbar.is-warning .navbar-start > .navbar-item, - .navbar.is-warning .navbar-start .navbar-link, - .navbar.is-warning .navbar-end > .navbar-item, - .navbar.is-warning .navbar-end .navbar-link { - color: rgba(0, 0, 0, 0.7); } - .navbar.is-warning .navbar-start > a.navbar-item:focus, .navbar.is-warning .navbar-start > a.navbar-item:hover, .navbar.is-warning .navbar-start > a.navbar-item.is-active, - .navbar.is-warning .navbar-start .navbar-link:focus, - .navbar.is-warning .navbar-start .navbar-link:hover, - .navbar.is-warning .navbar-start .navbar-link.is-active, - .navbar.is-warning .navbar-end > a.navbar-item:focus, - .navbar.is-warning .navbar-end > a.navbar-item:hover, - .navbar.is-warning .navbar-end > a.navbar-item.is-active, - .navbar.is-warning .navbar-end .navbar-link:focus, - .navbar.is-warning .navbar-end .navbar-link:hover, - .navbar.is-warning .navbar-end .navbar-link.is-active { - background-color: #ffd83e; - color: rgba(0, 0, 0, 0.7); } - .navbar.is-warning .navbar-start .navbar-link::after, - .navbar.is-warning .navbar-end .navbar-link::after { - border-color: rgba(0, 0, 0, 0.7); } - .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link, - .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link, - .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link { - background-color: #ffd83e; - color: rgba(0, 0, 0, 0.7); } - .navbar.is-warning .navbar-dropdown a.navbar-item.is-active { - background-color: #ffdd57; - color: rgba(0, 0, 0, 0.7); } } - .navbar.is-danger { - background-color: #da0b00; - color: #fff; } - .navbar.is-danger .navbar-brand > .navbar-item, - .navbar.is-danger .navbar-brand .navbar-link { - color: #fff; } - .navbar.is-danger .navbar-brand > a.navbar-item:focus, .navbar.is-danger .navbar-brand > a.navbar-item:hover, .navbar.is-danger .navbar-brand > a.navbar-item.is-active, - .navbar.is-danger .navbar-brand .navbar-link:focus, - .navbar.is-danger .navbar-brand .navbar-link:hover, - .navbar.is-danger .navbar-brand .navbar-link.is-active { - background-color: #c10a00; - color: #fff; } - .navbar.is-danger .navbar-brand .navbar-link::after { - border-color: #fff; } - .navbar.is-danger .navbar-burger { - color: #fff; } - @media screen and (min-width: 1056px) { - .navbar.is-danger .navbar-start > .navbar-item, - .navbar.is-danger .navbar-start .navbar-link, - .navbar.is-danger .navbar-end > .navbar-item, - .navbar.is-danger .navbar-end .navbar-link { - color: #fff; } - .navbar.is-danger .navbar-start > a.navbar-item:focus, .navbar.is-danger .navbar-start > a.navbar-item:hover, .navbar.is-danger .navbar-start > a.navbar-item.is-active, - .navbar.is-danger .navbar-start .navbar-link:focus, - .navbar.is-danger .navbar-start .navbar-link:hover, - .navbar.is-danger .navbar-start .navbar-link.is-active, - .navbar.is-danger .navbar-end > a.navbar-item:focus, - .navbar.is-danger .navbar-end > a.navbar-item:hover, - .navbar.is-danger .navbar-end > a.navbar-item.is-active, - .navbar.is-danger .navbar-end .navbar-link:focus, - .navbar.is-danger .navbar-end .navbar-link:hover, - .navbar.is-danger .navbar-end .navbar-link.is-active { - background-color: #c10a00; - color: #fff; } - .navbar.is-danger .navbar-start .navbar-link::after, - .navbar.is-danger .navbar-end .navbar-link::after { - border-color: #fff; } - .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link, - .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link, - .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link { - background-color: #c10a00; - color: #fff; } - .navbar.is-danger .navbar-dropdown a.navbar-item.is-active { - background-color: #da0b00; - color: #fff; } } - .navbar > .container { - align-items: stretch; - display: flex; - min-height: 3.25rem; - width: 100%; } - .navbar.has-shadow { - box-shadow: 0 2px 0 0 whitesmoke; } - .navbar.is-fixed-bottom, .navbar.is-fixed-top { - left: 0; - position: fixed; - right: 0; - z-index: 30; } - .navbar.is-fixed-bottom { - bottom: 0; } - .navbar.is-fixed-bottom.has-shadow { - box-shadow: 0 -2px 0 0 whitesmoke; } - .navbar.is-fixed-top { - top: 0; } - -html.has-navbar-fixed-top, -body.has-navbar-fixed-top { - padding-top: 3.25rem; } - -html.has-navbar-fixed-bottom, -body.has-navbar-fixed-bottom { - padding-bottom: 3.25rem; } - -.navbar-brand, -.navbar-tabs { - align-items: stretch; - display: flex; - flex-shrink: 0; - min-height: 3.25rem; } - -.navbar-brand a.navbar-item:focus, .navbar-brand a.navbar-item:hover { - background-color: transparent; } - -.navbar-tabs { - -webkit-overflow-scrolling: touch; - max-width: 100vw; - overflow-x: auto; - overflow-y: hidden; } - -.navbar-burger { - color: #4a4a4a; - cursor: pointer; - display: block; - height: 3.25rem; - position: relative; - width: 3.25rem; - margin-left: auto; } - .navbar-burger span { - background-color: currentColor; - display: block; - height: 1px; - left: calc(50% - 8px); - position: absolute; - transform-origin: center; - transition-duration: 86ms; - transition-property: background-color, opacity, transform; - transition-timing-function: ease-out; - width: 16px; } - .navbar-burger span:nth-child(1) { - top: calc(50% - 6px); } - .navbar-burger span:nth-child(2) { - top: calc(50% - 1px); } - .navbar-burger span:nth-child(3) { - top: calc(50% + 4px); } - .navbar-burger:hover { - background-color: rgba(0, 0, 0, 0.05); } - .navbar-burger.is-active span:nth-child(1) { - transform: translateY(5px) rotate(45deg); } - .navbar-burger.is-active span:nth-child(2) { - opacity: 0; } - .navbar-burger.is-active span:nth-child(3) { - transform: translateY(-5px) rotate(-45deg); } - -.navbar-menu { - display: none; } - -.navbar-item, -.navbar-link { - color: #4a4a4a; - display: block; - line-height: 1.5; - padding: 0.5rem 0.75rem; - position: relative; } - .navbar-item .icon:only-child, - .navbar-link .icon:only-child { - margin-left: -0.25rem; - margin-right: -0.25rem; } - -a.navbar-item, -.navbar-link { - cursor: pointer; } - a.navbar-item:focus, a.navbar-item:focus-within, a.navbar-item:hover, a.navbar-item.is-active, - .navbar-link:focus, - .navbar-link:focus-within, - .navbar-link:hover, - .navbar-link.is-active { - background-color: #fafafa; - color: #2e63b8; } - -.navbar-item { - display: block; - flex-grow: 0; - flex-shrink: 0; } - .navbar-item img { - max-height: 1.75rem; } - .navbar-item.has-dropdown { - padding: 0; } - .navbar-item.is-expanded { - flex-grow: 1; - flex-shrink: 1; } - .navbar-item.is-tab { - border-bottom: 1px solid transparent; - min-height: 3.25rem; - padding-bottom: calc(0.5rem - 1px); } - .navbar-item.is-tab:focus, .navbar-item.is-tab:hover { - background-color: transparent; - border-bottom-color: #2e63b8; } - .navbar-item.is-tab.is-active { - background-color: transparent; - border-bottom-color: #2e63b8; - border-bottom-style: solid; - border-bottom-width: 3px; - color: #2e63b8; - padding-bottom: calc(0.5rem - 3px); } - -.navbar-content { - flex-grow: 1; - flex-shrink: 1; } - -.navbar-link:not(.is-arrowless) { - padding-right: 2.5em; } - .navbar-link:not(.is-arrowless)::after { - border-color: #2e63b8; - margin-top: -0.375em; - right: 1.125em; } - -.navbar-dropdown { - font-size: 0.875rem; - padding-bottom: 0.5rem; - padding-top: 0.5rem; } - .navbar-dropdown .navbar-item { - padding-left: 1.5rem; - padding-right: 1.5rem; } - -.navbar-divider { - background-color: whitesmoke; - border: none; - display: none; - height: 2px; - margin: 0.5rem 0; } - -@media screen and (max-width: 1055px) { - .navbar > .container { - display: block; } - .navbar-brand .navbar-item, - .navbar-tabs .navbar-item { - align-items: center; - display: flex; } - .navbar-link::after { - display: none; } - .navbar-menu { - background-color: white; - box-shadow: 0 8px 16px rgba(10, 10, 10, 0.1); - padding: 0.5rem 0; } - .navbar-menu.is-active { - display: block; } - .navbar.is-fixed-bottom-touch, .navbar.is-fixed-top-touch { - left: 0; - position: fixed; - right: 0; - z-index: 30; } - .navbar.is-fixed-bottom-touch { - bottom: 0; } - .navbar.is-fixed-bottom-touch.has-shadow { - box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } - .navbar.is-fixed-top-touch { - top: 0; } - .navbar.is-fixed-top .navbar-menu, .navbar.is-fixed-top-touch .navbar-menu { - -webkit-overflow-scrolling: touch; - max-height: calc(100vh - 3.25rem); - overflow: auto; } - html.has-navbar-fixed-top-touch, - body.has-navbar-fixed-top-touch { - padding-top: 3.25rem; } - html.has-navbar-fixed-bottom-touch, - body.has-navbar-fixed-bottom-touch { - padding-bottom: 3.25rem; } } - -@media screen and (min-width: 1056px) { - .navbar, - .navbar-menu, - .navbar-start, - .navbar-end { - align-items: stretch; - display: flex; } - .navbar { - min-height: 3.25rem; } - .navbar.is-spaced { - padding: 1rem 2rem; } - .navbar.is-spaced .navbar-start, - .navbar.is-spaced .navbar-end { - align-items: center; } - .navbar.is-spaced a.navbar-item, - .navbar.is-spaced .navbar-link { - border-radius: 4px; } - .navbar.is-transparent a.navbar-item:focus, .navbar.is-transparent a.navbar-item:hover, .navbar.is-transparent a.navbar-item.is-active, - .navbar.is-transparent .navbar-link:focus, - .navbar.is-transparent .navbar-link:hover, - .navbar.is-transparent .navbar-link.is-active { - background-color: transparent !important; } - .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link { - background-color: transparent !important; } - .navbar.is-transparent .navbar-dropdown a.navbar-item:focus, .navbar.is-transparent .navbar-dropdown a.navbar-item:hover { - background-color: whitesmoke; - color: #0a0a0a; } - .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active { - background-color: whitesmoke; - color: #2e63b8; } - .navbar-burger { - display: none; } - .navbar-item, - .navbar-link { - align-items: center; - display: flex; } - .navbar-item { - display: flex; } - .navbar-item.has-dropdown { - align-items: stretch; } - .navbar-item.has-dropdown-up .navbar-link::after { - transform: rotate(135deg) translate(0.25em, -0.25em); } - .navbar-item.has-dropdown-up .navbar-dropdown { - border-bottom: 2px solid #dbdbdb; - border-radius: 6px 6px 0 0; - border-top: none; - bottom: 100%; - box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1); - top: auto; } - .navbar-item.is-active .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown { - display: block; } - .navbar.is-spaced .navbar-item.is-active .navbar-dropdown, .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed { - opacity: 1; - pointer-events: auto; - transform: translateY(0); } - .navbar-menu { - flex-grow: 1; - flex-shrink: 0; } - .navbar-start { - justify-content: flex-start; - margin-right: auto; } - .navbar-end { - justify-content: flex-end; - margin-left: auto; } - .navbar-dropdown { - background-color: white; - border-bottom-left-radius: 6px; - border-bottom-right-radius: 6px; - border-top: 2px solid #dbdbdb; - box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1); - display: none; - font-size: 0.875rem; - left: 0; - min-width: 100%; - position: absolute; - top: 100%; - z-index: 20; } - .navbar-dropdown .navbar-item { - padding: 0.375rem 1rem; - white-space: nowrap; } - .navbar-dropdown a.navbar-item { - padding-right: 3rem; } - .navbar-dropdown a.navbar-item:focus, .navbar-dropdown a.navbar-item:hover { - background-color: whitesmoke; - color: #0a0a0a; } - .navbar-dropdown a.navbar-item.is-active { - background-color: whitesmoke; - color: #2e63b8; } - .navbar.is-spaced .navbar-dropdown, .navbar-dropdown.is-boxed { - border-radius: 6px; - border-top: none; - box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); - display: block; - opacity: 0; - pointer-events: none; - top: calc(100% + (-4px)); - transform: translateY(-5px); - transition-duration: 86ms; - transition-property: opacity, transform; } - .navbar-dropdown.is-right { - left: auto; - right: 0; } - .navbar-divider { - display: block; } - .navbar > .container .navbar-brand, - .container > .navbar .navbar-brand { - margin-left: -.75rem; } - .navbar > .container .navbar-menu, - .container > .navbar .navbar-menu { - margin-right: -.75rem; } - .navbar.is-fixed-bottom-desktop, .navbar.is-fixed-top-desktop { - left: 0; - position: fixed; - right: 0; - z-index: 30; } - .navbar.is-fixed-bottom-desktop { - bottom: 0; } - .navbar.is-fixed-bottom-desktop.has-shadow { - box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } - .navbar.is-fixed-top-desktop { - top: 0; } - html.has-navbar-fixed-top-desktop, - body.has-navbar-fixed-top-desktop { - padding-top: 3.25rem; } - html.has-navbar-fixed-bottom-desktop, - body.has-navbar-fixed-bottom-desktop { - padding-bottom: 3.25rem; } - html.has-spaced-navbar-fixed-top, - body.has-spaced-navbar-fixed-top { - padding-top: 5.25rem; } - html.has-spaced-navbar-fixed-bottom, - body.has-spaced-navbar-fixed-bottom { - padding-bottom: 5.25rem; } - a.navbar-item.is-active, - .navbar-link.is-active { - color: #0a0a0a; } - a.navbar-item.is-active:not(:focus):not(:hover), - .navbar-link.is-active:not(:focus):not(:hover) { - background-color: transparent; } - .navbar-item.has-dropdown:focus .navbar-link, .navbar-item.has-dropdown:hover .navbar-link, .navbar-item.has-dropdown.is-active .navbar-link { - background-color: #fafafa; } } - -.hero.is-fullheight-with-navbar { - min-height: calc(100vh - 3.25rem); } - -.pagination { - font-size: 1rem; - margin: -0.25rem; } - .pagination.is-small, #documenter .docs-sidebar form.docs-search > input.pagination { - font-size: 0.75rem; } - .pagination.is-medium { - font-size: 1.25rem; } - .pagination.is-large { - font-size: 1.5rem; } - .pagination.is-rounded .pagination-previous, #documenter .docs-sidebar form.docs-search > input.pagination .pagination-previous, - .pagination.is-rounded .pagination-next, - #documenter .docs-sidebar form.docs-search > input.pagination .pagination-next { - padding-left: 1em; - padding-right: 1em; - border-radius: 290486px; } - .pagination.is-rounded .pagination-link, #documenter .docs-sidebar form.docs-search > input.pagination .pagination-link { - border-radius: 290486px; } - -.pagination, -.pagination-list { - align-items: center; - display: flex; - justify-content: center; - text-align: center; } - -.pagination-previous, -.pagination-next, -.pagination-link, -.pagination-ellipsis { - font-size: 1em; - justify-content: center; - margin: 0.25rem; - padding-left: 0.5em; - padding-right: 0.5em; - text-align: center; } - -.pagination-previous, -.pagination-next, -.pagination-link { - border-color: #dbdbdb; - color: #363636; - min-width: 2.25em; } - .pagination-previous:hover, - .pagination-next:hover, - .pagination-link:hover { - border-color: #b5b5b5; - color: #363636; } - .pagination-previous:focus, - .pagination-next:focus, - .pagination-link:focus { - border-color: #3c5dcd; } - .pagination-previous:active, - .pagination-next:active, - .pagination-link:active { - box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); } - .pagination-previous[disabled], - .pagination-next[disabled], - .pagination-link[disabled] { - background-color: #dbdbdb; - border-color: #dbdbdb; - box-shadow: none; - color: #6b6b6b; - opacity: 0.5; } - -.pagination-previous, -.pagination-next { - padding-left: 0.75em; - padding-right: 0.75em; - white-space: nowrap; } - -.pagination-link.is-current { - background-color: #2e63b8; - border-color: #2e63b8; - color: #fff; } - -.pagination-ellipsis { - color: #b5b5b5; - pointer-events: none; } - -.pagination-list { - flex-wrap: wrap; } - -@media screen and (max-width: 768px) { - .pagination { - flex-wrap: wrap; } - .pagination-previous, - .pagination-next { - flex-grow: 1; - flex-shrink: 1; } - .pagination-list li { - flex-grow: 1; - flex-shrink: 1; } } - -@media screen and (min-width: 769px), print { - .pagination-list { - flex-grow: 1; - flex-shrink: 1; - justify-content: flex-start; - order: 1; } - .pagination-previous { - order: 2; } - .pagination-next { - order: 3; } - .pagination { - justify-content: space-between; } - .pagination.is-centered .pagination-previous { - order: 1; } - .pagination.is-centered .pagination-list { - justify-content: center; - order: 2; } - .pagination.is-centered .pagination-next { - order: 3; } - .pagination.is-right .pagination-previous { - order: 1; } - .pagination.is-right .pagination-next { - order: 2; } - .pagination.is-right .pagination-list { - justify-content: flex-end; - order: 3; } } - -.panel { - font-size: 1rem; } - .panel:not(:last-child) { - margin-bottom: 1.5rem; } - -.panel-heading, -.panel-tabs, -.panel-block { - border-bottom: 1px solid #dbdbdb; - border-left: 1px solid #dbdbdb; - border-right: 1px solid #dbdbdb; } - .panel-heading:first-child, - .panel-tabs:first-child, - .panel-block:first-child { - border-top: 1px solid #dbdbdb; } - -.panel-heading { - background-color: whitesmoke; - border-radius: 4px 4px 0 0; - color: #222222; - font-size: 1.25em; - font-weight: 300; - line-height: 1.25; - padding: 0.5em 0.75em; } - -.panel-tabs { - align-items: flex-end; - display: flex; - font-size: 0.875em; - justify-content: center; } - .panel-tabs a { - border-bottom: 1px solid #dbdbdb; - margin-bottom: -1px; - padding: 0.5em; } - .panel-tabs a.is-active { - border-bottom-color: #4a4a4a; - color: #363636; } - -.panel-list a { - color: #222222; } - .panel-list a:hover { - color: #2e63b8; } - -.panel-block { - align-items: center; - color: #222222; - display: flex; - justify-content: flex-start; - padding: 0.5em 0.75em; } - .panel-block input[type="checkbox"] { - margin-right: 0.75em; } - .panel-block > .control { - flex-grow: 1; - flex-shrink: 1; - width: 100%; } - .panel-block.is-wrapped { - flex-wrap: wrap; } - .panel-block.is-active { - border-left-color: #2e63b8; - color: #363636; } - .panel-block.is-active .panel-icon { - color: #2e63b8; } - -a.panel-block, -label.panel-block { - cursor: pointer; } - a.panel-block:hover, - label.panel-block:hover { - background-color: whitesmoke; } - -.panel-icon { - display: inline-block; - font-size: 14px; - height: 1em; - line-height: 1em; - text-align: center; - vertical-align: top; - width: 1em; - color: #6b6b6b; - margin-right: 0.75em; } - .panel-icon .fa { - font-size: inherit; - line-height: inherit; } - -.tabs { - -webkit-overflow-scrolling: touch; - align-items: stretch; - display: flex; - font-size: 1rem; - justify-content: space-between; - overflow: hidden; - overflow-x: auto; - white-space: nowrap; } - .tabs a { - align-items: center; - border-bottom-color: #dbdbdb; - border-bottom-style: solid; - border-bottom-width: 1px; - color: #222222; - display: flex; - justify-content: center; - margin-bottom: -1px; - padding: 0.5em 1em; - vertical-align: top; } - .tabs a:hover { - border-bottom-color: #222222; - color: #222222; } - .tabs li { - display: block; } - .tabs li.is-active a { - border-bottom-color: #2e63b8; - color: #2e63b8; } - .tabs ul { - align-items: center; - border-bottom-color: #dbdbdb; - border-bottom-style: solid; - border-bottom-width: 1px; - display: flex; - flex-grow: 1; - flex-shrink: 0; - justify-content: flex-start; } - .tabs ul.is-left { - padding-right: 0.75em; } - .tabs ul.is-center { - flex: none; - justify-content: center; - padding-left: 0.75em; - padding-right: 0.75em; } - .tabs ul.is-right { - justify-content: flex-end; - padding-left: 0.75em; } - .tabs .icon:first-child { - margin-right: 0.5em; } - .tabs .icon:last-child { - margin-left: 0.5em; } - .tabs.is-centered ul { - justify-content: center; } - .tabs.is-right ul { - justify-content: flex-end; } - .tabs.is-boxed a { - border: 1px solid transparent; - border-radius: 4px 4px 0 0; } - .tabs.is-boxed a:hover { - background-color: whitesmoke; - border-bottom-color: #dbdbdb; } - .tabs.is-boxed li.is-active a { - background-color: white; - border-color: #dbdbdb; - border-bottom-color: transparent !important; } - .tabs.is-fullwidth li { - flex-grow: 1; - flex-shrink: 0; } - .tabs.is-toggle a { - border-color: #dbdbdb; - border-style: solid; - border-width: 1px; - margin-bottom: 0; - position: relative; } - .tabs.is-toggle a:hover { - background-color: whitesmoke; - border-color: #b5b5b5; - z-index: 2; } - .tabs.is-toggle li + li { - margin-left: -1px; } - .tabs.is-toggle li:first-child a { - border-radius: 4px 0 0 4px; } - .tabs.is-toggle li:last-child a { - border-radius: 0 4px 4px 0; } - .tabs.is-toggle li.is-active a { - background-color: #2e63b8; - border-color: #2e63b8; - color: #fff; - z-index: 1; } - .tabs.is-toggle ul { - border-bottom: none; } - .tabs.is-toggle.is-toggle-rounded li:first-child a { - border-bottom-left-radius: 290486px; - border-top-left-radius: 290486px; - padding-left: 1.25em; } - .tabs.is-toggle.is-toggle-rounded li:last-child a { - border-bottom-right-radius: 290486px; - border-top-right-radius: 290486px; - padding-right: 1.25em; } - .tabs.is-small, #documenter .docs-sidebar form.docs-search > input.tabs { - font-size: 0.75rem; } - .tabs.is-medium { - font-size: 1.25rem; } - .tabs.is-large { - font-size: 1.5rem; } - -.column { - display: block; - flex-basis: 0; - flex-grow: 1; - flex-shrink: 1; - padding: 0.75rem; } - .columns.is-mobile > .column.is-narrow { - flex: none; } - .columns.is-mobile > .column.is-full { - flex: none; - width: 100%; } - .columns.is-mobile > .column.is-three-quarters { - flex: none; - width: 75%; } - .columns.is-mobile > .column.is-two-thirds { - flex: none; - width: 66.6666%; } - .columns.is-mobile > .column.is-half { - flex: none; - width: 50%; } - .columns.is-mobile > .column.is-one-third { - flex: none; - width: 33.3333%; } - .columns.is-mobile > .column.is-one-quarter { - flex: none; - width: 25%; } - .columns.is-mobile > .column.is-one-fifth { - flex: none; - width: 20%; } - .columns.is-mobile > .column.is-two-fifths { - flex: none; - width: 40%; } - .columns.is-mobile > .column.is-three-fifths { - flex: none; - width: 60%; } - .columns.is-mobile > .column.is-four-fifths { - flex: none; - width: 80%; } - .columns.is-mobile > .column.is-offset-three-quarters { - margin-left: 75%; } - .columns.is-mobile > .column.is-offset-two-thirds { - margin-left: 66.6666%; } - .columns.is-mobile > .column.is-offset-half { - margin-left: 50%; } - .columns.is-mobile > .column.is-offset-one-third { - margin-left: 33.3333%; } - .columns.is-mobile > .column.is-offset-one-quarter { - margin-left: 25%; } - .columns.is-mobile > .column.is-offset-one-fifth { - margin-left: 20%; } - .columns.is-mobile > .column.is-offset-two-fifths { - margin-left: 40%; } - .columns.is-mobile > .column.is-offset-three-fifths { - margin-left: 60%; } - .columns.is-mobile > .column.is-offset-four-fifths { - margin-left: 80%; } - .columns.is-mobile > .column.is-0 { - flex: none; - width: 0%; } - .columns.is-mobile > .column.is-offset-0 { - margin-left: 0%; } - .columns.is-mobile > .column.is-1 { - flex: none; - width: 8.3333333333%; } - .columns.is-mobile > .column.is-offset-1 { - margin-left: 8.3333333333%; } - .columns.is-mobile > .column.is-2 { - flex: none; - width: 16.6666666667%; } - .columns.is-mobile > .column.is-offset-2 { - margin-left: 16.6666666667%; } - .columns.is-mobile > .column.is-3 { - flex: none; - width: 25%; } - .columns.is-mobile > .column.is-offset-3 { - margin-left: 25%; } - .columns.is-mobile > .column.is-4 { - flex: none; - width: 33.3333333333%; } - .columns.is-mobile > .column.is-offset-4 { - margin-left: 33.3333333333%; } - .columns.is-mobile > .column.is-5 { - flex: none; - width: 41.6666666667%; } - .columns.is-mobile > .column.is-offset-5 { - margin-left: 41.6666666667%; } - .columns.is-mobile > .column.is-6 { - flex: none; - width: 50%; } - .columns.is-mobile > .column.is-offset-6 { - margin-left: 50%; } - .columns.is-mobile > .column.is-7 { - flex: none; - width: 58.3333333333%; } - .columns.is-mobile > .column.is-offset-7 { - margin-left: 58.3333333333%; } - .columns.is-mobile > .column.is-8 { - flex: none; - width: 66.6666666667%; } - .columns.is-mobile > .column.is-offset-8 { - margin-left: 66.6666666667%; } - .columns.is-mobile > .column.is-9 { - flex: none; - width: 75%; } - .columns.is-mobile > .column.is-offset-9 { - margin-left: 75%; } - .columns.is-mobile > .column.is-10 { - flex: none; - width: 83.3333333333%; } - .columns.is-mobile > .column.is-offset-10 { - margin-left: 83.3333333333%; } - .columns.is-mobile > .column.is-11 { - flex: none; - width: 91.6666666667%; } - .columns.is-mobile > .column.is-offset-11 { - margin-left: 91.6666666667%; } - .columns.is-mobile > .column.is-12 { - flex: none; - width: 100%; } - .columns.is-mobile > .column.is-offset-12 { - margin-left: 100%; } - @media screen and (max-width: 768px) { - .column.is-narrow-mobile { - flex: none; } - .column.is-full-mobile { - flex: none; - width: 100%; } - .column.is-three-quarters-mobile { - flex: none; - width: 75%; } - .column.is-two-thirds-mobile { - flex: none; - width: 66.6666%; } - .column.is-half-mobile { - flex: none; - width: 50%; } - .column.is-one-third-mobile { - flex: none; - width: 33.3333%; } - .column.is-one-quarter-mobile { - flex: none; - width: 25%; } - .column.is-one-fifth-mobile { - flex: none; - width: 20%; } - .column.is-two-fifths-mobile { - flex: none; - width: 40%; } - .column.is-three-fifths-mobile { - flex: none; - width: 60%; } - .column.is-four-fifths-mobile { - flex: none; - width: 80%; } - .column.is-offset-three-quarters-mobile { - margin-left: 75%; } - .column.is-offset-two-thirds-mobile { - margin-left: 66.6666%; } - .column.is-offset-half-mobile { - margin-left: 50%; } - .column.is-offset-one-third-mobile { - margin-left: 33.3333%; } - .column.is-offset-one-quarter-mobile { - margin-left: 25%; } - .column.is-offset-one-fifth-mobile { - margin-left: 20%; } - .column.is-offset-two-fifths-mobile { - margin-left: 40%; } - .column.is-offset-three-fifths-mobile { - margin-left: 60%; } - .column.is-offset-four-fifths-mobile { - margin-left: 80%; } - .column.is-0-mobile { - flex: none; - width: 0%; } - .column.is-offset-0-mobile { - margin-left: 0%; } - .column.is-1-mobile { - flex: none; - width: 8.3333333333%; } - .column.is-offset-1-mobile { - margin-left: 8.3333333333%; } - .column.is-2-mobile { - flex: none; - width: 16.6666666667%; } - .column.is-offset-2-mobile { - margin-left: 16.6666666667%; } - .column.is-3-mobile { - flex: none; - width: 25%; } - .column.is-offset-3-mobile { - margin-left: 25%; } - .column.is-4-mobile { - flex: none; - width: 33.3333333333%; } - .column.is-offset-4-mobile { - margin-left: 33.3333333333%; } - .column.is-5-mobile { - flex: none; - width: 41.6666666667%; } - .column.is-offset-5-mobile { - margin-left: 41.6666666667%; } - .column.is-6-mobile { - flex: none; - width: 50%; } - .column.is-offset-6-mobile { - margin-left: 50%; } - .column.is-7-mobile { - flex: none; - width: 58.3333333333%; } - .column.is-offset-7-mobile { - margin-left: 58.3333333333%; } - .column.is-8-mobile { - flex: none; - width: 66.6666666667%; } - .column.is-offset-8-mobile { - margin-left: 66.6666666667%; } - .column.is-9-mobile { - flex: none; - width: 75%; } - .column.is-offset-9-mobile { - margin-left: 75%; } - .column.is-10-mobile { - flex: none; - width: 83.3333333333%; } - .column.is-offset-10-mobile { - margin-left: 83.3333333333%; } - .column.is-11-mobile { - flex: none; - width: 91.6666666667%; } - .column.is-offset-11-mobile { - margin-left: 91.6666666667%; } - .column.is-12-mobile { - flex: none; - width: 100%; } - .column.is-offset-12-mobile { - margin-left: 100%; } } - @media screen and (min-width: 769px), print { - .column.is-narrow, .column.is-narrow-tablet { - flex: none; } - .column.is-full, .column.is-full-tablet { - flex: none; - width: 100%; } - .column.is-three-quarters, .column.is-three-quarters-tablet { - flex: none; - width: 75%; } - .column.is-two-thirds, .column.is-two-thirds-tablet { - flex: none; - width: 66.6666%; } - .column.is-half, .column.is-half-tablet { - flex: none; - width: 50%; } - .column.is-one-third, .column.is-one-third-tablet { - flex: none; - width: 33.3333%; } - .column.is-one-quarter, .column.is-one-quarter-tablet { - flex: none; - width: 25%; } - .column.is-one-fifth, .column.is-one-fifth-tablet { - flex: none; - width: 20%; } - .column.is-two-fifths, .column.is-two-fifths-tablet { - flex: none; - width: 40%; } - .column.is-three-fifths, .column.is-three-fifths-tablet { - flex: none; - width: 60%; } - .column.is-four-fifths, .column.is-four-fifths-tablet { - flex: none; - width: 80%; } - .column.is-offset-three-quarters, .column.is-offset-three-quarters-tablet { - margin-left: 75%; } - .column.is-offset-two-thirds, .column.is-offset-two-thirds-tablet { - margin-left: 66.6666%; } - .column.is-offset-half, .column.is-offset-half-tablet { - margin-left: 50%; } - .column.is-offset-one-third, .column.is-offset-one-third-tablet { - margin-left: 33.3333%; } - .column.is-offset-one-quarter, .column.is-offset-one-quarter-tablet { - margin-left: 25%; } - .column.is-offset-one-fifth, .column.is-offset-one-fifth-tablet { - margin-left: 20%; } - .column.is-offset-two-fifths, .column.is-offset-two-fifths-tablet { - margin-left: 40%; } - .column.is-offset-three-fifths, .column.is-offset-three-fifths-tablet { - margin-left: 60%; } - .column.is-offset-four-fifths, .column.is-offset-four-fifths-tablet { - margin-left: 80%; } - .column.is-0, .column.is-0-tablet { - flex: none; - width: 0%; } - .column.is-offset-0, .column.is-offset-0-tablet { - margin-left: 0%; } - .column.is-1, .column.is-1-tablet { - flex: none; - width: 8.3333333333%; } - .column.is-offset-1, .column.is-offset-1-tablet { - margin-left: 8.3333333333%; } - .column.is-2, .column.is-2-tablet { - flex: none; - width: 16.6666666667%; } - .column.is-offset-2, .column.is-offset-2-tablet { - margin-left: 16.6666666667%; } - .column.is-3, .column.is-3-tablet { - flex: none; - width: 25%; } - .column.is-offset-3, .column.is-offset-3-tablet { - margin-left: 25%; } - .column.is-4, .column.is-4-tablet { - flex: none; - width: 33.3333333333%; } - .column.is-offset-4, .column.is-offset-4-tablet { - margin-left: 33.3333333333%; } - .column.is-5, .column.is-5-tablet { - flex: none; - width: 41.6666666667%; } - .column.is-offset-5, .column.is-offset-5-tablet { - margin-left: 41.6666666667%; } - .column.is-6, .column.is-6-tablet { - flex: none; - width: 50%; } - .column.is-offset-6, .column.is-offset-6-tablet { - margin-left: 50%; } - .column.is-7, .column.is-7-tablet { - flex: none; - width: 58.3333333333%; } - .column.is-offset-7, .column.is-offset-7-tablet { - margin-left: 58.3333333333%; } - .column.is-8, .column.is-8-tablet { - flex: none; - width: 66.6666666667%; } - .column.is-offset-8, .column.is-offset-8-tablet { - margin-left: 66.6666666667%; } - .column.is-9, .column.is-9-tablet { - flex: none; - width: 75%; } - .column.is-offset-9, .column.is-offset-9-tablet { - margin-left: 75%; } - .column.is-10, .column.is-10-tablet { - flex: none; - width: 83.3333333333%; } - .column.is-offset-10, .column.is-offset-10-tablet { - margin-left: 83.3333333333%; } - .column.is-11, .column.is-11-tablet { - flex: none; - width: 91.6666666667%; } - .column.is-offset-11, .column.is-offset-11-tablet { - margin-left: 91.6666666667%; } - .column.is-12, .column.is-12-tablet { - flex: none; - width: 100%; } - .column.is-offset-12, .column.is-offset-12-tablet { - margin-left: 100%; } } - @media screen and (max-width: 1055px) { - .column.is-narrow-touch { - flex: none; } - .column.is-full-touch { - flex: none; - width: 100%; } - .column.is-three-quarters-touch { - flex: none; - width: 75%; } - .column.is-two-thirds-touch { - flex: none; - width: 66.6666%; } - .column.is-half-touch { - flex: none; - width: 50%; } - .column.is-one-third-touch { - flex: none; - width: 33.3333%; } - .column.is-one-quarter-touch { - flex: none; - width: 25%; } - .column.is-one-fifth-touch { - flex: none; - width: 20%; } - .column.is-two-fifths-touch { - flex: none; - width: 40%; } - .column.is-three-fifths-touch { - flex: none; - width: 60%; } - .column.is-four-fifths-touch { - flex: none; - width: 80%; } - .column.is-offset-three-quarters-touch { - margin-left: 75%; } - .column.is-offset-two-thirds-touch { - margin-left: 66.6666%; } - .column.is-offset-half-touch { - margin-left: 50%; } - .column.is-offset-one-third-touch { - margin-left: 33.3333%; } - .column.is-offset-one-quarter-touch { - margin-left: 25%; } - .column.is-offset-one-fifth-touch { - margin-left: 20%; } - .column.is-offset-two-fifths-touch { - margin-left: 40%; } - .column.is-offset-three-fifths-touch { - margin-left: 60%; } - .column.is-offset-four-fifths-touch { - margin-left: 80%; } - .column.is-0-touch { - flex: none; - width: 0%; } - .column.is-offset-0-touch { - margin-left: 0%; } - .column.is-1-touch { - flex: none; - width: 8.3333333333%; } - .column.is-offset-1-touch { - margin-left: 8.3333333333%; } - .column.is-2-touch { - flex: none; - width: 16.6666666667%; } - .column.is-offset-2-touch { - margin-left: 16.6666666667%; } - .column.is-3-touch { - flex: none; - width: 25%; } - .column.is-offset-3-touch { - margin-left: 25%; } - .column.is-4-touch { - flex: none; - width: 33.3333333333%; } - .column.is-offset-4-touch { - margin-left: 33.3333333333%; } - .column.is-5-touch { - flex: none; - width: 41.6666666667%; } - .column.is-offset-5-touch { - margin-left: 41.6666666667%; } - .column.is-6-touch { - flex: none; - width: 50%; } - .column.is-offset-6-touch { - margin-left: 50%; } - .column.is-7-touch { - flex: none; - width: 58.3333333333%; } - .column.is-offset-7-touch { - margin-left: 58.3333333333%; } - .column.is-8-touch { - flex: none; - width: 66.6666666667%; } - .column.is-offset-8-touch { - margin-left: 66.6666666667%; } - .column.is-9-touch { - flex: none; - width: 75%; } - .column.is-offset-9-touch { - margin-left: 75%; } - .column.is-10-touch { - flex: none; - width: 83.3333333333%; } - .column.is-offset-10-touch { - margin-left: 83.3333333333%; } - .column.is-11-touch { - flex: none; - width: 91.6666666667%; } - .column.is-offset-11-touch { - margin-left: 91.6666666667%; } - .column.is-12-touch { - flex: none; - width: 100%; } - .column.is-offset-12-touch { - margin-left: 100%; } } - @media screen and (min-width: 1056px) { - .column.is-narrow-desktop { - flex: none; } - .column.is-full-desktop { - flex: none; - width: 100%; } - .column.is-three-quarters-desktop { - flex: none; - width: 75%; } - .column.is-two-thirds-desktop { - flex: none; - width: 66.6666%; } - .column.is-half-desktop { - flex: none; - width: 50%; } - .column.is-one-third-desktop { - flex: none; - width: 33.3333%; } - .column.is-one-quarter-desktop { - flex: none; - width: 25%; } - .column.is-one-fifth-desktop { - flex: none; - width: 20%; } - .column.is-two-fifths-desktop { - flex: none; - width: 40%; } - .column.is-three-fifths-desktop { - flex: none; - width: 60%; } - .column.is-four-fifths-desktop { - flex: none; - width: 80%; } - .column.is-offset-three-quarters-desktop { - margin-left: 75%; } - .column.is-offset-two-thirds-desktop { - margin-left: 66.6666%; } - .column.is-offset-half-desktop { - margin-left: 50%; } - .column.is-offset-one-third-desktop { - margin-left: 33.3333%; } - .column.is-offset-one-quarter-desktop { - margin-left: 25%; } - .column.is-offset-one-fifth-desktop { - margin-left: 20%; } - .column.is-offset-two-fifths-desktop { - margin-left: 40%; } - .column.is-offset-three-fifths-desktop { - margin-left: 60%; } - .column.is-offset-four-fifths-desktop { - margin-left: 80%; } - .column.is-0-desktop { - flex: none; - width: 0%; } - .column.is-offset-0-desktop { - margin-left: 0%; } - .column.is-1-desktop { - flex: none; - width: 8.3333333333%; } - .column.is-offset-1-desktop { - margin-left: 8.3333333333%; } - .column.is-2-desktop { - flex: none; - width: 16.6666666667%; } - .column.is-offset-2-desktop { - margin-left: 16.6666666667%; } - .column.is-3-desktop { - flex: none; - width: 25%; } - .column.is-offset-3-desktop { - margin-left: 25%; } - .column.is-4-desktop { - flex: none; - width: 33.3333333333%; } - .column.is-offset-4-desktop { - margin-left: 33.3333333333%; } - .column.is-5-desktop { - flex: none; - width: 41.6666666667%; } - .column.is-offset-5-desktop { - margin-left: 41.6666666667%; } - .column.is-6-desktop { - flex: none; - width: 50%; } - .column.is-offset-6-desktop { - margin-left: 50%; } - .column.is-7-desktop { - flex: none; - width: 58.3333333333%; } - .column.is-offset-7-desktop { - margin-left: 58.3333333333%; } - .column.is-8-desktop { - flex: none; - width: 66.6666666667%; } - .column.is-offset-8-desktop { - margin-left: 66.6666666667%; } - .column.is-9-desktop { - flex: none; - width: 75%; } - .column.is-offset-9-desktop { - margin-left: 75%; } - .column.is-10-desktop { - flex: none; - width: 83.3333333333%; } - .column.is-offset-10-desktop { - margin-left: 83.3333333333%; } - .column.is-11-desktop { - flex: none; - width: 91.6666666667%; } - .column.is-offset-11-desktop { - margin-left: 91.6666666667%; } - .column.is-12-desktop { - flex: none; - width: 100%; } - .column.is-offset-12-desktop { - margin-left: 100%; } } - @media screen and (min-width: 1216px) { - .column.is-narrow-widescreen { - flex: none; } - .column.is-full-widescreen { - flex: none; - width: 100%; } - .column.is-three-quarters-widescreen { - flex: none; - width: 75%; } - .column.is-two-thirds-widescreen { - flex: none; - width: 66.6666%; } - .column.is-half-widescreen { - flex: none; - width: 50%; } - .column.is-one-third-widescreen { - flex: none; - width: 33.3333%; } - .column.is-one-quarter-widescreen { - flex: none; - width: 25%; } - .column.is-one-fifth-widescreen { - flex: none; - width: 20%; } - .column.is-two-fifths-widescreen { - flex: none; - width: 40%; } - .column.is-three-fifths-widescreen { - flex: none; - width: 60%; } - .column.is-four-fifths-widescreen { - flex: none; - width: 80%; } - .column.is-offset-three-quarters-widescreen { - margin-left: 75%; } - .column.is-offset-two-thirds-widescreen { - margin-left: 66.6666%; } - .column.is-offset-half-widescreen { - margin-left: 50%; } - .column.is-offset-one-third-widescreen { - margin-left: 33.3333%; } - .column.is-offset-one-quarter-widescreen { - margin-left: 25%; } - .column.is-offset-one-fifth-widescreen { - margin-left: 20%; } - .column.is-offset-two-fifths-widescreen { - margin-left: 40%; } - .column.is-offset-three-fifths-widescreen { - margin-left: 60%; } - .column.is-offset-four-fifths-widescreen { - margin-left: 80%; } - .column.is-0-widescreen { - flex: none; - width: 0%; } - .column.is-offset-0-widescreen { - margin-left: 0%; } - .column.is-1-widescreen { - flex: none; - width: 8.3333333333%; } - .column.is-offset-1-widescreen { - margin-left: 8.3333333333%; } - .column.is-2-widescreen { - flex: none; - width: 16.6666666667%; } - .column.is-offset-2-widescreen { - margin-left: 16.6666666667%; } - .column.is-3-widescreen { - flex: none; - width: 25%; } - .column.is-offset-3-widescreen { - margin-left: 25%; } - .column.is-4-widescreen { - flex: none; - width: 33.3333333333%; } - .column.is-offset-4-widescreen { - margin-left: 33.3333333333%; } - .column.is-5-widescreen { - flex: none; - width: 41.6666666667%; } - .column.is-offset-5-widescreen { - margin-left: 41.6666666667%; } - .column.is-6-widescreen { - flex: none; - width: 50%; } - .column.is-offset-6-widescreen { - margin-left: 50%; } - .column.is-7-widescreen { - flex: none; - width: 58.3333333333%; } - .column.is-offset-7-widescreen { - margin-left: 58.3333333333%; } - .column.is-8-widescreen { - flex: none; - width: 66.6666666667%; } - .column.is-offset-8-widescreen { - margin-left: 66.6666666667%; } - .column.is-9-widescreen { - flex: none; - width: 75%; } - .column.is-offset-9-widescreen { - margin-left: 75%; } - .column.is-10-widescreen { - flex: none; - width: 83.3333333333%; } - .column.is-offset-10-widescreen { - margin-left: 83.3333333333%; } - .column.is-11-widescreen { - flex: none; - width: 91.6666666667%; } - .column.is-offset-11-widescreen { - margin-left: 91.6666666667%; } - .column.is-12-widescreen { - flex: none; - width: 100%; } - .column.is-offset-12-widescreen { - margin-left: 100%; } } - @media screen and (min-width: 1408px) { - .column.is-narrow-fullhd { - flex: none; } - .column.is-full-fullhd { - flex: none; - width: 100%; } - .column.is-three-quarters-fullhd { - flex: none; - width: 75%; } - .column.is-two-thirds-fullhd { - flex: none; - width: 66.6666%; } - .column.is-half-fullhd { - flex: none; - width: 50%; } - .column.is-one-third-fullhd { - flex: none; - width: 33.3333%; } - .column.is-one-quarter-fullhd { - flex: none; - width: 25%; } - .column.is-one-fifth-fullhd { - flex: none; - width: 20%; } - .column.is-two-fifths-fullhd { - flex: none; - width: 40%; } - .column.is-three-fifths-fullhd { - flex: none; - width: 60%; } - .column.is-four-fifths-fullhd { - flex: none; - width: 80%; } - .column.is-offset-three-quarters-fullhd { - margin-left: 75%; } - .column.is-offset-two-thirds-fullhd { - margin-left: 66.6666%; } - .column.is-offset-half-fullhd { - margin-left: 50%; } - .column.is-offset-one-third-fullhd { - margin-left: 33.3333%; } - .column.is-offset-one-quarter-fullhd { - margin-left: 25%; } - .column.is-offset-one-fifth-fullhd { - margin-left: 20%; } - .column.is-offset-two-fifths-fullhd { - margin-left: 40%; } - .column.is-offset-three-fifths-fullhd { - margin-left: 60%; } - .column.is-offset-four-fifths-fullhd { - margin-left: 80%; } - .column.is-0-fullhd { - flex: none; - width: 0%; } - .column.is-offset-0-fullhd { - margin-left: 0%; } - .column.is-1-fullhd { - flex: none; - width: 8.3333333333%; } - .column.is-offset-1-fullhd { - margin-left: 8.3333333333%; } - .column.is-2-fullhd { - flex: none; - width: 16.6666666667%; } - .column.is-offset-2-fullhd { - margin-left: 16.6666666667%; } - .column.is-3-fullhd { - flex: none; - width: 25%; } - .column.is-offset-3-fullhd { - margin-left: 25%; } - .column.is-4-fullhd { - flex: none; - width: 33.3333333333%; } - .column.is-offset-4-fullhd { - margin-left: 33.3333333333%; } - .column.is-5-fullhd { - flex: none; - width: 41.6666666667%; } - .column.is-offset-5-fullhd { - margin-left: 41.6666666667%; } - .column.is-6-fullhd { - flex: none; - width: 50%; } - .column.is-offset-6-fullhd { - margin-left: 50%; } - .column.is-7-fullhd { - flex: none; - width: 58.3333333333%; } - .column.is-offset-7-fullhd { - margin-left: 58.3333333333%; } - .column.is-8-fullhd { - flex: none; - width: 66.6666666667%; } - .column.is-offset-8-fullhd { - margin-left: 66.6666666667%; } - .column.is-9-fullhd { - flex: none; - width: 75%; } - .column.is-offset-9-fullhd { - margin-left: 75%; } - .column.is-10-fullhd { - flex: none; - width: 83.3333333333%; } - .column.is-offset-10-fullhd { - margin-left: 83.3333333333%; } - .column.is-11-fullhd { - flex: none; - width: 91.6666666667%; } - .column.is-offset-11-fullhd { - margin-left: 91.6666666667%; } - .column.is-12-fullhd { - flex: none; - width: 100%; } - .column.is-offset-12-fullhd { - margin-left: 100%; } } -.columns { - margin-left: -0.75rem; - margin-right: -0.75rem; - margin-top: -0.75rem; } - .columns:last-child { - margin-bottom: -0.75rem; } - .columns:not(:last-child) { - margin-bottom: calc(1.5rem - 0.75rem); } - .columns.is-centered { - justify-content: center; } - .columns.is-gapless { - margin-left: 0; - margin-right: 0; - margin-top: 0; } - .columns.is-gapless > .column { - margin: 0; - padding: 0 !important; } - .columns.is-gapless:not(:last-child) { - margin-bottom: 1.5rem; } - .columns.is-gapless:last-child { - margin-bottom: 0; } - .columns.is-mobile { - display: flex; } - .columns.is-multiline { - flex-wrap: wrap; } - .columns.is-vcentered { - align-items: center; } - @media screen and (min-width: 769px), print { - .columns:not(.is-desktop) { - display: flex; } } - @media screen and (min-width: 1056px) { - .columns.is-desktop { - display: flex; } } -.columns.is-variable { - --columnGap: 0.75rem; - margin-left: calc(-1 * var(--columnGap)); - margin-right: calc(-1 * var(--columnGap)); } - .columns.is-variable .column { - padding-left: var(--columnGap); - padding-right: var(--columnGap); } - .columns.is-variable.is-0 { - --columnGap: 0rem; } - @media screen and (max-width: 768px) { - .columns.is-variable.is-0-mobile { - --columnGap: 0rem; } } - @media screen and (min-width: 769px), print { - .columns.is-variable.is-0-tablet { - --columnGap: 0rem; } } - @media screen and (min-width: 769px) and (max-width: 1055px) { - .columns.is-variable.is-0-tablet-only { - --columnGap: 0rem; } } - @media screen and (max-width: 1055px) { - .columns.is-variable.is-0-touch { - --columnGap: 0rem; } } - @media screen and (min-width: 1056px) { - .columns.is-variable.is-0-desktop { - --columnGap: 0rem; } } - @media screen and (min-width: 1056px) and (max-width: 1215px) { - .columns.is-variable.is-0-desktop-only { - --columnGap: 0rem; } } - @media screen and (min-width: 1216px) { - .columns.is-variable.is-0-widescreen { - --columnGap: 0rem; } } - @media screen and (min-width: 1216px) and (max-width: 1407px) { - .columns.is-variable.is-0-widescreen-only { - --columnGap: 0rem; } } - @media screen and (min-width: 1408px) { - .columns.is-variable.is-0-fullhd { - --columnGap: 0rem; } } - .columns.is-variable.is-1 { - --columnGap: 0.25rem; } - @media screen and (max-width: 768px) { - .columns.is-variable.is-1-mobile { - --columnGap: 0.25rem; } } - @media screen and (min-width: 769px), print { - .columns.is-variable.is-1-tablet { - --columnGap: 0.25rem; } } - @media screen and (min-width: 769px) and (max-width: 1055px) { - .columns.is-variable.is-1-tablet-only { - --columnGap: 0.25rem; } } - @media screen and (max-width: 1055px) { - .columns.is-variable.is-1-touch { - --columnGap: 0.25rem; } } - @media screen and (min-width: 1056px) { - .columns.is-variable.is-1-desktop { - --columnGap: 0.25rem; } } - @media screen and (min-width: 1056px) and (max-width: 1215px) { - .columns.is-variable.is-1-desktop-only { - --columnGap: 0.25rem; } } - @media screen and (min-width: 1216px) { - .columns.is-variable.is-1-widescreen { - --columnGap: 0.25rem; } } - @media screen and (min-width: 1216px) and (max-width: 1407px) { - .columns.is-variable.is-1-widescreen-only { - --columnGap: 0.25rem; } } - @media screen and (min-width: 1408px) { - .columns.is-variable.is-1-fullhd { - --columnGap: 0.25rem; } } - .columns.is-variable.is-2 { - --columnGap: 0.5rem; } - @media screen and (max-width: 768px) { - .columns.is-variable.is-2-mobile { - --columnGap: 0.5rem; } } - @media screen and (min-width: 769px), print { - .columns.is-variable.is-2-tablet { - --columnGap: 0.5rem; } } - @media screen and (min-width: 769px) and (max-width: 1055px) { - .columns.is-variable.is-2-tablet-only { - --columnGap: 0.5rem; } } - @media screen and (max-width: 1055px) { - .columns.is-variable.is-2-touch { - --columnGap: 0.5rem; } } - @media screen and (min-width: 1056px) { - .columns.is-variable.is-2-desktop { - --columnGap: 0.5rem; } } - @media screen and (min-width: 1056px) and (max-width: 1215px) { - .columns.is-variable.is-2-desktop-only { - --columnGap: 0.5rem; } } - @media screen and (min-width: 1216px) { - .columns.is-variable.is-2-widescreen { - --columnGap: 0.5rem; } } - @media screen and (min-width: 1216px) and (max-width: 1407px) { - .columns.is-variable.is-2-widescreen-only { - --columnGap: 0.5rem; } } - @media screen and (min-width: 1408px) { - .columns.is-variable.is-2-fullhd { - --columnGap: 0.5rem; } } - .columns.is-variable.is-3 { - --columnGap: 0.75rem; } - @media screen and (max-width: 768px) { - .columns.is-variable.is-3-mobile { - --columnGap: 0.75rem; } } - @media screen and (min-width: 769px), print { - .columns.is-variable.is-3-tablet { - --columnGap: 0.75rem; } } - @media screen and (min-width: 769px) and (max-width: 1055px) { - .columns.is-variable.is-3-tablet-only { - --columnGap: 0.75rem; } } - @media screen and (max-width: 1055px) { - .columns.is-variable.is-3-touch { - --columnGap: 0.75rem; } } - @media screen and (min-width: 1056px) { - .columns.is-variable.is-3-desktop { - --columnGap: 0.75rem; } } - @media screen and (min-width: 1056px) and (max-width: 1215px) { - .columns.is-variable.is-3-desktop-only { - --columnGap: 0.75rem; } } - @media screen and (min-width: 1216px) { - .columns.is-variable.is-3-widescreen { - --columnGap: 0.75rem; } } - @media screen and (min-width: 1216px) and (max-width: 1407px) { - .columns.is-variable.is-3-widescreen-only { - --columnGap: 0.75rem; } } - @media screen and (min-width: 1408px) { - .columns.is-variable.is-3-fullhd { - --columnGap: 0.75rem; } } - .columns.is-variable.is-4 { - --columnGap: 1rem; } - @media screen and (max-width: 768px) { - .columns.is-variable.is-4-mobile { - --columnGap: 1rem; } } - @media screen and (min-width: 769px), print { - .columns.is-variable.is-4-tablet { - --columnGap: 1rem; } } - @media screen and (min-width: 769px) and (max-width: 1055px) { - .columns.is-variable.is-4-tablet-only { - --columnGap: 1rem; } } - @media screen and (max-width: 1055px) { - .columns.is-variable.is-4-touch { - --columnGap: 1rem; } } - @media screen and (min-width: 1056px) { - .columns.is-variable.is-4-desktop { - --columnGap: 1rem; } } - @media screen and (min-width: 1056px) and (max-width: 1215px) { - .columns.is-variable.is-4-desktop-only { - --columnGap: 1rem; } } - @media screen and (min-width: 1216px) { - .columns.is-variable.is-4-widescreen { - --columnGap: 1rem; } } - @media screen and (min-width: 1216px) and (max-width: 1407px) { - .columns.is-variable.is-4-widescreen-only { - --columnGap: 1rem; } } - @media screen and (min-width: 1408px) { - .columns.is-variable.is-4-fullhd { - --columnGap: 1rem; } } - .columns.is-variable.is-5 { - --columnGap: 1.25rem; } - @media screen and (max-width: 768px) { - .columns.is-variable.is-5-mobile { - --columnGap: 1.25rem; } } - @media screen and (min-width: 769px), print { - .columns.is-variable.is-5-tablet { - --columnGap: 1.25rem; } } - @media screen and (min-width: 769px) and (max-width: 1055px) { - .columns.is-variable.is-5-tablet-only { - --columnGap: 1.25rem; } } - @media screen and (max-width: 1055px) { - .columns.is-variable.is-5-touch { - --columnGap: 1.25rem; } } - @media screen and (min-width: 1056px) { - .columns.is-variable.is-5-desktop { - --columnGap: 1.25rem; } } - @media screen and (min-width: 1056px) and (max-width: 1215px) { - .columns.is-variable.is-5-desktop-only { - --columnGap: 1.25rem; } } - @media screen and (min-width: 1216px) { - .columns.is-variable.is-5-widescreen { - --columnGap: 1.25rem; } } - @media screen and (min-width: 1216px) and (max-width: 1407px) { - .columns.is-variable.is-5-widescreen-only { - --columnGap: 1.25rem; } } - @media screen and (min-width: 1408px) { - .columns.is-variable.is-5-fullhd { - --columnGap: 1.25rem; } } - .columns.is-variable.is-6 { - --columnGap: 1.5rem; } - @media screen and (max-width: 768px) { - .columns.is-variable.is-6-mobile { - --columnGap: 1.5rem; } } - @media screen and (min-width: 769px), print { - .columns.is-variable.is-6-tablet { - --columnGap: 1.5rem; } } - @media screen and (min-width: 769px) and (max-width: 1055px) { - .columns.is-variable.is-6-tablet-only { - --columnGap: 1.5rem; } } - @media screen and (max-width: 1055px) { - .columns.is-variable.is-6-touch { - --columnGap: 1.5rem; } } - @media screen and (min-width: 1056px) { - .columns.is-variable.is-6-desktop { - --columnGap: 1.5rem; } } - @media screen and (min-width: 1056px) and (max-width: 1215px) { - .columns.is-variable.is-6-desktop-only { - --columnGap: 1.5rem; } } - @media screen and (min-width: 1216px) { - .columns.is-variable.is-6-widescreen { - --columnGap: 1.5rem; } } - @media screen and (min-width: 1216px) and (max-width: 1407px) { - .columns.is-variable.is-6-widescreen-only { - --columnGap: 1.5rem; } } - @media screen and (min-width: 1408px) { - .columns.is-variable.is-6-fullhd { - --columnGap: 1.5rem; } } - .columns.is-variable.is-7 { - --columnGap: 1.75rem; } - @media screen and (max-width: 768px) { - .columns.is-variable.is-7-mobile { - --columnGap: 1.75rem; } } - @media screen and (min-width: 769px), print { - .columns.is-variable.is-7-tablet { - --columnGap: 1.75rem; } } - @media screen and (min-width: 769px) and (max-width: 1055px) { - .columns.is-variable.is-7-tablet-only { - --columnGap: 1.75rem; } } - @media screen and (max-width: 1055px) { - .columns.is-variable.is-7-touch { - --columnGap: 1.75rem; } } - @media screen and (min-width: 1056px) { - .columns.is-variable.is-7-desktop { - --columnGap: 1.75rem; } } - @media screen and (min-width: 1056px) and (max-width: 1215px) { - .columns.is-variable.is-7-desktop-only { - --columnGap: 1.75rem; } } - @media screen and (min-width: 1216px) { - .columns.is-variable.is-7-widescreen { - --columnGap: 1.75rem; } } - @media screen and (min-width: 1216px) and (max-width: 1407px) { - .columns.is-variable.is-7-widescreen-only { - --columnGap: 1.75rem; } } - @media screen and (min-width: 1408px) { - .columns.is-variable.is-7-fullhd { - --columnGap: 1.75rem; } } - .columns.is-variable.is-8 { - --columnGap: 2rem; } - @media screen and (max-width: 768px) { - .columns.is-variable.is-8-mobile { - --columnGap: 2rem; } } - @media screen and (min-width: 769px), print { - .columns.is-variable.is-8-tablet { - --columnGap: 2rem; } } - @media screen and (min-width: 769px) and (max-width: 1055px) { - .columns.is-variable.is-8-tablet-only { - --columnGap: 2rem; } } - @media screen and (max-width: 1055px) { - .columns.is-variable.is-8-touch { - --columnGap: 2rem; } } - @media screen and (min-width: 1056px) { - .columns.is-variable.is-8-desktop { - --columnGap: 2rem; } } - @media screen and (min-width: 1056px) and (max-width: 1215px) { - .columns.is-variable.is-8-desktop-only { - --columnGap: 2rem; } } - @media screen and (min-width: 1216px) { - .columns.is-variable.is-8-widescreen { - --columnGap: 2rem; } } - @media screen and (min-width: 1216px) and (max-width: 1407px) { - .columns.is-variable.is-8-widescreen-only { - --columnGap: 2rem; } } - @media screen and (min-width: 1408px) { - .columns.is-variable.is-8-fullhd { - --columnGap: 2rem; } } -.tile { - align-items: stretch; - display: block; - flex-basis: 0; - flex-grow: 1; - flex-shrink: 1; - min-height: min-content; } - .tile.is-ancestor { - margin-left: -0.75rem; - margin-right: -0.75rem; - margin-top: -0.75rem; } - .tile.is-ancestor:last-child { - margin-bottom: -0.75rem; } - .tile.is-ancestor:not(:last-child) { - margin-bottom: 0.75rem; } - .tile.is-child { - margin: 0 !important; } - .tile.is-parent { - padding: 0.75rem; } - .tile.is-vertical { - flex-direction: column; } - .tile.is-vertical > .tile.is-child:not(:last-child) { - margin-bottom: 1.5rem !important; } - @media screen and (min-width: 769px), print { - .tile:not(.is-child) { - display: flex; } - .tile.is-1 { - flex: none; - width: 8.3333333333%; } - .tile.is-2 { - flex: none; - width: 16.6666666667%; } - .tile.is-3 { - flex: none; - width: 25%; } - .tile.is-4 { - flex: none; - width: 33.3333333333%; } - .tile.is-5 { - flex: none; - width: 41.6666666667%; } - .tile.is-6 { - flex: none; - width: 50%; } - .tile.is-7 { - flex: none; - width: 58.3333333333%; } - .tile.is-8 { - flex: none; - width: 66.6666666667%; } - .tile.is-9 { - flex: none; - width: 75%; } - .tile.is-10 { - flex: none; - width: 83.3333333333%; } - .tile.is-11 { - flex: none; - width: 91.6666666667%; } - .tile.is-12 { - flex: none; - width: 100%; } } -.hero { - align-items: stretch; - display: flex; - flex-direction: column; - justify-content: space-between; } - .hero .navbar { - background: none; } - .hero .tabs ul { - border-bottom: none; } - .hero.is-white { - background-color: white; - color: #0a0a0a; } - .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), - .hero.is-white strong { - color: inherit; } - .hero.is-white .title { - color: #0a0a0a; } - .hero.is-white .subtitle { - color: rgba(10, 10, 10, 0.9); } - .hero.is-white .subtitle a:not(.button), - .hero.is-white .subtitle strong { - color: #0a0a0a; } - @media screen and (max-width: 1055px) { - .hero.is-white .navbar-menu { - background-color: white; } } - .hero.is-white .navbar-item, - .hero.is-white .navbar-link { - color: rgba(10, 10, 10, 0.7); } - .hero.is-white a.navbar-item:hover, .hero.is-white a.navbar-item.is-active, - .hero.is-white .navbar-link:hover, - .hero.is-white .navbar-link.is-active { - background-color: #f2f2f2; - color: #0a0a0a; } - .hero.is-white .tabs a { - color: #0a0a0a; - opacity: 0.9; } - .hero.is-white .tabs a:hover { - opacity: 1; } - .hero.is-white .tabs li.is-active a { - opacity: 1; } - .hero.is-white .tabs.is-boxed a, .hero.is-white .tabs.is-toggle a { - color: #0a0a0a; } - .hero.is-white .tabs.is-boxed a:hover, .hero.is-white .tabs.is-toggle a:hover { - background-color: rgba(10, 10, 10, 0.1); } - .hero.is-white .tabs.is-boxed li.is-active a, .hero.is-white .tabs.is-boxed li.is-active a:hover, .hero.is-white .tabs.is-toggle li.is-active a, .hero.is-white .tabs.is-toggle li.is-active a:hover { - background-color: #0a0a0a; - border-color: #0a0a0a; - color: white; } - .hero.is-white.is-bold { - background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } - @media screen and (max-width: 768px) { - .hero.is-white.is-bold .navbar-menu { - background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } } - .hero.is-black { - background-color: #0a0a0a; - color: white; } - .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), - .hero.is-black strong { - color: inherit; } - .hero.is-black .title { - color: white; } - .hero.is-black .subtitle { - color: rgba(255, 255, 255, 0.9); } - .hero.is-black .subtitle a:not(.button), - .hero.is-black .subtitle strong { - color: white; } - @media screen and (max-width: 1055px) { - .hero.is-black .navbar-menu { - background-color: #0a0a0a; } } - .hero.is-black .navbar-item, - .hero.is-black .navbar-link { - color: rgba(255, 255, 255, 0.7); } - .hero.is-black a.navbar-item:hover, .hero.is-black a.navbar-item.is-active, - .hero.is-black .navbar-link:hover, - .hero.is-black .navbar-link.is-active { - background-color: black; - color: white; } - .hero.is-black .tabs a { - color: white; - opacity: 0.9; } - .hero.is-black .tabs a:hover { - opacity: 1; } - .hero.is-black .tabs li.is-active a { - opacity: 1; } - .hero.is-black .tabs.is-boxed a, .hero.is-black .tabs.is-toggle a { - color: white; } - .hero.is-black .tabs.is-boxed a:hover, .hero.is-black .tabs.is-toggle a:hover { - background-color: rgba(10, 10, 10, 0.1); } - .hero.is-black .tabs.is-boxed li.is-active a, .hero.is-black .tabs.is-boxed li.is-active a:hover, .hero.is-black .tabs.is-toggle li.is-active a, .hero.is-black .tabs.is-toggle li.is-active a:hover { - background-color: white; - border-color: white; - color: #0a0a0a; } - .hero.is-black.is-bold { - background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } - @media screen and (max-width: 768px) { - .hero.is-black.is-bold .navbar-menu { - background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } } - .hero.is-light { - background-color: whitesmoke; - color: #363636; } - .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), - .hero.is-light strong { - color: inherit; } - .hero.is-light .title { - color: #363636; } - .hero.is-light .subtitle { - color: rgba(54, 54, 54, 0.9); } - .hero.is-light .subtitle a:not(.button), - .hero.is-light .subtitle strong { - color: #363636; } - @media screen and (max-width: 1055px) { - .hero.is-light .navbar-menu { - background-color: whitesmoke; } } - .hero.is-light .navbar-item, - .hero.is-light .navbar-link { - color: rgba(54, 54, 54, 0.7); } - .hero.is-light a.navbar-item:hover, .hero.is-light a.navbar-item.is-active, - .hero.is-light .navbar-link:hover, - .hero.is-light .navbar-link.is-active { - background-color: #e8e8e8; - color: #363636; } - .hero.is-light .tabs a { - color: #363636; - opacity: 0.9; } - .hero.is-light .tabs a:hover { - opacity: 1; } - .hero.is-light .tabs li.is-active a { - opacity: 1; } - .hero.is-light .tabs.is-boxed a, .hero.is-light .tabs.is-toggle a { - color: #363636; } - .hero.is-light .tabs.is-boxed a:hover, .hero.is-light .tabs.is-toggle a:hover { - background-color: rgba(10, 10, 10, 0.1); } - .hero.is-light .tabs.is-boxed li.is-active a, .hero.is-light .tabs.is-boxed li.is-active a:hover, .hero.is-light .tabs.is-toggle li.is-active a, .hero.is-light .tabs.is-toggle li.is-active a:hover { - background-color: #363636; - border-color: #363636; - color: whitesmoke; } - .hero.is-light.is-bold { - background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); } - @media screen and (max-width: 768px) { - .hero.is-light.is-bold .navbar-menu { - background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); } } - .hero.is-dark, .content kbd.hero { - background-color: #363636; - color: whitesmoke; } - .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), - .hero.is-dark strong, - .content kbd.hero strong { - color: inherit; } - .hero.is-dark .title, .content kbd.hero .title { - color: whitesmoke; } - .hero.is-dark .subtitle, .content kbd.hero .subtitle { - color: rgba(245, 245, 245, 0.9); } - .hero.is-dark .subtitle a:not(.button), .content kbd.hero .subtitle a:not(.button), - .hero.is-dark .subtitle strong, - .content kbd.hero .subtitle strong { - color: whitesmoke; } - @media screen and (max-width: 1055px) { - .hero.is-dark .navbar-menu, .content kbd.hero .navbar-menu { - background-color: #363636; } } - .hero.is-dark .navbar-item, .content kbd.hero .navbar-item, - .hero.is-dark .navbar-link, - .content kbd.hero .navbar-link { - color: rgba(245, 245, 245, 0.7); } - .hero.is-dark a.navbar-item:hover, .content kbd.hero a.navbar-item:hover, .hero.is-dark a.navbar-item.is-active, .content kbd.hero a.navbar-item.is-active, - .hero.is-dark .navbar-link:hover, - .content kbd.hero .navbar-link:hover, - .hero.is-dark .navbar-link.is-active, - .content kbd.hero .navbar-link.is-active { - background-color: #292929; - color: whitesmoke; } - .hero.is-dark .tabs a, .content kbd.hero .tabs a { - color: whitesmoke; - opacity: 0.9; } - .hero.is-dark .tabs a:hover, .content kbd.hero .tabs a:hover { - opacity: 1; } - .hero.is-dark .tabs li.is-active a, .content kbd.hero .tabs li.is-active a { - opacity: 1; } - .hero.is-dark .tabs.is-boxed a, .content kbd.hero .tabs.is-boxed a, .hero.is-dark .tabs.is-toggle a, .content kbd.hero .tabs.is-toggle a { - color: whitesmoke; } - .hero.is-dark .tabs.is-boxed a:hover, .content kbd.hero .tabs.is-boxed a:hover, .hero.is-dark .tabs.is-toggle a:hover, .content kbd.hero .tabs.is-toggle a:hover { - background-color: rgba(10, 10, 10, 0.1); } - .hero.is-dark .tabs.is-boxed li.is-active a, .content kbd.hero .tabs.is-boxed li.is-active a, .hero.is-dark .tabs.is-boxed li.is-active a:hover, .hero.is-dark .tabs.is-toggle li.is-active a, .content kbd.hero .tabs.is-toggle li.is-active a, .hero.is-dark .tabs.is-toggle li.is-active a:hover { - background-color: whitesmoke; - border-color: whitesmoke; - color: #363636; } - .hero.is-dark.is-bold, .content kbd.hero.is-bold { - background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); } - @media screen and (max-width: 768px) { - .hero.is-dark.is-bold .navbar-menu, .content kbd.hero.is-bold .navbar-menu { - background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); } } - .hero.is-primary, .docstring > section > a.hero.docs-sourcelink { - background-color: #4eb5de; - color: #fff; } - .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), .docstring > section > a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), - .hero.is-primary strong, - .docstring > section > a.hero.docs-sourcelink strong { - color: inherit; } - .hero.is-primary .title, .docstring > section > a.hero.docs-sourcelink .title { - color: #fff; } - .hero.is-primary .subtitle, .docstring > section > a.hero.docs-sourcelink .subtitle { - color: rgba(255, 255, 255, 0.9); } - .hero.is-primary .subtitle a:not(.button), .docstring > section > a.hero.docs-sourcelink .subtitle a:not(.button), - .hero.is-primary .subtitle strong, - .docstring > section > a.hero.docs-sourcelink .subtitle strong { - color: #fff; } - @media screen and (max-width: 1055px) { - .hero.is-primary .navbar-menu, .docstring > section > a.hero.docs-sourcelink .navbar-menu { - background-color: #4eb5de; } } - .hero.is-primary .navbar-item, .docstring > section > a.hero.docs-sourcelink .navbar-item, - .hero.is-primary .navbar-link, - .docstring > section > a.hero.docs-sourcelink .navbar-link { - color: rgba(255, 255, 255, 0.7); } - .hero.is-primary a.navbar-item:hover, .docstring > section > a.hero.docs-sourcelink a.navbar-item:hover, .hero.is-primary a.navbar-item.is-active, .docstring > section > a.hero.docs-sourcelink a.navbar-item.is-active, - .hero.is-primary .navbar-link:hover, - .docstring > section > a.hero.docs-sourcelink .navbar-link:hover, - .hero.is-primary .navbar-link.is-active, - .docstring > section > a.hero.docs-sourcelink .navbar-link.is-active { - background-color: #39acda; - color: #fff; } - .hero.is-primary .tabs a, .docstring > section > a.hero.docs-sourcelink .tabs a { - color: #fff; - opacity: 0.9; } - .hero.is-primary .tabs a:hover, .docstring > section > a.hero.docs-sourcelink .tabs a:hover { - opacity: 1; } - .hero.is-primary .tabs li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs li.is-active a { - opacity: 1; } - .hero.is-primary .tabs.is-boxed a, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a, .hero.is-primary .tabs.is-toggle a, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a { - color: #fff; } - .hero.is-primary .tabs.is-boxed a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a:hover, .hero.is-primary .tabs.is-toggle a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a:hover { - background-color: rgba(10, 10, 10, 0.1); } - .hero.is-primary .tabs.is-boxed li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a, .hero.is-primary .tabs.is-boxed li.is-active a:hover, .hero.is-primary .tabs.is-toggle li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a, .hero.is-primary .tabs.is-toggle li.is-active a:hover { - background-color: #fff; - border-color: #fff; - color: #4eb5de; } - .hero.is-primary.is-bold, .docstring > section > a.hero.is-bold.docs-sourcelink { - background-image: linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%); } - @media screen and (max-width: 768px) { - .hero.is-primary.is-bold .navbar-menu, .docstring > section > a.hero.is-bold.docs-sourcelink .navbar-menu { - background-image: linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%); } } - .hero.is-link { - background-color: #2e63b8; - color: #fff; } - .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), - .hero.is-link strong { - color: inherit; } - .hero.is-link .title { - color: #fff; } - .hero.is-link .subtitle { - color: rgba(255, 255, 255, 0.9); } - .hero.is-link .subtitle a:not(.button), - .hero.is-link .subtitle strong { - color: #fff; } - @media screen and (max-width: 1055px) { - .hero.is-link .navbar-menu { - background-color: #2e63b8; } } - .hero.is-link .navbar-item, - .hero.is-link .navbar-link { - color: rgba(255, 255, 255, 0.7); } - .hero.is-link a.navbar-item:hover, .hero.is-link a.navbar-item.is-active, - .hero.is-link .navbar-link:hover, - .hero.is-link .navbar-link.is-active { - background-color: #2958a4; - color: #fff; } - .hero.is-link .tabs a { - color: #fff; - opacity: 0.9; } - .hero.is-link .tabs a:hover { - opacity: 1; } - .hero.is-link .tabs li.is-active a { - opacity: 1; } - .hero.is-link .tabs.is-boxed a, .hero.is-link .tabs.is-toggle a { - color: #fff; } - .hero.is-link .tabs.is-boxed a:hover, .hero.is-link .tabs.is-toggle a:hover { - background-color: rgba(10, 10, 10, 0.1); } - .hero.is-link .tabs.is-boxed li.is-active a, .hero.is-link .tabs.is-boxed li.is-active a:hover, .hero.is-link .tabs.is-toggle li.is-active a, .hero.is-link .tabs.is-toggle li.is-active a:hover { - background-color: #fff; - border-color: #fff; - color: #2e63b8; } - .hero.is-link.is-bold { - background-image: linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%); } - @media screen and (max-width: 768px) { - .hero.is-link.is-bold .navbar-menu { - background-image: linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%); } } - .hero.is-info { - background-color: #209cee; - color: #fff; } - .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), - .hero.is-info strong { - color: inherit; } - .hero.is-info .title { - color: #fff; } - .hero.is-info .subtitle { - color: rgba(255, 255, 255, 0.9); } - .hero.is-info .subtitle a:not(.button), - .hero.is-info .subtitle strong { - color: #fff; } - @media screen and (max-width: 1055px) { - .hero.is-info .navbar-menu { - background-color: #209cee; } } - .hero.is-info .navbar-item, - .hero.is-info .navbar-link { - color: rgba(255, 255, 255, 0.7); } - .hero.is-info a.navbar-item:hover, .hero.is-info a.navbar-item.is-active, - .hero.is-info .navbar-link:hover, - .hero.is-info .navbar-link.is-active { - background-color: #1190e3; - color: #fff; } - .hero.is-info .tabs a { - color: #fff; - opacity: 0.9; } - .hero.is-info .tabs a:hover { - opacity: 1; } - .hero.is-info .tabs li.is-active a { - opacity: 1; } - .hero.is-info .tabs.is-boxed a, .hero.is-info .tabs.is-toggle a { - color: #fff; } - .hero.is-info .tabs.is-boxed a:hover, .hero.is-info .tabs.is-toggle a:hover { - background-color: rgba(10, 10, 10, 0.1); } - .hero.is-info .tabs.is-boxed li.is-active a, .hero.is-info .tabs.is-boxed li.is-active a:hover, .hero.is-info .tabs.is-toggle li.is-active a, .hero.is-info .tabs.is-toggle li.is-active a:hover { - background-color: #fff; - border-color: #fff; - color: #209cee; } - .hero.is-info.is-bold { - background-image: linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%); } - @media screen and (max-width: 768px) { - .hero.is-info.is-bold .navbar-menu { - background-image: linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%); } } - .hero.is-success { - background-color: #22c35b; - color: #fff; } - .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), - .hero.is-success strong { - color: inherit; } - .hero.is-success .title { - color: #fff; } - .hero.is-success .subtitle { - color: rgba(255, 255, 255, 0.9); } - .hero.is-success .subtitle a:not(.button), - .hero.is-success .subtitle strong { - color: #fff; } - @media screen and (max-width: 1055px) { - .hero.is-success .navbar-menu { - background-color: #22c35b; } } - .hero.is-success .navbar-item, - .hero.is-success .navbar-link { - color: rgba(255, 255, 255, 0.7); } - .hero.is-success a.navbar-item:hover, .hero.is-success a.navbar-item.is-active, - .hero.is-success .navbar-link:hover, - .hero.is-success .navbar-link.is-active { - background-color: #1ead51; - color: #fff; } - .hero.is-success .tabs a { - color: #fff; - opacity: 0.9; } - .hero.is-success .tabs a:hover { - opacity: 1; } - .hero.is-success .tabs li.is-active a { - opacity: 1; } - .hero.is-success .tabs.is-boxed a, .hero.is-success .tabs.is-toggle a { - color: #fff; } - .hero.is-success .tabs.is-boxed a:hover, .hero.is-success .tabs.is-toggle a:hover { - background-color: rgba(10, 10, 10, 0.1); } - .hero.is-success .tabs.is-boxed li.is-active a, .hero.is-success .tabs.is-boxed li.is-active a:hover, .hero.is-success .tabs.is-toggle li.is-active a, .hero.is-success .tabs.is-toggle li.is-active a:hover { - background-color: #fff; - border-color: #fff; - color: #22c35b; } - .hero.is-success.is-bold { - background-image: linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%); } - @media screen and (max-width: 768px) { - .hero.is-success.is-bold .navbar-menu { - background-image: linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%); } } - .hero.is-warning { - background-color: #ffdd57; - color: rgba(0, 0, 0, 0.7); } - .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), - .hero.is-warning strong { - color: inherit; } - .hero.is-warning .title { - color: rgba(0, 0, 0, 0.7); } - .hero.is-warning .subtitle { - color: rgba(0, 0, 0, 0.9); } - .hero.is-warning .subtitle a:not(.button), - .hero.is-warning .subtitle strong { - color: rgba(0, 0, 0, 0.7); } - @media screen and (max-width: 1055px) { - .hero.is-warning .navbar-menu { - background-color: #ffdd57; } } - .hero.is-warning .navbar-item, - .hero.is-warning .navbar-link { - color: rgba(0, 0, 0, 0.7); } - .hero.is-warning a.navbar-item:hover, .hero.is-warning a.navbar-item.is-active, - .hero.is-warning .navbar-link:hover, - .hero.is-warning .navbar-link.is-active { - background-color: #ffd83e; - color: rgba(0, 0, 0, 0.7); } - .hero.is-warning .tabs a { - color: rgba(0, 0, 0, 0.7); - opacity: 0.9; } - .hero.is-warning .tabs a:hover { - opacity: 1; } - .hero.is-warning .tabs li.is-active a { - opacity: 1; } - .hero.is-warning .tabs.is-boxed a, .hero.is-warning .tabs.is-toggle a { - color: rgba(0, 0, 0, 0.7); } - .hero.is-warning .tabs.is-boxed a:hover, .hero.is-warning .tabs.is-toggle a:hover { - background-color: rgba(10, 10, 10, 0.1); } - .hero.is-warning .tabs.is-boxed li.is-active a, .hero.is-warning .tabs.is-boxed li.is-active a:hover, .hero.is-warning .tabs.is-toggle li.is-active a, .hero.is-warning .tabs.is-toggle li.is-active a:hover { - background-color: rgba(0, 0, 0, 0.7); - border-color: rgba(0, 0, 0, 0.7); - color: #ffdd57; } - .hero.is-warning.is-bold { - background-image: linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%); } - @media screen and (max-width: 768px) { - .hero.is-warning.is-bold .navbar-menu { - background-image: linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%); } } - .hero.is-danger { - background-color: #da0b00; - color: #fff; } - .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), - .hero.is-danger strong { - color: inherit; } - .hero.is-danger .title { - color: #fff; } - .hero.is-danger .subtitle { - color: rgba(255, 255, 255, 0.9); } - .hero.is-danger .subtitle a:not(.button), - .hero.is-danger .subtitle strong { - color: #fff; } - @media screen and (max-width: 1055px) { - .hero.is-danger .navbar-menu { - background-color: #da0b00; } } - .hero.is-danger .navbar-item, - .hero.is-danger .navbar-link { - color: rgba(255, 255, 255, 0.7); } - .hero.is-danger a.navbar-item:hover, .hero.is-danger a.navbar-item.is-active, - .hero.is-danger .navbar-link:hover, - .hero.is-danger .navbar-link.is-active { - background-color: #c10a00; - color: #fff; } - .hero.is-danger .tabs a { - color: #fff; - opacity: 0.9; } - .hero.is-danger .tabs a:hover { - opacity: 1; } - .hero.is-danger .tabs li.is-active a { - opacity: 1; } - .hero.is-danger .tabs.is-boxed a, .hero.is-danger .tabs.is-toggle a { - color: #fff; } - .hero.is-danger .tabs.is-boxed a:hover, .hero.is-danger .tabs.is-toggle a:hover { - background-color: rgba(10, 10, 10, 0.1); } - .hero.is-danger .tabs.is-boxed li.is-active a, .hero.is-danger .tabs.is-boxed li.is-active a:hover, .hero.is-danger .tabs.is-toggle li.is-active a, .hero.is-danger .tabs.is-toggle li.is-active a:hover { - background-color: #fff; - border-color: #fff; - color: #da0b00; } - .hero.is-danger.is-bold { - background-image: linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%); } - @media screen and (max-width: 768px) { - .hero.is-danger.is-bold .navbar-menu { - background-image: linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%); } } - .hero.is-small .hero-body, #documenter .docs-sidebar form.docs-search > input.hero .hero-body { - padding-bottom: 1.5rem; - padding-top: 1.5rem; } - @media screen and (min-width: 769px), print { - .hero.is-medium .hero-body { - padding-bottom: 9rem; - padding-top: 9rem; } } - @media screen and (min-width: 769px), print { - .hero.is-large .hero-body { - padding-bottom: 18rem; - padding-top: 18rem; } } - .hero.is-halfheight .hero-body, .hero.is-fullheight .hero-body, .hero.is-fullheight-with-navbar .hero-body { - align-items: center; - display: flex; } - .hero.is-halfheight .hero-body > .container, .hero.is-fullheight .hero-body > .container, .hero.is-fullheight-with-navbar .hero-body > .container { - flex-grow: 1; - flex-shrink: 1; } - .hero.is-halfheight { - min-height: 50vh; } - .hero.is-fullheight { - min-height: 100vh; } - -.hero-video { - overflow: hidden; } - .hero-video video { - left: 50%; - min-height: 100%; - min-width: 100%; - position: absolute; - top: 50%; - transform: translate3d(-50%, -50%, 0); } - .hero-video.is-transparent { - opacity: 0.3; } - @media screen and (max-width: 768px) { - .hero-video { - display: none; } } -.hero-buttons { - margin-top: 1.5rem; } - @media screen and (max-width: 768px) { - .hero-buttons .button { - display: flex; } - .hero-buttons .button:not(:last-child) { - margin-bottom: 0.75rem; } } - @media screen and (min-width: 769px), print { - .hero-buttons { - display: flex; - justify-content: center; } - .hero-buttons .button:not(:last-child) { - margin-right: 1.5rem; } } -.hero-head, -.hero-foot { - flex-grow: 0; - flex-shrink: 0; } - -.hero-body { - flex-grow: 1; - flex-shrink: 0; - padding: 3rem 1.5rem; } - -.section { - padding: 3rem 1.5rem; } - @media screen and (min-width: 1056px) { - .section.is-medium { - padding: 9rem 1.5rem; } - .section.is-large { - padding: 18rem 1.5rem; } } -.footer { - background-color: #fafafa; - padding: 3rem 1.5rem 6rem; } - -h1 .docs-heading-anchor, h1 .docs-heading-anchor:hover, h1 .docs-heading-anchor:visited, h2 .docs-heading-anchor, h2 .docs-heading-anchor:hover, h2 .docs-heading-anchor:visited, h3 .docs-heading-anchor, h3 .docs-heading-anchor:hover, h3 .docs-heading-anchor:visited, h4 .docs-heading-anchor, h4 .docs-heading-anchor:hover, h4 .docs-heading-anchor:visited, h5 .docs-heading-anchor, h5 .docs-heading-anchor:hover, h5 .docs-heading-anchor:visited, h6 .docs-heading-anchor, h6 .docs-heading-anchor:hover, h6 .docs-heading-anchor:visited { - color: #222222; } - -h1 .docs-heading-anchor-permalink, h2 .docs-heading-anchor-permalink, h3 .docs-heading-anchor-permalink, h4 .docs-heading-anchor-permalink, h5 .docs-heading-anchor-permalink, h6 .docs-heading-anchor-permalink { - visibility: hidden; - vertical-align: middle; - margin-left: 0.5em; - font-size: 0.7rem; } - h1 .docs-heading-anchor-permalink::before, h2 .docs-heading-anchor-permalink::before, h3 .docs-heading-anchor-permalink::before, h4 .docs-heading-anchor-permalink::before, h5 .docs-heading-anchor-permalink::before, h6 .docs-heading-anchor-permalink::before { - font-family: "Font Awesome 5 Free"; - font-weight: 900; - content: "\f0c1"; } - -h1:hover .docs-heading-anchor-permalink, h2:hover .docs-heading-anchor-permalink, h3:hover .docs-heading-anchor-permalink, h4:hover .docs-heading-anchor-permalink, h5:hover .docs-heading-anchor-permalink, h6:hover .docs-heading-anchor-permalink { - visibility: visible; } - -.docs-dark-only { - display: none !important; } - -pre { - position: relative; - overflow: hidden; } - pre code, pre code.hljs { - padding: 0 0.75rem !important; - overflow: auto; - display: block; } - pre code:first-of-type, pre code.hljs:first-of-type { - padding-top: 0.5rem !important; } - pre code:last-of-type, pre code.hljs:last-of-type { - padding-bottom: 0.5rem !important; } - pre .copy-button { - opacity: 0.2; - transition: opacity 0.2s; - position: absolute; - right: 0em; - top: 0em; - padding: 0.5em; - width: 2.5em; - height: 2.5em; - background: transparent; - border: none; - font-family: "Font Awesome 5 Free"; - color: #222222; - cursor: pointer; - text-align: center; } - pre .copy-button:focus, pre .copy-button:hover { - opacity: 1; - background: rgba(34, 34, 34, 0.1); - color: #2e63b8; } - pre .copy-button.success { - color: #259a12; - opacity: 1; } - pre .copy-button.error { - color: #cb3c33; - opacity: 1; } - pre:hover .copy-button { - opacity: 1; } - -.admonition { - background-color: #b5b5b5; - border-style: solid; - border-width: 1px; - border-color: #363636; - border-radius: 4px; - font-size: 1rem; } - .admonition strong { - color: currentColor; } - .admonition.is-small, #documenter .docs-sidebar form.docs-search > input.admonition { - font-size: 0.75rem; } - .admonition.is-medium { - font-size: 1.25rem; } - .admonition.is-large { - font-size: 1.5rem; } - .admonition.is-default { - background-color: #b5b5b5; - border-color: #363636; } - .admonition.is-default > .admonition-header { - background-color: #363636; - color: #fff; } - .admonition.is-default > .admonition-body { - color: #fff; } - .admonition.is-info { - background-color: #def0fc; - border-color: #209cee; } - .admonition.is-info > .admonition-header { - background-color: #209cee; - color: #fff; } - .admonition.is-info > .admonition-body { - color: rgba(0, 0, 0, 0.7); } - .admonition.is-success { - background-color: #bdf4d1; - border-color: #22c35b; } - .admonition.is-success > .admonition-header { - background-color: #22c35b; - color: #fff; } - .admonition.is-success > .admonition-body { - color: rgba(0, 0, 0, 0.7); } - .admonition.is-warning { - background-color: #fff3c5; - border-color: #ffdd57; } - .admonition.is-warning > .admonition-header { - background-color: #ffdd57; - color: rgba(0, 0, 0, 0.7); } - .admonition.is-warning > .admonition-body { - color: rgba(0, 0, 0, 0.7); } - .admonition.is-danger { - background-color: #ffaba7; - border-color: #da0b00; } - .admonition.is-danger > .admonition-header { - background-color: #da0b00; - color: #fff; } - .admonition.is-danger > .admonition-body { - color: rgba(0, 0, 0, 0.7); } - .admonition.is-compat { - background-color: #bdeff5; - border-color: #1db5c9; } - .admonition.is-compat > .admonition-header { - background-color: #1db5c9; - color: #fff; } - .admonition.is-compat > .admonition-body { - color: rgba(0, 0, 0, 0.7); } - -.admonition-header { - color: #fff; - background-color: #363636; - align-items: center; - font-weight: 700; - justify-content: space-between; - line-height: 1.25; - padding: 0.5rem 0.75rem; - position: relative; } - .admonition-header:before { - font-family: "Font Awesome 5 Free"; - font-weight: 900; - margin-right: 0.75rem; - content: "\f06a"; } - -.admonition-body { - color: #222222; - padding: 0.5rem 0.75rem; } - .admonition-body pre { - background-color: whitesmoke; } - .admonition-body code { - background-color: rgba(0, 0, 0, 0.05); } - -.docstring { - margin-bottom: 1em; - background-color: transparent; - border: 1px solid #dbdbdb; - box-shadow: 2px 2px 3px rgba(10, 10, 10, 0.1); - max-width: 100%; } - .docstring > header { - display: flex; - flex-grow: 1; - align-items: stretch; - padding: 0.5rem 0.75rem; - background-color: whitesmoke; - box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); - box-shadow: none; - border-bottom: 1px solid #dbdbdb; } - .docstring > header code { - background-color: transparent; } - .docstring > header .docstring-binding { - margin-right: 0.3em; } - .docstring > header .docstring-category { - margin-left: 0.3em; } - .docstring > section { - position: relative; - padding: 0.75rem 0.75rem; - border-bottom: 1px solid #dbdbdb; } - .docstring > section:last-child { - border-bottom: none; } - .docstring > section > a.docs-sourcelink { - transition: opacity 0.3s; - opacity: 0; - position: absolute; - right: 0.375rem; - bottom: 0.375rem; } - .docstring > section > a.docs-sourcelink:focus { - opacity: 1 !important; } - .docstring:hover > section > a.docs-sourcelink { - opacity: 0.2; } - .docstring:focus-within > section > a.docs-sourcelink { - opacity: 0.2; } - .docstring > section:hover a.docs-sourcelink { - opacity: 1; } - -.documenter-example-output { - background-color: white; } - -.outdated-warning-overlay { - position: fixed; - top: 0; - left: 0; - right: 0; - box-shadow: 0 0 10px rgba(0, 0, 0, 0.3); - z-index: 999; - background-color: #ffaba7; - color: rgba(0, 0, 0, 0.7); - border-bottom: 3px solid #da0b00; - padding: 10px 35px; - text-align: center; - font-size: 15px; } - .outdated-warning-overlay .outdated-warning-closer { - position: absolute; - top: calc(50% - 10px); - right: 18px; - cursor: pointer; - width: 12px; } - .outdated-warning-overlay a { - color: #2e63b8; } - .outdated-warning-overlay a:hover { - color: #363636; } - -.content pre { - border: 1px solid #dbdbdb; } - -.content code { - font-weight: inherit; } - -.content a code { - color: #2e63b8; } - -.content h1 code, .content h2 code, .content h3 code, .content h4 code, .content h5 code, .content h6 code { - color: #222222; } - -.content table { - display: block; - width: initial; - max-width: 100%; - overflow-x: auto; } - -.content blockquote > ul:first-child, .content blockquote > ol:first-child, .content .admonition-body > ul:first-child, .content .admonition-body > ol:first-child { - margin-top: 0; } - -pre, code { - font-variant-ligatures: no-contextual; } - -.breadcrumb a.is-disabled { - cursor: default; - pointer-events: none; } - .breadcrumb a.is-disabled, .breadcrumb a.is-disabled:hover { - color: #222222; } - -.hljs { - background: initial !important; } - -.katex .katex-mathml { - top: 0; - right: 0; } - -.katex-display, mjx-container, .MathJax_Display { - margin: 0.5em 0 !important; } - -html { - -moz-osx-font-smoothing: auto; - -webkit-font-smoothing: auto; } - -li.no-marker { - list-style: none; } - -/* This file contain the overall layout. - * - * The main container is
    that is identified by id #documenter. - */ -#documenter .docs-main > article { - overflow-wrap: break-word; } - #documenter .docs-main > article .math-container { - overflow-x: auto; - overflow-y: hidden; } - -@media screen and (min-width: 1056px) { - #documenter .docs-main { - max-width: 52rem; - margin-left: 20rem; - padding-right: 1rem; } } - -@media screen and (max-width: 1055px) { - #documenter .docs-main { - width: 100%; } - #documenter .docs-main > article { - max-width: 52rem; - margin-left: auto; - margin-right: auto; - margin-bottom: 1rem; - padding: 0 1rem; } - #documenter .docs-main > header, #documenter .docs-main > nav { - max-width: 100%; - width: 100%; - margin: 0; } } - -#documenter .docs-main header.docs-navbar { - background-color: white; - border-bottom: 1px solid #dbdbdb; - z-index: 2; - min-height: 4rem; - margin-bottom: 1rem; - display: flex; } - #documenter .docs-main header.docs-navbar .breadcrumb { - flex-grow: 1; } - #documenter .docs-main header.docs-navbar .docs-right { - display: flex; - white-space: nowrap; } - #documenter .docs-main header.docs-navbar .docs-right .docs-icon, #documenter .docs-main header.docs-navbar .docs-right .docs-label, #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { - display: inline-block; } - #documenter .docs-main header.docs-navbar .docs-right .docs-label { - padding: 0; - margin-left: 0.3em; } - #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button { - margin: auto 0 auto 1rem; } - #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { - font-size: 1.5rem; - margin: auto 0 auto 1rem; } - #documenter .docs-main header.docs-navbar > * { - margin: auto 0; } - @media screen and (max-width: 1055px) { - #documenter .docs-main header.docs-navbar { - position: sticky; - top: 0; - padding: 0 1rem; - /* For Headroom.js */ - transition-property: top, box-shadow; - -webkit-transition-property: top, box-shadow; - /* Safari */ - transition-duration: 0.3s; - -webkit-transition-duration: 0.3s; - /* Safari */ } - #documenter .docs-main header.docs-navbar.headroom--not-top { - box-shadow: 0.2rem 0rem 0.4rem #bbb; - transition-duration: 0.7s; - -webkit-transition-duration: 0.7s; - /* Safari */ } - #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom { - top: -4.5rem; - transition-duration: 0.7s; - -webkit-transition-duration: 0.7s; - /* Safari */ } } -#documenter .docs-main section.footnotes { - border-top: 1px solid #dbdbdb; } - #documenter .docs-main section.footnotes li .tag:first-child, #documenter .docs-main section.footnotes li .docstring > section > a.docs-sourcelink:first-child, #documenter .docs-main section.footnotes li .content kbd:first-child, .content #documenter .docs-main section.footnotes li kbd:first-child { - margin-right: 1em; - margin-bottom: 0.4em; } - -#documenter .docs-main .docs-footer { - display: flex; - flex-wrap: wrap; - margin-left: 0; - margin-right: 0; - border-top: 1px solid #dbdbdb; - padding-top: 1rem; - padding-bottom: 1rem; } - @media screen and (max-width: 1055px) { - #documenter .docs-main .docs-footer { - padding-left: 1rem; - padding-right: 1rem; } } - #documenter .docs-main .docs-footer .docs-footer-nextpage, #documenter .docs-main .docs-footer .docs-footer-prevpage { - flex-grow: 1; } - #documenter .docs-main .docs-footer .docs-footer-nextpage { - text-align: right; } - #documenter .docs-main .docs-footer .flexbox-break { - flex-basis: 100%; - height: 0; } - #documenter .docs-main .docs-footer .footer-message { - font-size: 0.8em; - margin: 0.5em auto 0 auto; - text-align: center; } - -#documenter .docs-sidebar { - display: flex; - flex-direction: column; - color: #0a0a0a; - background-color: whitesmoke; - border-right: 1px solid #dbdbdb; - padding: 0; - flex: 0 0 18rem; - z-index: 5; - font-size: 1rem; - position: fixed; - left: -18rem; - width: 18rem; - height: 100%; - transition: left 0.3s; - /* Setting up a nicer theme style for the scrollbar */ } - #documenter .docs-sidebar.visible { - left: 0; - box-shadow: 0.4rem 0rem 0.8rem #bbb; } - @media screen and (min-width: 1056px) { - #documenter .docs-sidebar.visible { - box-shadow: none; } } - @media screen and (min-width: 1056px) { - #documenter .docs-sidebar { - left: 0; - top: 0; } } - #documenter .docs-sidebar .docs-logo { - margin-top: 1rem; - padding: 0 1rem; } - #documenter .docs-sidebar .docs-logo > img { - max-height: 6rem; - margin: auto; } - #documenter .docs-sidebar .docs-package-name { - flex-shrink: 0; - font-size: 1.5rem; - font-weight: 700; - text-align: center; - white-space: nowrap; - overflow: hidden; - padding: 0.5rem 0; } - #documenter .docs-sidebar .docs-package-name .docs-autofit { - max-width: 16.2rem; } - #documenter .docs-sidebar .docs-package-name a, #documenter .docs-sidebar .docs-package-name a:hover { - color: #0a0a0a; } - #documenter .docs-sidebar .docs-version-selector { - border-top: 1px solid #dbdbdb; - display: none; - padding: 0.5rem; } - #documenter .docs-sidebar .docs-version-selector.visible { - display: flex; } - #documenter .docs-sidebar ul.docs-menu { - flex-grow: 1; - user-select: none; - border-top: 1px solid #dbdbdb; - padding-bottom: 1.5rem; - /* Managing collapsible submenus */ } - #documenter .docs-sidebar ul.docs-menu > li > .tocitem { - font-weight: bold; } - #documenter .docs-sidebar ul.docs-menu > li li { - font-size: 0.95rem; - margin-left: 1em; - border-left: 1px solid #dbdbdb; } - #documenter .docs-sidebar ul.docs-menu input.collapse-toggle { - display: none; } - #documenter .docs-sidebar ul.docs-menu ul.collapsed { - display: none; } - #documenter .docs-sidebar ul.docs-menu input:checked ~ ul.collapsed { - display: block; } - #documenter .docs-sidebar ul.docs-menu label.tocitem { - display: flex; } - #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label { - flex-grow: 2; } - #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron { - display: inline-block; - font-style: normal; - font-variant: normal; - text-rendering: auto; - line-height: 1; - font-size: 0.75rem; - margin-left: 1rem; - margin-top: auto; - margin-bottom: auto; } - #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before { - font-family: "Font Awesome 5 Free"; - font-weight: 900; - content: "\f054"; } - #documenter .docs-sidebar ul.docs-menu input:checked ~ label.tocitem .docs-chevron::before { - content: "\f078"; } - #documenter .docs-sidebar ul.docs-menu .tocitem { - display: block; - padding: 0.5rem 0.5rem; } - #documenter .docs-sidebar ul.docs-menu .tocitem, #documenter .docs-sidebar ul.docs-menu .tocitem:hover { - color: #0a0a0a; - background: whitesmoke; } - #documenter .docs-sidebar ul.docs-menu a.tocitem:hover, #documenter .docs-sidebar ul.docs-menu label.tocitem:hover { - color: #0a0a0a; - background-color: #ebebeb; } - #documenter .docs-sidebar ul.docs-menu li.is-active { - border-top: 1px solid #dbdbdb; - border-bottom: 1px solid #dbdbdb; - background-color: white; } - #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem, #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover { - background-color: white; - color: #0a0a0a; } - #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover { - background-color: #ebebeb; - color: #0a0a0a; } - #documenter .docs-sidebar ul.docs-menu > li.is-active:first-child { - border-top: none; } - #documenter .docs-sidebar ul.docs-menu ul.internal { - margin: 0 0.5rem 0.5rem; - border-top: 1px solid #dbdbdb; } - #documenter .docs-sidebar ul.docs-menu ul.internal li { - font-size: 0.85rem; - border-left: none; - margin-left: 0; - margin-top: 0.5rem; } - #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem { - width: 100%; - padding: 0; } - #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before { - content: "⚬"; - margin-right: 0.4em; } - #documenter .docs-sidebar form.docs-search { - margin: auto; - margin-top: 0.5rem; - margin-bottom: 0.5rem; } - #documenter .docs-sidebar form.docs-search > input { - width: 14.4rem; } - @media screen and (min-width: 1056px) { - #documenter .docs-sidebar ul.docs-menu { - overflow-y: auto; - -webkit-overflow-scroll: touch; } - #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar { - width: .3rem; - background: none; } - #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb { - border-radius: 5px 0px 0px 5px; - background: #e0e0e0; } - #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover { - background: #cccccc; } } - @media screen and (max-width: 1055px) { - #documenter .docs-sidebar { - overflow-y: auto; - -webkit-overflow-scroll: touch; } - #documenter .docs-sidebar::-webkit-scrollbar { - width: .3rem; - background: none; } - #documenter .docs-sidebar::-webkit-scrollbar-thumb { - border-radius: 5px 0px 0px 5px; - background: #e0e0e0; } - #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover { - background: #cccccc; } } -#documenter .docs-main #documenter-search-info { - margin-bottom: 1rem; } - -#documenter .docs-main #documenter-search-results { - list-style-type: circle; - list-style-position: outside; } - #documenter .docs-main #documenter-search-results li { - margin-left: 2rem; } - #documenter .docs-main #documenter-search-results .docs-highlight { - background-color: yellow; } - -.ansi span.sgr1 { - font-weight: bolder; } - -.ansi span.sgr2 { - font-weight: lighter; } - -.ansi span.sgr3 { - font-style: italic; } - -.ansi span.sgr4 { - text-decoration: underline; } - -.ansi span.sgr7 { - color: white; - background-color: #222222; } - -.ansi span.sgr8 { - color: transparent; } - .ansi span.sgr8 span { - color: transparent; } - -.ansi span.sgr9 { - text-decoration: line-through; } - -.ansi span.sgr30 { - color: #242424; } - -.ansi span.sgr31 { - color: #a7201f; } - -.ansi span.sgr32 { - color: #066f00; } - -.ansi span.sgr33 { - color: #856b00; } - -.ansi span.sgr34 { - color: #2149b0; } - -.ansi span.sgr35 { - color: #7d4498; } - -.ansi span.sgr36 { - color: #007989; } - -.ansi span.sgr37 { - color: gray; } - -.ansi span.sgr40 { - background-color: #242424; } - -.ansi span.sgr41 { - background-color: #a7201f; } - -.ansi span.sgr42 { - background-color: #066f00; } - -.ansi span.sgr43 { - background-color: #856b00; } - -.ansi span.sgr44 { - background-color: #2149b0; } - -.ansi span.sgr45 { - background-color: #7d4498; } - -.ansi span.sgr46 { - background-color: #007989; } - -.ansi span.sgr47 { - background-color: gray; } - -.ansi span.sgr90 { - color: #616161; } - -.ansi span.sgr91 { - color: #cb3c33; } - -.ansi span.sgr92 { - color: #0e8300; } - -.ansi span.sgr93 { - color: #a98800; } - -.ansi span.sgr94 { - color: #3c5dcd; } - -.ansi span.sgr95 { - color: #9256af; } - -.ansi span.sgr96 { - color: #008fa3; } - -.ansi span.sgr97 { - color: whitesmoke; } - -.ansi span.sgr100 { - background-color: #616161; } - -.ansi span.sgr101 { - background-color: #cb3c33; } - -.ansi span.sgr102 { - background-color: #0e8300; } - -.ansi span.sgr103 { - background-color: #a98800; } - -.ansi span.sgr104 { - background-color: #3c5dcd; } - -.ansi span.sgr105 { - background-color: #9256af; } - -.ansi span.sgr106 { - background-color: #008fa3; } - -.ansi span.sgr107 { - background-color: whitesmoke; } - -code.language-julia-repl > span.hljs-meta { - color: #066f00; - font-weight: bolder; } - -/*! +.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis,.file-cta,.file-name,.select select,.textarea,.input,#documenter .docs-sidebar form.docs-search>input,.button{-moz-appearance:none;-webkit-appearance:none;align-items:center;border:1px solid transparent;border-radius:4px;box-shadow:none;display:inline-flex;font-size:1rem;height:2.5em;justify-content:flex-start;line-height:1.5;padding-bottom:calc(0.5em - 1px);padding-left:calc(0.75em - 1px);padding-right:calc(0.75em - 1px);padding-top:calc(0.5em - 1px);position:relative;vertical-align:top}.pagination-previous:focus,.pagination-next:focus,.pagination-link:focus,.pagination-ellipsis:focus,.file-cta:focus,.file-name:focus,.select select:focus,.textarea:focus,.input:focus,#documenter .docs-sidebar form.docs-search>input:focus,.button:focus,.is-focused.pagination-previous,.is-focused.pagination-next,.is-focused.pagination-link,.is-focused.pagination-ellipsis,.is-focused.file-cta,.is-focused.file-name,.select select.is-focused,.is-focused.textarea,.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-focused.button,.pagination-previous:active,.pagination-next:active,.pagination-link:active,.pagination-ellipsis:active,.file-cta:active,.file-name:active,.select select:active,.textarea:active,.input:active,#documenter .docs-sidebar form.docs-search>input:active,.button:active,.is-active.pagination-previous,.is-active.pagination-next,.is-active.pagination-link,.is-active.pagination-ellipsis,.is-active.file-cta,.is-active.file-name,.select select.is-active,.is-active.textarea,.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active,.is-active.button{outline:none}.pagination-previous[disabled],.pagination-next[disabled],.pagination-link[disabled],.pagination-ellipsis[disabled],.file-cta[disabled],.file-name[disabled],.select select[disabled],.textarea[disabled],.input[disabled],#documenter .docs-sidebar form.docs-search>input[disabled],.button[disabled],fieldset[disabled] .pagination-previous,fieldset[disabled] .pagination-next,fieldset[disabled] .pagination-link,fieldset[disabled] .pagination-ellipsis,fieldset[disabled] .file-cta,fieldset[disabled] .file-name,fieldset[disabled] .select select,.select fieldset[disabled] select,fieldset[disabled] .textarea,fieldset[disabled] .input,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input,fieldset[disabled] .button{cursor:not-allowed}.tabs,.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis,.breadcrumb,.file,.button,.is-unselectable{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.navbar-link:not(.is-arrowless)::after,.select:not(.is-multiple):not(.is-loading)::after{border:3px solid rgba(0,0,0,0);border-radius:2px;border-right:0;border-top:0;content:" ";display:block;height:0.625em;margin-top:-0.4375em;pointer-events:none;position:absolute;top:50%;transform:rotate(-45deg);transform-origin:center;width:0.625em}.admonition:not(:last-child),.tabs:not(:last-child),.pagination:not(:last-child),.message:not(:last-child),.level:not(:last-child),.breadcrumb:not(:last-child),.block:not(:last-child),.title:not(:last-child),.subtitle:not(:last-child),.table-container:not(:last-child),.table:not(:last-child),.progress:not(:last-child),.notification:not(:last-child),.content:not(:last-child),.box:not(:last-child){margin-bottom:1.5rem}.modal-close,.delete{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,0.2);border:none;border-radius:9999px;cursor:pointer;pointer-events:auto;display:inline-block;flex-grow:0;flex-shrink:0;font-size:0;height:20px;max-height:20px;max-width:20px;min-height:20px;min-width:20px;outline:none;position:relative;vertical-align:top;width:20px}.modal-close::before,.delete::before,.modal-close::after,.delete::after{background-color:#fff;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.modal-close::before,.delete::before{height:2px;width:50%}.modal-close::after,.delete::after{height:50%;width:2px}.modal-close:hover,.delete:hover,.modal-close:focus,.delete:focus{background-color:rgba(10,10,10,0.3)}.modal-close:active,.delete:active{background-color:rgba(10,10,10,0.4)}.is-small.modal-close,#documenter .docs-sidebar form.docs-search>input.modal-close,.is-small.delete,#documenter .docs-sidebar form.docs-search>input.delete{height:16px;max-height:16px;max-width:16px;min-height:16px;min-width:16px;width:16px}.is-medium.modal-close,.is-medium.delete{height:24px;max-height:24px;max-width:24px;min-height:24px;min-width:24px;width:24px}.is-large.modal-close,.is-large.delete{height:32px;max-height:32px;max-width:32px;min-height:32px;min-width:32px;width:32px}.control.is-loading::after,.select.is-loading::after,.loader,.button.is-loading::after{animation:spinAround 500ms infinite linear;border:2px solid #dbdbdb;border-radius:9999px;border-right-color:transparent;border-top-color:transparent;content:"";display:block;height:1em;position:relative;width:1em}.hero-video,.modal-background,.modal,.image.is-square img,#documenter .docs-sidebar .docs-logo>img.is-square img,.image.is-square .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,.image.is-1by1 img,#documenter .docs-sidebar .docs-logo>img.is-1by1 img,.image.is-1by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,.image.is-5by4 img,#documenter .docs-sidebar .docs-logo>img.is-5by4 img,.image.is-5by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,.image.is-4by3 img,#documenter .docs-sidebar .docs-logo>img.is-4by3 img,.image.is-4by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,.image.is-3by2 img,#documenter .docs-sidebar .docs-logo>img.is-3by2 img,.image.is-3by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,.image.is-5by3 img,#documenter .docs-sidebar .docs-logo>img.is-5by3 img,.image.is-5by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,.image.is-16by9 img,#documenter .docs-sidebar .docs-logo>img.is-16by9 img,.image.is-16by9 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,.image.is-2by1 img,#documenter .docs-sidebar .docs-logo>img.is-2by1 img,.image.is-2by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,.image.is-3by1 img,#documenter .docs-sidebar .docs-logo>img.is-3by1 img,.image.is-3by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,.image.is-4by5 img,#documenter .docs-sidebar .docs-logo>img.is-4by5 img,.image.is-4by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,.image.is-3by4 img,#documenter .docs-sidebar .docs-logo>img.is-3by4 img,.image.is-3by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,.image.is-2by3 img,#documenter .docs-sidebar .docs-logo>img.is-2by3 img,.image.is-2by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,.image.is-3by5 img,#documenter .docs-sidebar .docs-logo>img.is-3by5 img,.image.is-3by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,.image.is-9by16 img,#documenter .docs-sidebar .docs-logo>img.is-9by16 img,.image.is-9by16 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,.image.is-1by2 img,#documenter .docs-sidebar .docs-logo>img.is-1by2 img,.image.is-1by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,.image.is-1by3 img,#documenter .docs-sidebar .docs-logo>img.is-1by3 img,.image.is-1by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio,.is-overlay{bottom:0;left:0;position:absolute;right:0;top:0}.navbar-burger{-moz-appearance:none;-webkit-appearance:none;appearance:none;background:none;border:none;color:currentColor;font-family:inherit;font-size:1em;margin:0;padding:0}.has-text-white{color:#fff !important}a.has-text-white:hover,a.has-text-white:focus{color:#e6e6e6 !important}.has-background-white{background-color:#fff !important}.has-text-black{color:#0a0a0a !important}a.has-text-black:hover,a.has-text-black:focus{color:#000 !important}.has-background-black{background-color:#0a0a0a !important}.has-text-light{color:#f5f5f5 !important}a.has-text-light:hover,a.has-text-light:focus{color:#dbdbdb !important}.has-background-light{background-color:#f5f5f5 !important}.has-text-dark{color:#363636 !important}a.has-text-dark:hover,a.has-text-dark:focus{color:#1c1c1c !important}.has-background-dark{background-color:#363636 !important}.has-text-primary{color:#4eb5de !important}a.has-text-primary:hover,a.has-text-primary:focus{color:#27a1d2 !important}.has-background-primary{background-color:#4eb5de !important}.has-text-primary-light{color:#eef8fc !important}a.has-text-primary-light:hover,a.has-text-primary-light:focus{color:#c3e6f4 !important}.has-background-primary-light{background-color:#eef8fc !important}.has-text-primary-dark{color:#1a6d8e !important}a.has-text-primary-dark:hover,a.has-text-primary-dark:focus{color:#228eb9 !important}.has-background-primary-dark{background-color:#1a6d8e !important}.has-text-link{color:#2e63b8 !important}a.has-text-link:hover,a.has-text-link:focus{color:#244d8f !important}.has-background-link{background-color:#2e63b8 !important}.has-text-link-light{color:#eff3fb !important}a.has-text-link-light:hover,a.has-text-link-light:focus{color:#c6d6f1 !important}.has-background-link-light{background-color:#eff3fb !important}.has-text-link-dark{color:#3169c4 !important}a.has-text-link-dark:hover,a.has-text-link-dark:focus{color:#5485d4 !important}.has-background-link-dark{background-color:#3169c4 !important}.has-text-info{color:#209cee !important}a.has-text-info:hover,a.has-text-info:focus{color:#1081cb !important}.has-background-info{background-color:#209cee !important}.has-text-info-light{color:#ecf7fe !important}a.has-text-info-light:hover,a.has-text-info-light:focus{color:#bde2fa !important}.has-background-info-light{background-color:#ecf7fe !important}.has-text-info-dark{color:#0e72b4 !important}a.has-text-info-dark:hover,a.has-text-info-dark:focus{color:#1190e3 !important}.has-background-info-dark{background-color:#0e72b4 !important}.has-text-success{color:#22c35b !important}a.has-text-success:hover,a.has-text-success:focus{color:#1a9847 !important}.has-background-success{background-color:#22c35b !important}.has-text-success-light{color:#eefcf3 !important}a.has-text-success-light:hover,a.has-text-success-light:focus{color:#c2f4d4 !important}.has-background-success-light{background-color:#eefcf3 !important}.has-text-success-dark{color:#198f43 !important}a.has-text-success-dark:hover,a.has-text-success-dark:focus{color:#21bb57 !important}.has-background-success-dark{background-color:#198f43 !important}.has-text-warning{color:#ffdd57 !important}a.has-text-warning:hover,a.has-text-warning:focus{color:#ffd324 !important}.has-background-warning{background-color:#ffdd57 !important}.has-text-warning-light{color:#fffbeb !important}a.has-text-warning-light:hover,a.has-text-warning-light:focus{color:#fff1b8 !important}.has-background-warning-light{background-color:#fffbeb !important}.has-text-warning-dark{color:#947600 !important}a.has-text-warning-dark:hover,a.has-text-warning-dark:focus{color:#c79f00 !important}.has-background-warning-dark{background-color:#947600 !important}.has-text-danger{color:#da0b00 !important}a.has-text-danger:hover,a.has-text-danger:focus{color:#a70800 !important}.has-background-danger{background-color:#da0b00 !important}.has-text-danger-light{color:#ffeceb !important}a.has-text-danger-light:hover,a.has-text-danger-light:focus{color:#ffbbb8 !important}.has-background-danger-light{background-color:#ffeceb !important}.has-text-danger-dark{color:#f50c00 !important}a.has-text-danger-dark:hover,a.has-text-danger-dark:focus{color:#ff3429 !important}.has-background-danger-dark{background-color:#f50c00 !important}.has-text-black-bis{color:#121212 !important}.has-background-black-bis{background-color:#121212 !important}.has-text-black-ter{color:#242424 !important}.has-background-black-ter{background-color:#242424 !important}.has-text-grey-darker{color:#363636 !important}.has-background-grey-darker{background-color:#363636 !important}.has-text-grey-dark{color:#4a4a4a !important}.has-background-grey-dark{background-color:#4a4a4a !important}.has-text-grey{color:#6b6b6b !important}.has-background-grey{background-color:#6b6b6b !important}.has-text-grey-light{color:#b5b5b5 !important}.has-background-grey-light{background-color:#b5b5b5 !important}.has-text-grey-lighter{color:#dbdbdb !important}.has-background-grey-lighter{background-color:#dbdbdb !important}.has-text-white-ter{color:#f5f5f5 !important}.has-background-white-ter{background-color:#f5f5f5 !important}.has-text-white-bis{color:#fafafa !important}.has-background-white-bis{background-color:#fafafa !important}.is-flex-direction-row{flex-direction:row !important}.is-flex-direction-row-reverse{flex-direction:row-reverse !important}.is-flex-direction-column{flex-direction:column !important}.is-flex-direction-column-reverse{flex-direction:column-reverse !important}.is-flex-wrap-nowrap{flex-wrap:nowrap !important}.is-flex-wrap-wrap{flex-wrap:wrap !important}.is-flex-wrap-wrap-reverse{flex-wrap:wrap-reverse !important}.is-justify-content-flex-start{justify-content:flex-start !important}.is-justify-content-flex-end{justify-content:flex-end !important}.is-justify-content-center{justify-content:center !important}.is-justify-content-space-between{justify-content:space-between !important}.is-justify-content-space-around{justify-content:space-around !important}.is-justify-content-space-evenly{justify-content:space-evenly !important}.is-justify-content-start{justify-content:start !important}.is-justify-content-end{justify-content:end !important}.is-justify-content-left{justify-content:left !important}.is-justify-content-right{justify-content:right !important}.is-align-content-flex-start{align-content:flex-start !important}.is-align-content-flex-end{align-content:flex-end !important}.is-align-content-center{align-content:center !important}.is-align-content-space-between{align-content:space-between !important}.is-align-content-space-around{align-content:space-around !important}.is-align-content-space-evenly{align-content:space-evenly !important}.is-align-content-stretch{align-content:stretch !important}.is-align-content-start{align-content:start !important}.is-align-content-end{align-content:end !important}.is-align-content-baseline{align-content:baseline !important}.is-align-items-stretch{align-items:stretch !important}.is-align-items-flex-start{align-items:flex-start !important}.is-align-items-flex-end{align-items:flex-end !important}.is-align-items-center{align-items:center !important}.is-align-items-baseline{align-items:baseline !important}.is-align-items-start{align-items:start !important}.is-align-items-end{align-items:end !important}.is-align-items-self-start{align-items:self-start !important}.is-align-items-self-end{align-items:self-end !important}.is-align-self-auto{align-self:auto !important}.is-align-self-flex-start{align-self:flex-start !important}.is-align-self-flex-end{align-self:flex-end !important}.is-align-self-center{align-self:center !important}.is-align-self-baseline{align-self:baseline !important}.is-align-self-stretch{align-self:stretch !important}.is-flex-grow-0{flex-grow:0 !important}.is-flex-grow-1{flex-grow:1 !important}.is-flex-grow-2{flex-grow:2 !important}.is-flex-grow-3{flex-grow:3 !important}.is-flex-grow-4{flex-grow:4 !important}.is-flex-grow-5{flex-grow:5 !important}.is-flex-shrink-0{flex-shrink:0 !important}.is-flex-shrink-1{flex-shrink:1 !important}.is-flex-shrink-2{flex-shrink:2 !important}.is-flex-shrink-3{flex-shrink:3 !important}.is-flex-shrink-4{flex-shrink:4 !important}.is-flex-shrink-5{flex-shrink:5 !important}.is-clearfix::after{clear:both;content:" ";display:table}.is-pulled-left{float:left !important}.is-pulled-right{float:right !important}.is-radiusless{border-radius:0 !important}.is-shadowless{box-shadow:none !important}.is-clickable{cursor:pointer !important;pointer-events:all !important}.is-clipped{overflow:hidden !important}.is-relative{position:relative !important}.is-marginless{margin:0 !important}.is-paddingless{padding:0 !important}.m-0{margin:0 !important}.mt-0{margin-top:0 !important}.mr-0{margin-right:0 !important}.mb-0{margin-bottom:0 !important}.ml-0{margin-left:0 !important}.mx-0{margin-left:0 !important;margin-right:0 !important}.my-0{margin-top:0 !important;margin-bottom:0 !important}.m-1{margin:.25rem !important}.mt-1{margin-top:.25rem !important}.mr-1{margin-right:.25rem !important}.mb-1{margin-bottom:.25rem !important}.ml-1{margin-left:.25rem !important}.mx-1{margin-left:.25rem !important;margin-right:.25rem !important}.my-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.m-2{margin:.5rem !important}.mt-2{margin-top:.5rem !important}.mr-2{margin-right:.5rem !important}.mb-2{margin-bottom:.5rem !important}.ml-2{margin-left:.5rem !important}.mx-2{margin-left:.5rem !important;margin-right:.5rem !important}.my-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.m-3{margin:.75rem !important}.mt-3{margin-top:.75rem !important}.mr-3{margin-right:.75rem !important}.mb-3{margin-bottom:.75rem !important}.ml-3{margin-left:.75rem !important}.mx-3{margin-left:.75rem !important;margin-right:.75rem !important}.my-3{margin-top:.75rem !important;margin-bottom:.75rem !important}.m-4{margin:1rem !important}.mt-4{margin-top:1rem !important}.mr-4{margin-right:1rem !important}.mb-4{margin-bottom:1rem !important}.ml-4{margin-left:1rem !important}.mx-4{margin-left:1rem !important;margin-right:1rem !important}.my-4{margin-top:1rem !important;margin-bottom:1rem !important}.m-5{margin:1.5rem !important}.mt-5{margin-top:1.5rem !important}.mr-5{margin-right:1.5rem !important}.mb-5{margin-bottom:1.5rem !important}.ml-5{margin-left:1.5rem !important}.mx-5{margin-left:1.5rem !important;margin-right:1.5rem !important}.my-5{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.m-6{margin:3rem !important}.mt-6{margin-top:3rem !important}.mr-6{margin-right:3rem !important}.mb-6{margin-bottom:3rem !important}.ml-6{margin-left:3rem !important}.mx-6{margin-left:3rem !important;margin-right:3rem !important}.my-6{margin-top:3rem !important;margin-bottom:3rem !important}.m-auto{margin:auto !important}.mt-auto{margin-top:auto !important}.mr-auto{margin-right:auto !important}.mb-auto{margin-bottom:auto !important}.ml-auto{margin-left:auto !important}.mx-auto{margin-left:auto !important;margin-right:auto !important}.my-auto{margin-top:auto !important;margin-bottom:auto !important}.p-0{padding:0 !important}.pt-0{padding-top:0 !important}.pr-0{padding-right:0 !important}.pb-0{padding-bottom:0 !important}.pl-0{padding-left:0 !important}.px-0{padding-left:0 !important;padding-right:0 !important}.py-0{padding-top:0 !important;padding-bottom:0 !important}.p-1{padding:.25rem !important}.pt-1{padding-top:.25rem !important}.pr-1{padding-right:.25rem !important}.pb-1{padding-bottom:.25rem !important}.pl-1{padding-left:.25rem !important}.px-1{padding-left:.25rem !important;padding-right:.25rem !important}.py-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.p-2{padding:.5rem !important}.pt-2{padding-top:.5rem !important}.pr-2{padding-right:.5rem !important}.pb-2{padding-bottom:.5rem !important}.pl-2{padding-left:.5rem !important}.px-2{padding-left:.5rem !important;padding-right:.5rem !important}.py-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.p-3{padding:.75rem !important}.pt-3{padding-top:.75rem !important}.pr-3{padding-right:.75rem !important}.pb-3{padding-bottom:.75rem !important}.pl-3{padding-left:.75rem !important}.px-3{padding-left:.75rem !important;padding-right:.75rem !important}.py-3{padding-top:.75rem !important;padding-bottom:.75rem !important}.p-4{padding:1rem !important}.pt-4{padding-top:1rem !important}.pr-4{padding-right:1rem !important}.pb-4{padding-bottom:1rem !important}.pl-4{padding-left:1rem !important}.px-4{padding-left:1rem !important;padding-right:1rem !important}.py-4{padding-top:1rem !important;padding-bottom:1rem !important}.p-5{padding:1.5rem !important}.pt-5{padding-top:1.5rem !important}.pr-5{padding-right:1.5rem !important}.pb-5{padding-bottom:1.5rem !important}.pl-5{padding-left:1.5rem !important}.px-5{padding-left:1.5rem !important;padding-right:1.5rem !important}.py-5{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.p-6{padding:3rem !important}.pt-6{padding-top:3rem !important}.pr-6{padding-right:3rem !important}.pb-6{padding-bottom:3rem !important}.pl-6{padding-left:3rem !important}.px-6{padding-left:3rem !important;padding-right:3rem !important}.py-6{padding-top:3rem !important;padding-bottom:3rem !important}.p-auto{padding:auto !important}.pt-auto{padding-top:auto !important}.pr-auto{padding-right:auto !important}.pb-auto{padding-bottom:auto !important}.pl-auto{padding-left:auto !important}.px-auto{padding-left:auto !important;padding-right:auto !important}.py-auto{padding-top:auto !important;padding-bottom:auto !important}.is-size-1{font-size:3rem !important}.is-size-2{font-size:2.5rem !important}.is-size-3{font-size:2rem !important}.is-size-4{font-size:1.5rem !important}.is-size-5{font-size:1.25rem !important}.is-size-6{font-size:1rem !important}.is-size-7,.docstring>section>a.docs-sourcelink{font-size:.75rem !important}@media screen and (max-width: 768px){.is-size-1-mobile{font-size:3rem !important}.is-size-2-mobile{font-size:2.5rem !important}.is-size-3-mobile{font-size:2rem !important}.is-size-4-mobile{font-size:1.5rem !important}.is-size-5-mobile{font-size:1.25rem !important}.is-size-6-mobile{font-size:1rem !important}.is-size-7-mobile{font-size:.75rem !important}}@media screen and (min-width: 769px),print{.is-size-1-tablet{font-size:3rem !important}.is-size-2-tablet{font-size:2.5rem !important}.is-size-3-tablet{font-size:2rem !important}.is-size-4-tablet{font-size:1.5rem !important}.is-size-5-tablet{font-size:1.25rem !important}.is-size-6-tablet{font-size:1rem !important}.is-size-7-tablet{font-size:.75rem !important}}@media screen and (max-width: 1055px){.is-size-1-touch{font-size:3rem !important}.is-size-2-touch{font-size:2.5rem !important}.is-size-3-touch{font-size:2rem !important}.is-size-4-touch{font-size:1.5rem !important}.is-size-5-touch{font-size:1.25rem !important}.is-size-6-touch{font-size:1rem !important}.is-size-7-touch{font-size:.75rem !important}}@media screen and (min-width: 1056px){.is-size-1-desktop{font-size:3rem !important}.is-size-2-desktop{font-size:2.5rem !important}.is-size-3-desktop{font-size:2rem !important}.is-size-4-desktop{font-size:1.5rem !important}.is-size-5-desktop{font-size:1.25rem !important}.is-size-6-desktop{font-size:1rem !important}.is-size-7-desktop{font-size:.75rem !important}}@media screen and (min-width: 1216px){.is-size-1-widescreen{font-size:3rem !important}.is-size-2-widescreen{font-size:2.5rem !important}.is-size-3-widescreen{font-size:2rem !important}.is-size-4-widescreen{font-size:1.5rem !important}.is-size-5-widescreen{font-size:1.25rem !important}.is-size-6-widescreen{font-size:1rem !important}.is-size-7-widescreen{font-size:.75rem !important}}@media screen and (min-width: 1408px){.is-size-1-fullhd{font-size:3rem !important}.is-size-2-fullhd{font-size:2.5rem !important}.is-size-3-fullhd{font-size:2rem !important}.is-size-4-fullhd{font-size:1.5rem !important}.is-size-5-fullhd{font-size:1.25rem !important}.is-size-6-fullhd{font-size:1rem !important}.is-size-7-fullhd{font-size:.75rem !important}}.has-text-centered{text-align:center !important}.has-text-justified{text-align:justify !important}.has-text-left{text-align:left !important}.has-text-right{text-align:right !important}@media screen and (max-width: 768px){.has-text-centered-mobile{text-align:center !important}}@media screen and (min-width: 769px),print{.has-text-centered-tablet{text-align:center !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-centered-tablet-only{text-align:center !important}}@media screen and (max-width: 1055px){.has-text-centered-touch{text-align:center !important}}@media screen and (min-width: 1056px){.has-text-centered-desktop{text-align:center !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-centered-desktop-only{text-align:center !important}}@media screen and (min-width: 1216px){.has-text-centered-widescreen{text-align:center !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-centered-widescreen-only{text-align:center !important}}@media screen and (min-width: 1408px){.has-text-centered-fullhd{text-align:center !important}}@media screen and (max-width: 768px){.has-text-justified-mobile{text-align:justify !important}}@media screen and (min-width: 769px),print{.has-text-justified-tablet{text-align:justify !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-justified-tablet-only{text-align:justify !important}}@media screen and (max-width: 1055px){.has-text-justified-touch{text-align:justify !important}}@media screen and (min-width: 1056px){.has-text-justified-desktop{text-align:justify !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-justified-desktop-only{text-align:justify !important}}@media screen and (min-width: 1216px){.has-text-justified-widescreen{text-align:justify !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-justified-widescreen-only{text-align:justify !important}}@media screen and (min-width: 1408px){.has-text-justified-fullhd{text-align:justify !important}}@media screen and (max-width: 768px){.has-text-left-mobile{text-align:left !important}}@media screen and (min-width: 769px),print{.has-text-left-tablet{text-align:left !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-left-tablet-only{text-align:left !important}}@media screen and (max-width: 1055px){.has-text-left-touch{text-align:left !important}}@media screen and (min-width: 1056px){.has-text-left-desktop{text-align:left !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-left-desktop-only{text-align:left !important}}@media screen and (min-width: 1216px){.has-text-left-widescreen{text-align:left !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-left-widescreen-only{text-align:left !important}}@media screen and (min-width: 1408px){.has-text-left-fullhd{text-align:left !important}}@media screen and (max-width: 768px){.has-text-right-mobile{text-align:right !important}}@media screen and (min-width: 769px),print{.has-text-right-tablet{text-align:right !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-right-tablet-only{text-align:right !important}}@media screen and (max-width: 1055px){.has-text-right-touch{text-align:right !important}}@media screen and (min-width: 1056px){.has-text-right-desktop{text-align:right !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-right-desktop-only{text-align:right !important}}@media screen and (min-width: 1216px){.has-text-right-widescreen{text-align:right !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-right-widescreen-only{text-align:right !important}}@media screen and (min-width: 1408px){.has-text-right-fullhd{text-align:right !important}}.is-capitalized{text-transform:capitalize !important}.is-lowercase{text-transform:lowercase !important}.is-uppercase{text-transform:uppercase !important}.is-italic{font-style:italic !important}.is-underlined{text-decoration:underline !important}.has-text-weight-light{font-weight:300 !important}.has-text-weight-normal{font-weight:400 !important}.has-text-weight-medium{font-weight:500 !important}.has-text-weight-semibold{font-weight:600 !important}.has-text-weight-bold{font-weight:700 !important}.is-family-primary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-secondary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-sans-serif{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-monospace{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-family-code{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-block{display:block !important}@media screen and (max-width: 768px){.is-block-mobile{display:block !important}}@media screen and (min-width: 769px),print{.is-block-tablet{display:block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-block-tablet-only{display:block !important}}@media screen and (max-width: 1055px){.is-block-touch{display:block !important}}@media screen and (min-width: 1056px){.is-block-desktop{display:block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-block-desktop-only{display:block !important}}@media screen and (min-width: 1216px){.is-block-widescreen{display:block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-block-widescreen-only{display:block !important}}@media screen and (min-width: 1408px){.is-block-fullhd{display:block !important}}.is-flex{display:flex !important}@media screen and (max-width: 768px){.is-flex-mobile{display:flex !important}}@media screen and (min-width: 769px),print{.is-flex-tablet{display:flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-flex-tablet-only{display:flex !important}}@media screen and (max-width: 1055px){.is-flex-touch{display:flex !important}}@media screen and (min-width: 1056px){.is-flex-desktop{display:flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-flex-desktop-only{display:flex !important}}@media screen and (min-width: 1216px){.is-flex-widescreen{display:flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-flex-widescreen-only{display:flex !important}}@media screen and (min-width: 1408px){.is-flex-fullhd{display:flex !important}}.is-inline{display:inline !important}@media screen and (max-width: 768px){.is-inline-mobile{display:inline !important}}@media screen and (min-width: 769px),print{.is-inline-tablet{display:inline !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-tablet-only{display:inline !important}}@media screen and (max-width: 1055px){.is-inline-touch{display:inline !important}}@media screen and (min-width: 1056px){.is-inline-desktop{display:inline !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-desktop-only{display:inline !important}}@media screen and (min-width: 1216px){.is-inline-widescreen{display:inline !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-widescreen-only{display:inline !important}}@media screen and (min-width: 1408px){.is-inline-fullhd{display:inline !important}}.is-inline-block{display:inline-block !important}@media screen and (max-width: 768px){.is-inline-block-mobile{display:inline-block !important}}@media screen and (min-width: 769px),print{.is-inline-block-tablet{display:inline-block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-block-tablet-only{display:inline-block !important}}@media screen and (max-width: 1055px){.is-inline-block-touch{display:inline-block !important}}@media screen and (min-width: 1056px){.is-inline-block-desktop{display:inline-block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-block-desktop-only{display:inline-block !important}}@media screen and (min-width: 1216px){.is-inline-block-widescreen{display:inline-block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-block-widescreen-only{display:inline-block !important}}@media screen and (min-width: 1408px){.is-inline-block-fullhd{display:inline-block !important}}.is-inline-flex{display:inline-flex !important}@media screen and (max-width: 768px){.is-inline-flex-mobile{display:inline-flex !important}}@media screen and (min-width: 769px),print{.is-inline-flex-tablet{display:inline-flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-flex-tablet-only{display:inline-flex !important}}@media screen and (max-width: 1055px){.is-inline-flex-touch{display:inline-flex !important}}@media screen and (min-width: 1056px){.is-inline-flex-desktop{display:inline-flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-flex-desktop-only{display:inline-flex !important}}@media screen and (min-width: 1216px){.is-inline-flex-widescreen{display:inline-flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-flex-widescreen-only{display:inline-flex !important}}@media screen and (min-width: 1408px){.is-inline-flex-fullhd{display:inline-flex !important}}.is-hidden{display:none !important}.is-sr-only{border:none !important;clip:rect(0, 0, 0, 0) !important;height:0.01em !important;overflow:hidden !important;padding:0 !important;position:absolute !important;white-space:nowrap !important;width:0.01em !important}@media screen and (max-width: 768px){.is-hidden-mobile{display:none !important}}@media screen and (min-width: 769px),print{.is-hidden-tablet{display:none !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-hidden-tablet-only{display:none !important}}@media screen and (max-width: 1055px){.is-hidden-touch{display:none !important}}@media screen and (min-width: 1056px){.is-hidden-desktop{display:none !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-hidden-desktop-only{display:none !important}}@media screen and (min-width: 1216px){.is-hidden-widescreen{display:none !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-hidden-widescreen-only{display:none !important}}@media screen and (min-width: 1408px){.is-hidden-fullhd{display:none !important}}.is-invisible{visibility:hidden !important}@media screen and (max-width: 768px){.is-invisible-mobile{visibility:hidden !important}}@media screen and (min-width: 769px),print{.is-invisible-tablet{visibility:hidden !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-invisible-tablet-only{visibility:hidden !important}}@media screen and (max-width: 1055px){.is-invisible-touch{visibility:hidden !important}}@media screen and (min-width: 1056px){.is-invisible-desktop{visibility:hidden !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-invisible-desktop-only{visibility:hidden !important}}@media screen and (min-width: 1216px){.is-invisible-widescreen{visibility:hidden !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-invisible-widescreen-only{visibility:hidden !important}}@media screen and (min-width: 1408px){.is-invisible-fullhd{visibility:hidden !important}}/*! minireset.css v0.0.6 | MIT License | github.com/jgthms/minireset.css */html,body,p,ol,ul,li,dl,dt,dd,blockquote,figure,fieldset,legend,textarea,pre,iframe,hr,h1,h2,h3,h4,h5,h6{margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal}ul{list-style:none}button,input,select,textarea{margin:0}html{box-sizing:border-box}*,*::before,*::after{box-sizing:inherit}img,video{height:auto;max-width:100%}iframe{border:0}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}td:not([align]),th:not([align]){text-align:inherit}html{background-color:#fff;font-size:16px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;min-width:300px;overflow-x:auto;overflow-y:scroll;text-rendering:optimizeLegibility;text-size-adjust:100%}article,aside,figure,footer,header,hgroup,section{display:block}body,button,input,optgroup,select,textarea{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif}code,pre{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto;font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace}body{color:#222;font-size:1em;font-weight:400;line-height:1.5}a{color:#2e63b8;cursor:pointer;text-decoration:none}a strong{color:currentColor}a:hover{color:#363636}code{background-color:rgba(0,0,0,0.05);color:#000;font-size:.875em;font-weight:normal;padding:.1em}hr{background-color:#f5f5f5;border:none;display:block;height:2px;margin:1.5rem 0}img{height:auto;max-width:100%}input[type="checkbox"],input[type="radio"]{vertical-align:baseline}small{font-size:.875em}span{font-style:inherit;font-weight:inherit}strong{color:#222;font-weight:700}fieldset{border:none}pre{-webkit-overflow-scrolling:touch;background-color:#f5f5f5;color:#222;font-size:.875em;overflow-x:auto;padding:1.25rem 1.5rem;white-space:pre;word-wrap:normal}pre code{background-color:transparent;color:currentColor;font-size:1em;padding:0}table td,table th{vertical-align:top}table td:not([align]),table th:not([align]){text-align:inherit}table th{color:#222}@keyframes spinAround{from{transform:rotate(0deg)}to{transform:rotate(359deg)}}.box{background-color:#fff;border-radius:6px;box-shadow:#bbb;color:#222;display:block;padding:1.25rem}a.box:hover,a.box:focus{box-shadow:0 0.5em 1em -0.125em rgba(10,10,10,0.1),0 0 0 1px #2e63b8}a.box:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2),0 0 0 1px #2e63b8}.button{background-color:#fff;border-color:#dbdbdb;border-width:1px;color:#222;cursor:pointer;justify-content:center;padding-bottom:calc(0.5em - 1px);padding-left:1em;padding-right:1em;padding-top:calc(0.5em - 1px);text-align:center;white-space:nowrap}.button strong{color:inherit}.button .icon,.button .icon.is-small,.button #documenter .docs-sidebar form.docs-search>input.icon,#documenter .docs-sidebar .button form.docs-search>input.icon,.button .icon.is-medium,.button .icon.is-large{height:1.5em;width:1.5em}.button .icon:first-child:not(:last-child){margin-left:calc(-0.5em - 1px);margin-right:.25em}.button .icon:last-child:not(:first-child){margin-left:.25em;margin-right:calc(-0.5em - 1px)}.button .icon:first-child:last-child{margin-left:calc(-0.5em - 1px);margin-right:calc(-0.5em - 1px)}.button:hover,.button.is-hovered{border-color:#b5b5b5;color:#363636}.button:focus,.button.is-focused{border-color:#3c5dcd;color:#363636}.button:focus:not(:active),.button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.button:active,.button.is-active{border-color:#4a4a4a;color:#363636}.button.is-text{background-color:transparent;border-color:transparent;color:#222;text-decoration:underline}.button.is-text:hover,.button.is-text.is-hovered,.button.is-text:focus,.button.is-text.is-focused{background-color:#f5f5f5;color:#222}.button.is-text:active,.button.is-text.is-active{background-color:#e8e8e8;color:#222}.button.is-text[disabled],fieldset[disabled] .button.is-text{background-color:transparent;border-color:transparent;box-shadow:none}.button.is-ghost{background:none;border-color:rgba(0,0,0,0);color:#2e63b8;text-decoration:none}.button.is-ghost:hover,.button.is-ghost.is-hovered{color:#2e63b8;text-decoration:underline}.button.is-white{background-color:#fff;border-color:transparent;color:#0a0a0a}.button.is-white:hover,.button.is-white.is-hovered{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}.button.is-white:focus,.button.is-white.is-focused{border-color:transparent;color:#0a0a0a}.button.is-white:focus:not(:active),.button.is-white.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}.button.is-white:active,.button.is-white.is-active{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}.button.is-white[disabled],fieldset[disabled] .button.is-white{background-color:#fff;border-color:#fff;box-shadow:none}.button.is-white.is-inverted{background-color:#0a0a0a;color:#fff}.button.is-white.is-inverted:hover,.button.is-white.is-inverted.is-hovered{background-color:#000}.button.is-white.is-inverted[disabled],fieldset[disabled] .button.is-white.is-inverted{background-color:#0a0a0a;border-color:transparent;box-shadow:none;color:#fff}.button.is-white.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-white.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-white.is-outlined:hover,.button.is-white.is-outlined.is-hovered,.button.is-white.is-outlined:focus,.button.is-white.is-outlined.is-focused{background-color:#fff;border-color:#fff;color:#0a0a0a}.button.is-white.is-outlined.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-white.is-outlined.is-loading:hover::after,.button.is-white.is-outlined.is-loading.is-hovered::after,.button.is-white.is-outlined.is-loading:focus::after,.button.is-white.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-white.is-outlined[disabled],fieldset[disabled] .button.is-white.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}.button.is-white.is-inverted.is-outlined:hover,.button.is-white.is-inverted.is-outlined.is-hovered,.button.is-white.is-inverted.is-outlined:focus,.button.is-white.is-inverted.is-outlined.is-focused{background-color:#0a0a0a;color:#fff}.button.is-white.is-inverted.is-outlined.is-loading:hover::after,.button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-white.is-inverted.is-outlined.is-loading:focus::after,.button.is-white.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-white.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}.button.is-black{background-color:#0a0a0a;border-color:transparent;color:#fff}.button.is-black:hover,.button.is-black.is-hovered{background-color:#040404;border-color:transparent;color:#fff}.button.is-black:focus,.button.is-black.is-focused{border-color:transparent;color:#fff}.button.is-black:focus:not(:active),.button.is-black.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}.button.is-black:active,.button.is-black.is-active{background-color:#000;border-color:transparent;color:#fff}.button.is-black[disabled],fieldset[disabled] .button.is-black{background-color:#0a0a0a;border-color:#0a0a0a;box-shadow:none}.button.is-black.is-inverted{background-color:#fff;color:#0a0a0a}.button.is-black.is-inverted:hover,.button.is-black.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-black.is-inverted[disabled],fieldset[disabled] .button.is-black.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#0a0a0a}.button.is-black.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}.button.is-black.is-outlined:hover,.button.is-black.is-outlined.is-hovered,.button.is-black.is-outlined:focus,.button.is-black.is-outlined.is-focused{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.button.is-black.is-outlined.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-black.is-outlined.is-loading:hover::after,.button.is-black.is-outlined.is-loading.is-hovered::after,.button.is-black.is-outlined.is-loading:focus::after,.button.is-black.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-black.is-outlined[disabled],fieldset[disabled] .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}.button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-black.is-inverted.is-outlined:hover,.button.is-black.is-inverted.is-outlined.is-hovered,.button.is-black.is-inverted.is-outlined:focus,.button.is-black.is-inverted.is-outlined.is-focused{background-color:#fff;color:#0a0a0a}.button.is-black.is-inverted.is-outlined.is-loading:hover::after,.button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-black.is-inverted.is-outlined.is-loading:focus::after,.button.is-black.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-black.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-light{background-color:#f5f5f5;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-light:hover,.button.is-light.is-hovered{background-color:#eee;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-light:focus,.button.is-light.is-focused{border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-light:focus:not(:active),.button.is-light.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}.button.is-light:active,.button.is-light.is-active{background-color:#e8e8e8;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-light[disabled],fieldset[disabled] .button.is-light{background-color:#f5f5f5;border-color:#f5f5f5;box-shadow:none}.button.is-light.is-inverted{background-color:rgba(0,0,0,0.7);color:#f5f5f5}.button.is-light.is-inverted:hover,.button.is-light.is-inverted.is-hovered{background-color:rgba(0,0,0,0.7)}.button.is-light.is-inverted[disabled],fieldset[disabled] .button.is-light.is-inverted{background-color:rgba(0,0,0,0.7);border-color:transparent;box-shadow:none;color:#f5f5f5}.button.is-light.is-loading::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !important}.button.is-light.is-outlined{background-color:transparent;border-color:#f5f5f5;color:#f5f5f5}.button.is-light.is-outlined:hover,.button.is-light.is-outlined.is-hovered,.button.is-light.is-outlined:focus,.button.is-light.is-outlined.is-focused{background-color:#f5f5f5;border-color:#f5f5f5;color:rgba(0,0,0,0.7)}.button.is-light.is-outlined.is-loading::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-light.is-outlined.is-loading:hover::after,.button.is-light.is-outlined.is-loading.is-hovered::after,.button.is-light.is-outlined.is-loading:focus::after,.button.is-light.is-outlined.is-loading.is-focused::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !important}.button.is-light.is-outlined[disabled],fieldset[disabled] .button.is-light.is-outlined{background-color:transparent;border-color:#f5f5f5;box-shadow:none;color:#f5f5f5}.button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,0.7);color:rgba(0,0,0,0.7)}.button.is-light.is-inverted.is-outlined:hover,.button.is-light.is-inverted.is-outlined.is-hovered,.button.is-light.is-inverted.is-outlined:focus,.button.is-light.is-inverted.is-outlined.is-focused{background-color:rgba(0,0,0,0.7);color:#f5f5f5}.button.is-light.is-inverted.is-outlined.is-loading:hover::after,.button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-light.is-inverted.is-outlined.is-loading:focus::after,.button.is-light.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-light.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,0.7);box-shadow:none;color:rgba(0,0,0,0.7)}.button.is-dark,.content kbd.button{background-color:#363636;border-color:transparent;color:#fff}.button.is-dark:hover,.content kbd.button:hover,.button.is-dark.is-hovered,.content kbd.button.is-hovered{background-color:#2f2f2f;border-color:transparent;color:#fff}.button.is-dark:focus,.content kbd.button:focus,.button.is-dark.is-focused,.content kbd.button.is-focused{border-color:transparent;color:#fff}.button.is-dark:focus:not(:active),.content kbd.button:focus:not(:active),.button.is-dark.is-focused:not(:active),.content kbd.button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(54,54,54,0.25)}.button.is-dark:active,.content kbd.button:active,.button.is-dark.is-active,.content kbd.button.is-active{background-color:#292929;border-color:transparent;color:#fff}.button.is-dark[disabled],.content kbd.button[disabled],fieldset[disabled] .button.is-dark,fieldset[disabled] .content kbd.button,.content fieldset[disabled] kbd.button{background-color:#363636;border-color:#363636;box-shadow:none}.button.is-dark.is-inverted,.content kbd.button.is-inverted{background-color:#fff;color:#363636}.button.is-dark.is-inverted:hover,.content kbd.button.is-inverted:hover,.button.is-dark.is-inverted.is-hovered,.content kbd.button.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-dark.is-inverted[disabled],.content kbd.button.is-inverted[disabled],fieldset[disabled] .button.is-dark.is-inverted,fieldset[disabled] .content kbd.button.is-inverted,.content fieldset[disabled] kbd.button.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#363636}.button.is-dark.is-loading::after,.content kbd.button.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-dark.is-outlined,.content kbd.button.is-outlined{background-color:transparent;border-color:#363636;color:#363636}.button.is-dark.is-outlined:hover,.content kbd.button.is-outlined:hover,.button.is-dark.is-outlined.is-hovered,.content kbd.button.is-outlined.is-hovered,.button.is-dark.is-outlined:focus,.content kbd.button.is-outlined:focus,.button.is-dark.is-outlined.is-focused,.content kbd.button.is-outlined.is-focused{background-color:#363636;border-color:#363636;color:#fff}.button.is-dark.is-outlined.is-loading::after,.content kbd.button.is-outlined.is-loading::after{border-color:transparent transparent #363636 #363636 !important}.button.is-dark.is-outlined.is-loading:hover::after,.content kbd.button.is-outlined.is-loading:hover::after,.button.is-dark.is-outlined.is-loading.is-hovered::after,.content kbd.button.is-outlined.is-loading.is-hovered::after,.button.is-dark.is-outlined.is-loading:focus::after,.content kbd.button.is-outlined.is-loading:focus::after,.button.is-dark.is-outlined.is-loading.is-focused::after,.content kbd.button.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-dark.is-outlined[disabled],.content kbd.button.is-outlined[disabled],fieldset[disabled] .button.is-dark.is-outlined,fieldset[disabled] .content kbd.button.is-outlined,.content fieldset[disabled] kbd.button.is-outlined{background-color:transparent;border-color:#363636;box-shadow:none;color:#363636}.button.is-dark.is-inverted.is-outlined,.content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-dark.is-inverted.is-outlined:hover,.content kbd.button.is-inverted.is-outlined:hover,.button.is-dark.is-inverted.is-outlined.is-hovered,.content kbd.button.is-inverted.is-outlined.is-hovered,.button.is-dark.is-inverted.is-outlined:focus,.content kbd.button.is-inverted.is-outlined:focus,.button.is-dark.is-inverted.is-outlined.is-focused,.content kbd.button.is-inverted.is-outlined.is-focused{background-color:#fff;color:#363636}.button.is-dark.is-inverted.is-outlined.is-loading:hover::after,.content kbd.button.is-inverted.is-outlined.is-loading:hover::after,.button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after,.content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-dark.is-inverted.is-outlined.is-loading:focus::after,.content kbd.button.is-inverted.is-outlined.is-loading:focus::after,.button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after,.content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #363636 #363636 !important}.button.is-dark.is-inverted.is-outlined[disabled],.content kbd.button.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-dark.is-inverted.is-outlined,fieldset[disabled] .content kbd.button.is-inverted.is-outlined,.content fieldset[disabled] kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-primary,.docstring>section>a.button.docs-sourcelink{background-color:#4eb5de;border-color:transparent;color:#fff}.button.is-primary:hover,.docstring>section>a.button.docs-sourcelink:hover,.button.is-primary.is-hovered,.docstring>section>a.button.is-hovered.docs-sourcelink{background-color:#43b1dc;border-color:transparent;color:#fff}.button.is-primary:focus,.docstring>section>a.button.docs-sourcelink:focus,.button.is-primary.is-focused,.docstring>section>a.button.is-focused.docs-sourcelink{border-color:transparent;color:#fff}.button.is-primary:focus:not(:active),.docstring>section>a.button.docs-sourcelink:focus:not(:active),.button.is-primary.is-focused:not(:active),.docstring>section>a.button.is-focused.docs-sourcelink:not(:active){box-shadow:0 0 0 0.125em rgba(78,181,222,0.25)}.button.is-primary:active,.docstring>section>a.button.docs-sourcelink:active,.button.is-primary.is-active,.docstring>section>a.button.is-active.docs-sourcelink{background-color:#39acda;border-color:transparent;color:#fff}.button.is-primary[disabled],.docstring>section>a.button.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary,fieldset[disabled] .docstring>section>a.button.docs-sourcelink{background-color:#4eb5de;border-color:#4eb5de;box-shadow:none}.button.is-primary.is-inverted,.docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;color:#4eb5de}.button.is-primary.is-inverted:hover,.docstring>section>a.button.is-inverted.docs-sourcelink:hover,.button.is-primary.is-inverted.is-hovered,.docstring>section>a.button.is-inverted.is-hovered.docs-sourcelink{background-color:#f2f2f2}.button.is-primary.is-inverted[disabled],.docstring>section>a.button.is-inverted.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary.is-inverted,fieldset[disabled] .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;border-color:transparent;box-shadow:none;color:#4eb5de}.button.is-primary.is-loading::after,.docstring>section>a.button.is-loading.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}.button.is-primary.is-outlined,.docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#4eb5de;color:#4eb5de}.button.is-primary.is-outlined:hover,.docstring>section>a.button.is-outlined.docs-sourcelink:hover,.button.is-primary.is-outlined.is-hovered,.docstring>section>a.button.is-outlined.is-hovered.docs-sourcelink,.button.is-primary.is-outlined:focus,.docstring>section>a.button.is-outlined.docs-sourcelink:focus,.button.is-primary.is-outlined.is-focused,.docstring>section>a.button.is-outlined.is-focused.docs-sourcelink{background-color:#4eb5de;border-color:#4eb5de;color:#fff}.button.is-primary.is-outlined.is-loading::after,.docstring>section>a.button.is-outlined.is-loading.docs-sourcelink::after{border-color:transparent transparent #4eb5de #4eb5de !important}.button.is-primary.is-outlined.is-loading:hover::after,.docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:hover::after,.button.is-primary.is-outlined.is-loading.is-hovered::after,.docstring>section>a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after,.button.is-primary.is-outlined.is-loading:focus::after,.docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:focus::after,.button.is-primary.is-outlined.is-loading.is-focused::after,.docstring>section>a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}.button.is-primary.is-outlined[disabled],.docstring>section>a.button.is-outlined.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary.is-outlined,fieldset[disabled] .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#4eb5de;box-shadow:none;color:#4eb5de}.button.is-primary.is-inverted.is-outlined,.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;color:#fff}.button.is-primary.is-inverted.is-outlined:hover,.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:hover,.button.is-primary.is-inverted.is-outlined.is-hovered,.docstring>section>a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink,.button.is-primary.is-inverted.is-outlined:focus,.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:focus,.button.is-primary.is-inverted.is-outlined.is-focused,.docstring>section>a.button.is-inverted.is-outlined.is-focused.docs-sourcelink{background-color:#fff;color:#4eb5de}.button.is-primary.is-inverted.is-outlined.is-loading:hover::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after,.button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after,.button.is-primary.is-inverted.is-outlined.is-loading:focus::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after,.button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #4eb5de #4eb5de !important}.button.is-primary.is-inverted.is-outlined[disabled],.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary.is-inverted.is-outlined,fieldset[disabled] .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-primary.is-light,.docstring>section>a.button.is-light.docs-sourcelink{background-color:#eef8fc;color:#1a6d8e}.button.is-primary.is-light:hover,.docstring>section>a.button.is-light.docs-sourcelink:hover,.button.is-primary.is-light.is-hovered,.docstring>section>a.button.is-light.is-hovered.docs-sourcelink{background-color:#e3f3fa;border-color:transparent;color:#1a6d8e}.button.is-primary.is-light:active,.docstring>section>a.button.is-light.docs-sourcelink:active,.button.is-primary.is-light.is-active,.docstring>section>a.button.is-light.is-active.docs-sourcelink{background-color:#d8eff8;border-color:transparent;color:#1a6d8e}.button.is-link{background-color:#2e63b8;border-color:transparent;color:#fff}.button.is-link:hover,.button.is-link.is-hovered{background-color:#2b5eae;border-color:transparent;color:#fff}.button.is-link:focus,.button.is-link.is-focused{border-color:transparent;color:#fff}.button.is-link:focus:not(:active),.button.is-link.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.button.is-link:active,.button.is-link.is-active{background-color:#2958a4;border-color:transparent;color:#fff}.button.is-link[disabled],fieldset[disabled] .button.is-link{background-color:#2e63b8;border-color:#2e63b8;box-shadow:none}.button.is-link.is-inverted{background-color:#fff;color:#2e63b8}.button.is-link.is-inverted:hover,.button.is-link.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-link.is-inverted[disabled],fieldset[disabled] .button.is-link.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#2e63b8}.button.is-link.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-link.is-outlined{background-color:transparent;border-color:#2e63b8;color:#2e63b8}.button.is-link.is-outlined:hover,.button.is-link.is-outlined.is-hovered,.button.is-link.is-outlined:focus,.button.is-link.is-outlined.is-focused{background-color:#2e63b8;border-color:#2e63b8;color:#fff}.button.is-link.is-outlined.is-loading::after{border-color:transparent transparent #2e63b8 #2e63b8 !important}.button.is-link.is-outlined.is-loading:hover::after,.button.is-link.is-outlined.is-loading.is-hovered::after,.button.is-link.is-outlined.is-loading:focus::after,.button.is-link.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-link.is-outlined[disabled],fieldset[disabled] .button.is-link.is-outlined{background-color:transparent;border-color:#2e63b8;box-shadow:none;color:#2e63b8}.button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-link.is-inverted.is-outlined:hover,.button.is-link.is-inverted.is-outlined.is-hovered,.button.is-link.is-inverted.is-outlined:focus,.button.is-link.is-inverted.is-outlined.is-focused{background-color:#fff;color:#2e63b8}.button.is-link.is-inverted.is-outlined.is-loading:hover::after,.button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-link.is-inverted.is-outlined.is-loading:focus::after,.button.is-link.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #2e63b8 #2e63b8 !important}.button.is-link.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-link.is-light{background-color:#eff3fb;color:#3169c4}.button.is-link.is-light:hover,.button.is-link.is-light.is-hovered{background-color:#e4ecf8;border-color:transparent;color:#3169c4}.button.is-link.is-light:active,.button.is-link.is-light.is-active{background-color:#dae5f6;border-color:transparent;color:#3169c4}.button.is-info{background-color:#209cee;border-color:transparent;color:#fff}.button.is-info:hover,.button.is-info.is-hovered{background-color:#1497ed;border-color:transparent;color:#fff}.button.is-info:focus,.button.is-info.is-focused{border-color:transparent;color:#fff}.button.is-info:focus:not(:active),.button.is-info.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(32,156,238,0.25)}.button.is-info:active,.button.is-info.is-active{background-color:#1190e3;border-color:transparent;color:#fff}.button.is-info[disabled],fieldset[disabled] .button.is-info{background-color:#209cee;border-color:#209cee;box-shadow:none}.button.is-info.is-inverted{background-color:#fff;color:#209cee}.button.is-info.is-inverted:hover,.button.is-info.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-info.is-inverted[disabled],fieldset[disabled] .button.is-info.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#209cee}.button.is-info.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-info.is-outlined{background-color:transparent;border-color:#209cee;color:#209cee}.button.is-info.is-outlined:hover,.button.is-info.is-outlined.is-hovered,.button.is-info.is-outlined:focus,.button.is-info.is-outlined.is-focused{background-color:#209cee;border-color:#209cee;color:#fff}.button.is-info.is-outlined.is-loading::after{border-color:transparent transparent #209cee #209cee !important}.button.is-info.is-outlined.is-loading:hover::after,.button.is-info.is-outlined.is-loading.is-hovered::after,.button.is-info.is-outlined.is-loading:focus::after,.button.is-info.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-info.is-outlined[disabled],fieldset[disabled] .button.is-info.is-outlined{background-color:transparent;border-color:#209cee;box-shadow:none;color:#209cee}.button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-info.is-inverted.is-outlined:hover,.button.is-info.is-inverted.is-outlined.is-hovered,.button.is-info.is-inverted.is-outlined:focus,.button.is-info.is-inverted.is-outlined.is-focused{background-color:#fff;color:#209cee}.button.is-info.is-inverted.is-outlined.is-loading:hover::after,.button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-info.is-inverted.is-outlined.is-loading:focus::after,.button.is-info.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #209cee #209cee !important}.button.is-info.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-info.is-light{background-color:#ecf7fe;color:#0e72b4}.button.is-info.is-light:hover,.button.is-info.is-light.is-hovered{background-color:#e0f1fd;border-color:transparent;color:#0e72b4}.button.is-info.is-light:active,.button.is-info.is-light.is-active{background-color:#d4ecfc;border-color:transparent;color:#0e72b4}.button.is-success{background-color:#22c35b;border-color:transparent;color:#fff}.button.is-success:hover,.button.is-success.is-hovered{background-color:#20b856;border-color:transparent;color:#fff}.button.is-success:focus,.button.is-success.is-focused{border-color:transparent;color:#fff}.button.is-success:focus:not(:active),.button.is-success.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(34,195,91,0.25)}.button.is-success:active,.button.is-success.is-active{background-color:#1ead51;border-color:transparent;color:#fff}.button.is-success[disabled],fieldset[disabled] .button.is-success{background-color:#22c35b;border-color:#22c35b;box-shadow:none}.button.is-success.is-inverted{background-color:#fff;color:#22c35b}.button.is-success.is-inverted:hover,.button.is-success.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-success.is-inverted[disabled],fieldset[disabled] .button.is-success.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#22c35b}.button.is-success.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-success.is-outlined{background-color:transparent;border-color:#22c35b;color:#22c35b}.button.is-success.is-outlined:hover,.button.is-success.is-outlined.is-hovered,.button.is-success.is-outlined:focus,.button.is-success.is-outlined.is-focused{background-color:#22c35b;border-color:#22c35b;color:#fff}.button.is-success.is-outlined.is-loading::after{border-color:transparent transparent #22c35b #22c35b !important}.button.is-success.is-outlined.is-loading:hover::after,.button.is-success.is-outlined.is-loading.is-hovered::after,.button.is-success.is-outlined.is-loading:focus::after,.button.is-success.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-success.is-outlined[disabled],fieldset[disabled] .button.is-success.is-outlined{background-color:transparent;border-color:#22c35b;box-shadow:none;color:#22c35b}.button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-success.is-inverted.is-outlined:hover,.button.is-success.is-inverted.is-outlined.is-hovered,.button.is-success.is-inverted.is-outlined:focus,.button.is-success.is-inverted.is-outlined.is-focused{background-color:#fff;color:#22c35b}.button.is-success.is-inverted.is-outlined.is-loading:hover::after,.button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-success.is-inverted.is-outlined.is-loading:focus::after,.button.is-success.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #22c35b #22c35b !important}.button.is-success.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-success.is-light{background-color:#eefcf3;color:#198f43}.button.is-success.is-light:hover,.button.is-success.is-light.is-hovered{background-color:#e3faeb;border-color:transparent;color:#198f43}.button.is-success.is-light:active,.button.is-success.is-light.is-active{background-color:#d8f8e3;border-color:transparent;color:#198f43}.button.is-warning{background-color:#ffdd57;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning:hover,.button.is-warning.is-hovered{background-color:#ffda4a;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning:focus,.button.is-warning.is-focused{border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning:focus:not(:active),.button.is-warning.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(255,221,87,0.25)}.button.is-warning:active,.button.is-warning.is-active{background-color:#ffd83e;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning[disabled],fieldset[disabled] .button.is-warning{background-color:#ffdd57;border-color:#ffdd57;box-shadow:none}.button.is-warning.is-inverted{background-color:rgba(0,0,0,0.7);color:#ffdd57}.button.is-warning.is-inverted:hover,.button.is-warning.is-inverted.is-hovered{background-color:rgba(0,0,0,0.7)}.button.is-warning.is-inverted[disabled],fieldset[disabled] .button.is-warning.is-inverted{background-color:rgba(0,0,0,0.7);border-color:transparent;box-shadow:none;color:#ffdd57}.button.is-warning.is-loading::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !important}.button.is-warning.is-outlined{background-color:transparent;border-color:#ffdd57;color:#ffdd57}.button.is-warning.is-outlined:hover,.button.is-warning.is-outlined.is-hovered,.button.is-warning.is-outlined:focus,.button.is-warning.is-outlined.is-focused{background-color:#ffdd57;border-color:#ffdd57;color:rgba(0,0,0,0.7)}.button.is-warning.is-outlined.is-loading::after{border-color:transparent transparent #ffdd57 #ffdd57 !important}.button.is-warning.is-outlined.is-loading:hover::after,.button.is-warning.is-outlined.is-loading.is-hovered::after,.button.is-warning.is-outlined.is-loading:focus::after,.button.is-warning.is-outlined.is-loading.is-focused::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !important}.button.is-warning.is-outlined[disabled],fieldset[disabled] .button.is-warning.is-outlined{background-color:transparent;border-color:#ffdd57;box-shadow:none;color:#ffdd57}.button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,0.7);color:rgba(0,0,0,0.7)}.button.is-warning.is-inverted.is-outlined:hover,.button.is-warning.is-inverted.is-outlined.is-hovered,.button.is-warning.is-inverted.is-outlined:focus,.button.is-warning.is-inverted.is-outlined.is-focused{background-color:rgba(0,0,0,0.7);color:#ffdd57}.button.is-warning.is-inverted.is-outlined.is-loading:hover::after,.button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-warning.is-inverted.is-outlined.is-loading:focus::after,.button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ffdd57 #ffdd57 !important}.button.is-warning.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,0.7);box-shadow:none;color:rgba(0,0,0,0.7)}.button.is-warning.is-light{background-color:#fffbeb;color:#947600}.button.is-warning.is-light:hover,.button.is-warning.is-light.is-hovered{background-color:#fff8de;border-color:transparent;color:#947600}.button.is-warning.is-light:active,.button.is-warning.is-light.is-active{background-color:#fff6d1;border-color:transparent;color:#947600}.button.is-danger{background-color:#da0b00;border-color:transparent;color:#fff}.button.is-danger:hover,.button.is-danger.is-hovered{background-color:#cd0a00;border-color:transparent;color:#fff}.button.is-danger:focus,.button.is-danger.is-focused{border-color:transparent;color:#fff}.button.is-danger:focus:not(:active),.button.is-danger.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(218,11,0,0.25)}.button.is-danger:active,.button.is-danger.is-active{background-color:#c10a00;border-color:transparent;color:#fff}.button.is-danger[disabled],fieldset[disabled] .button.is-danger{background-color:#da0b00;border-color:#da0b00;box-shadow:none}.button.is-danger.is-inverted{background-color:#fff;color:#da0b00}.button.is-danger.is-inverted:hover,.button.is-danger.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-danger.is-inverted[disabled],fieldset[disabled] .button.is-danger.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#da0b00}.button.is-danger.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-danger.is-outlined{background-color:transparent;border-color:#da0b00;color:#da0b00}.button.is-danger.is-outlined:hover,.button.is-danger.is-outlined.is-hovered,.button.is-danger.is-outlined:focus,.button.is-danger.is-outlined.is-focused{background-color:#da0b00;border-color:#da0b00;color:#fff}.button.is-danger.is-outlined.is-loading::after{border-color:transparent transparent #da0b00 #da0b00 !important}.button.is-danger.is-outlined.is-loading:hover::after,.button.is-danger.is-outlined.is-loading.is-hovered::after,.button.is-danger.is-outlined.is-loading:focus::after,.button.is-danger.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-danger.is-outlined[disabled],fieldset[disabled] .button.is-danger.is-outlined{background-color:transparent;border-color:#da0b00;box-shadow:none;color:#da0b00}.button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-danger.is-inverted.is-outlined:hover,.button.is-danger.is-inverted.is-outlined.is-hovered,.button.is-danger.is-inverted.is-outlined:focus,.button.is-danger.is-inverted.is-outlined.is-focused{background-color:#fff;color:#da0b00}.button.is-danger.is-inverted.is-outlined.is-loading:hover::after,.button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-danger.is-inverted.is-outlined.is-loading:focus::after,.button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #da0b00 #da0b00 !important}.button.is-danger.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-danger.is-light{background-color:#ffeceb;color:#f50c00}.button.is-danger.is-light:hover,.button.is-danger.is-light.is-hovered{background-color:#ffe0de;border-color:transparent;color:#f50c00}.button.is-danger.is-light:active,.button.is-danger.is-light.is-active{background-color:#ffd3d1;border-color:transparent;color:#f50c00}.button.is-small,#documenter .docs-sidebar form.docs-search>input.button{font-size:.75rem}.button.is-small:not(.is-rounded),#documenter .docs-sidebar form.docs-search>input.button:not(.is-rounded){border-radius:2px}.button.is-normal{font-size:1rem}.button.is-medium{font-size:1.25rem}.button.is-large{font-size:1.5rem}.button[disabled],fieldset[disabled] .button{background-color:#fff;border-color:#dbdbdb;box-shadow:none;opacity:.5}.button.is-fullwidth{display:flex;width:100%}.button.is-loading{color:transparent !important;pointer-events:none}.button.is-loading::after{position:absolute;left:calc(50% - (1em * 0.5));top:calc(50% - (1em * 0.5));position:absolute !important}.button.is-static{background-color:#f5f5f5;border-color:#dbdbdb;color:#6b6b6b;box-shadow:none;pointer-events:none}.button.is-rounded,#documenter .docs-sidebar form.docs-search>input.button{border-radius:9999px;padding-left:calc(1em + 0.25em);padding-right:calc(1em + 0.25em)}.buttons{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.buttons .button{margin-bottom:0.5rem}.buttons .button:not(:last-child):not(.is-fullwidth){margin-right:.5rem}.buttons:last-child{margin-bottom:-0.5rem}.buttons:not(:last-child){margin-bottom:1rem}.buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large){font-size:.75rem}.buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large):not(.is-rounded){border-radius:2px}.buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large){font-size:1.25rem}.buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium){font-size:1.5rem}.buttons.has-addons .button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.buttons.has-addons .button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}.buttons.has-addons .button:last-child{margin-right:0}.buttons.has-addons .button:hover,.buttons.has-addons .button.is-hovered{z-index:2}.buttons.has-addons .button:focus,.buttons.has-addons .button.is-focused,.buttons.has-addons .button:active,.buttons.has-addons .button.is-active,.buttons.has-addons .button.is-selected{z-index:3}.buttons.has-addons .button:focus:hover,.buttons.has-addons .button.is-focused:hover,.buttons.has-addons .button:active:hover,.buttons.has-addons .button.is-active:hover,.buttons.has-addons .button.is-selected:hover{z-index:4}.buttons.has-addons .button.is-expanded{flex-grow:1;flex-shrink:1}.buttons.is-centered{justify-content:center}.buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}.buttons.is-right{justify-content:flex-end}.buttons.is-right:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}@media screen and (max-width: 768px){.button.is-responsive.is-small,#documenter .docs-sidebar form.docs-search>input.is-responsive{font-size:.5625rem}.button.is-responsive,.button.is-responsive.is-normal{font-size:.65625rem}.button.is-responsive.is-medium{font-size:.75rem}.button.is-responsive.is-large{font-size:1rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.button.is-responsive.is-small,#documenter .docs-sidebar form.docs-search>input.is-responsive{font-size:.65625rem}.button.is-responsive,.button.is-responsive.is-normal{font-size:.75rem}.button.is-responsive.is-medium{font-size:1rem}.button.is-responsive.is-large{font-size:1.25rem}}.container{flex-grow:1;margin:0 auto;position:relative;width:auto}.container.is-fluid{max-width:none !important;padding-left:32px;padding-right:32px;width:100%}@media screen and (min-width: 1056px){.container{max-width:992px}}@media screen and (max-width: 1215px){.container.is-widescreen:not(.is-max-desktop){max-width:1152px}}@media screen and (max-width: 1407px){.container.is-fullhd:not(.is-max-desktop):not(.is-max-widescreen){max-width:1344px}}@media screen and (min-width: 1216px){.container:not(.is-max-desktop){max-width:1152px}}@media screen and (min-width: 1408px){.container:not(.is-max-desktop):not(.is-max-widescreen){max-width:1344px}}.content li+li{margin-top:0.25em}.content p:not(:last-child),.content dl:not(:last-child),.content ol:not(:last-child),.content ul:not(:last-child),.content blockquote:not(:last-child),.content pre:not(:last-child),.content table:not(:last-child){margin-bottom:1em}.content h1,.content h2,.content h3,.content h4,.content h5,.content h6{color:#222;font-weight:600;line-height:1.125}.content h1{font-size:2em;margin-bottom:0.5em}.content h1:not(:first-child){margin-top:1em}.content h2{font-size:1.75em;margin-bottom:0.5714em}.content h2:not(:first-child){margin-top:1.1428em}.content h3{font-size:1.5em;margin-bottom:0.6666em}.content h3:not(:first-child){margin-top:1.3333em}.content h4{font-size:1.25em;margin-bottom:0.8em}.content h5{font-size:1.125em;margin-bottom:0.8888em}.content h6{font-size:1em;margin-bottom:1em}.content blockquote{background-color:#f5f5f5;border-left:5px solid #dbdbdb;padding:1.25em 1.5em}.content ol{list-style-position:outside;margin-left:2em;margin-top:1em}.content ol:not([type]){list-style-type:decimal}.content ol.is-lower-alpha:not([type]){list-style-type:lower-alpha}.content ol.is-lower-roman:not([type]){list-style-type:lower-roman}.content ol.is-upper-alpha:not([type]){list-style-type:upper-alpha}.content ol.is-upper-roman:not([type]){list-style-type:upper-roman}.content ul{list-style:disc outside;margin-left:2em;margin-top:1em}.content ul ul{list-style-type:circle;margin-top:0.5em}.content ul ul ul{list-style-type:square}.content dd{margin-left:2em}.content figure{margin-left:2em;margin-right:2em;text-align:center}.content figure:not(:first-child){margin-top:2em}.content figure:not(:last-child){margin-bottom:2em}.content figure img{display:inline-block}.content figure figcaption{font-style:italic}.content pre{-webkit-overflow-scrolling:touch;overflow-x:auto;padding:0;white-space:pre;word-wrap:normal}.content sup,.content sub{font-size:75%}.content table{width:100%}.content table td,.content table th{border:1px solid #dbdbdb;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}.content table th{color:#222}.content table th:not([align]){text-align:inherit}.content table thead td,.content table thead th{border-width:0 0 2px;color:#222}.content table tfoot td,.content table tfoot th{border-width:2px 0 0;color:#222}.content table tbody tr:last-child td,.content table tbody tr:last-child th{border-bottom-width:0}.content .tabs li+li{margin-top:0}.content.is-small,#documenter .docs-sidebar form.docs-search>input.content{font-size:.75rem}.content.is-normal{font-size:1rem}.content.is-medium{font-size:1.25rem}.content.is-large{font-size:1.5rem}.icon{align-items:center;display:inline-flex;justify-content:center;height:1.5rem;width:1.5rem}.icon.is-small,#documenter .docs-sidebar form.docs-search>input.icon{height:1rem;width:1rem}.icon.is-medium{height:2rem;width:2rem}.icon.is-large{height:3rem;width:3rem}.icon-text{align-items:flex-start;color:inherit;display:inline-flex;flex-wrap:wrap;line-height:1.5rem;vertical-align:top}.icon-text .icon{flex-grow:0;flex-shrink:0}.icon-text .icon:not(:last-child){margin-right:.25em}.icon-text .icon:not(:first-child){margin-left:.25em}div.icon-text{display:flex}.image,#documenter .docs-sidebar .docs-logo>img{display:block;position:relative}.image img,#documenter .docs-sidebar .docs-logo>img img{display:block;height:auto;width:100%}.image img.is-rounded,#documenter .docs-sidebar .docs-logo>img img.is-rounded{border-radius:9999px}.image.is-fullwidth,#documenter .docs-sidebar .docs-logo>img.is-fullwidth{width:100%}.image.is-square img,#documenter .docs-sidebar .docs-logo>img.is-square img,.image.is-square .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,.image.is-1by1 img,#documenter .docs-sidebar .docs-logo>img.is-1by1 img,.image.is-1by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,.image.is-5by4 img,#documenter .docs-sidebar .docs-logo>img.is-5by4 img,.image.is-5by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,.image.is-4by3 img,#documenter .docs-sidebar .docs-logo>img.is-4by3 img,.image.is-4by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,.image.is-3by2 img,#documenter .docs-sidebar .docs-logo>img.is-3by2 img,.image.is-3by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,.image.is-5by3 img,#documenter .docs-sidebar .docs-logo>img.is-5by3 img,.image.is-5by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,.image.is-16by9 img,#documenter .docs-sidebar .docs-logo>img.is-16by9 img,.image.is-16by9 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,.image.is-2by1 img,#documenter .docs-sidebar .docs-logo>img.is-2by1 img,.image.is-2by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,.image.is-3by1 img,#documenter .docs-sidebar .docs-logo>img.is-3by1 img,.image.is-3by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,.image.is-4by5 img,#documenter .docs-sidebar .docs-logo>img.is-4by5 img,.image.is-4by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,.image.is-3by4 img,#documenter .docs-sidebar .docs-logo>img.is-3by4 img,.image.is-3by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,.image.is-2by3 img,#documenter .docs-sidebar .docs-logo>img.is-2by3 img,.image.is-2by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,.image.is-3by5 img,#documenter .docs-sidebar .docs-logo>img.is-3by5 img,.image.is-3by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,.image.is-9by16 img,#documenter .docs-sidebar .docs-logo>img.is-9by16 img,.image.is-9by16 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,.image.is-1by2 img,#documenter .docs-sidebar .docs-logo>img.is-1by2 img,.image.is-1by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,.image.is-1by3 img,#documenter .docs-sidebar .docs-logo>img.is-1by3 img,.image.is-1by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio{height:100%;width:100%}.image.is-square,#documenter .docs-sidebar .docs-logo>img.is-square,.image.is-1by1,#documenter .docs-sidebar .docs-logo>img.is-1by1{padding-top:100%}.image.is-5by4,#documenter .docs-sidebar .docs-logo>img.is-5by4{padding-top:80%}.image.is-4by3,#documenter .docs-sidebar .docs-logo>img.is-4by3{padding-top:75%}.image.is-3by2,#documenter .docs-sidebar .docs-logo>img.is-3by2{padding-top:66.6666%}.image.is-5by3,#documenter .docs-sidebar .docs-logo>img.is-5by3{padding-top:60%}.image.is-16by9,#documenter .docs-sidebar .docs-logo>img.is-16by9{padding-top:56.25%}.image.is-2by1,#documenter .docs-sidebar .docs-logo>img.is-2by1{padding-top:50%}.image.is-3by1,#documenter .docs-sidebar .docs-logo>img.is-3by1{padding-top:33.3333%}.image.is-4by5,#documenter .docs-sidebar .docs-logo>img.is-4by5{padding-top:125%}.image.is-3by4,#documenter .docs-sidebar .docs-logo>img.is-3by4{padding-top:133.3333%}.image.is-2by3,#documenter .docs-sidebar .docs-logo>img.is-2by3{padding-top:150%}.image.is-3by5,#documenter .docs-sidebar .docs-logo>img.is-3by5{padding-top:166.6666%}.image.is-9by16,#documenter .docs-sidebar .docs-logo>img.is-9by16{padding-top:177.7777%}.image.is-1by2,#documenter .docs-sidebar .docs-logo>img.is-1by2{padding-top:200%}.image.is-1by3,#documenter .docs-sidebar .docs-logo>img.is-1by3{padding-top:300%}.image.is-16x16,#documenter .docs-sidebar .docs-logo>img.is-16x16{height:16px;width:16px}.image.is-24x24,#documenter .docs-sidebar .docs-logo>img.is-24x24{height:24px;width:24px}.image.is-32x32,#documenter .docs-sidebar .docs-logo>img.is-32x32{height:32px;width:32px}.image.is-48x48,#documenter .docs-sidebar .docs-logo>img.is-48x48{height:48px;width:48px}.image.is-64x64,#documenter .docs-sidebar .docs-logo>img.is-64x64{height:64px;width:64px}.image.is-96x96,#documenter .docs-sidebar .docs-logo>img.is-96x96{height:96px;width:96px}.image.is-128x128,#documenter .docs-sidebar .docs-logo>img.is-128x128{height:128px;width:128px}.notification{background-color:#f5f5f5;border-radius:4px;position:relative;padding:1.25rem 2.5rem 1.25rem 1.5rem}.notification a:not(.button):not(.dropdown-item){color:currentColor;text-decoration:underline}.notification strong{color:currentColor}.notification code,.notification pre{background:#fff}.notification pre code{background:transparent}.notification>.delete{right:.5rem;position:absolute;top:0.5rem}.notification .title,.notification .subtitle,.notification .content{color:currentColor}.notification.is-white{background-color:#fff;color:#0a0a0a}.notification.is-black{background-color:#0a0a0a;color:#fff}.notification.is-light{background-color:#f5f5f5;color:rgba(0,0,0,0.7)}.notification.is-dark,.content kbd.notification{background-color:#363636;color:#fff}.notification.is-primary,.docstring>section>a.notification.docs-sourcelink{background-color:#4eb5de;color:#fff}.notification.is-primary.is-light,.docstring>section>a.notification.is-light.docs-sourcelink{background-color:#eef8fc;color:#1a6d8e}.notification.is-link{background-color:#2e63b8;color:#fff}.notification.is-link.is-light{background-color:#eff3fb;color:#3169c4}.notification.is-info{background-color:#209cee;color:#fff}.notification.is-info.is-light{background-color:#ecf7fe;color:#0e72b4}.notification.is-success{background-color:#22c35b;color:#fff}.notification.is-success.is-light{background-color:#eefcf3;color:#198f43}.notification.is-warning{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.notification.is-warning.is-light{background-color:#fffbeb;color:#947600}.notification.is-danger{background-color:#da0b00;color:#fff}.notification.is-danger.is-light{background-color:#ffeceb;color:#f50c00}.progress{-moz-appearance:none;-webkit-appearance:none;border:none;border-radius:9999px;display:block;height:1rem;overflow:hidden;padding:0;width:100%}.progress::-webkit-progress-bar{background-color:#ededed}.progress::-webkit-progress-value{background-color:#222}.progress::-moz-progress-bar{background-color:#222}.progress::-ms-fill{background-color:#222;border:none}.progress.is-white::-webkit-progress-value{background-color:#fff}.progress.is-white::-moz-progress-bar{background-color:#fff}.progress.is-white::-ms-fill{background-color:#fff}.progress.is-white:indeterminate{background-image:linear-gradient(to right, #fff 30%, #ededed 30%)}.progress.is-black::-webkit-progress-value{background-color:#0a0a0a}.progress.is-black::-moz-progress-bar{background-color:#0a0a0a}.progress.is-black::-ms-fill{background-color:#0a0a0a}.progress.is-black:indeterminate{background-image:linear-gradient(to right, #0a0a0a 30%, #ededed 30%)}.progress.is-light::-webkit-progress-value{background-color:#f5f5f5}.progress.is-light::-moz-progress-bar{background-color:#f5f5f5}.progress.is-light::-ms-fill{background-color:#f5f5f5}.progress.is-light:indeterminate{background-image:linear-gradient(to right, #f5f5f5 30%, #ededed 30%)}.progress.is-dark::-webkit-progress-value,.content kbd.progress::-webkit-progress-value{background-color:#363636}.progress.is-dark::-moz-progress-bar,.content kbd.progress::-moz-progress-bar{background-color:#363636}.progress.is-dark::-ms-fill,.content kbd.progress::-ms-fill{background-color:#363636}.progress.is-dark:indeterminate,.content kbd.progress:indeterminate{background-image:linear-gradient(to right, #363636 30%, #ededed 30%)}.progress.is-primary::-webkit-progress-value,.docstring>section>a.progress.docs-sourcelink::-webkit-progress-value{background-color:#4eb5de}.progress.is-primary::-moz-progress-bar,.docstring>section>a.progress.docs-sourcelink::-moz-progress-bar{background-color:#4eb5de}.progress.is-primary::-ms-fill,.docstring>section>a.progress.docs-sourcelink::-ms-fill{background-color:#4eb5de}.progress.is-primary:indeterminate,.docstring>section>a.progress.docs-sourcelink:indeterminate{background-image:linear-gradient(to right, #4eb5de 30%, #ededed 30%)}.progress.is-link::-webkit-progress-value{background-color:#2e63b8}.progress.is-link::-moz-progress-bar{background-color:#2e63b8}.progress.is-link::-ms-fill{background-color:#2e63b8}.progress.is-link:indeterminate{background-image:linear-gradient(to right, #2e63b8 30%, #ededed 30%)}.progress.is-info::-webkit-progress-value{background-color:#209cee}.progress.is-info::-moz-progress-bar{background-color:#209cee}.progress.is-info::-ms-fill{background-color:#209cee}.progress.is-info:indeterminate{background-image:linear-gradient(to right, #209cee 30%, #ededed 30%)}.progress.is-success::-webkit-progress-value{background-color:#22c35b}.progress.is-success::-moz-progress-bar{background-color:#22c35b}.progress.is-success::-ms-fill{background-color:#22c35b}.progress.is-success:indeterminate{background-image:linear-gradient(to right, #22c35b 30%, #ededed 30%)}.progress.is-warning::-webkit-progress-value{background-color:#ffdd57}.progress.is-warning::-moz-progress-bar{background-color:#ffdd57}.progress.is-warning::-ms-fill{background-color:#ffdd57}.progress.is-warning:indeterminate{background-image:linear-gradient(to right, #ffdd57 30%, #ededed 30%)}.progress.is-danger::-webkit-progress-value{background-color:#da0b00}.progress.is-danger::-moz-progress-bar{background-color:#da0b00}.progress.is-danger::-ms-fill{background-color:#da0b00}.progress.is-danger:indeterminate{background-image:linear-gradient(to right, #da0b00 30%, #ededed 30%)}.progress:indeterminate{animation-duration:1.5s;animation-iteration-count:infinite;animation-name:moveIndeterminate;animation-timing-function:linear;background-color:#ededed;background-image:linear-gradient(to right, #222 30%, #ededed 30%);background-position:top left;background-repeat:no-repeat;background-size:150% 150%}.progress:indeterminate::-webkit-progress-bar{background-color:transparent}.progress:indeterminate::-moz-progress-bar{background-color:transparent}.progress:indeterminate::-ms-fill{animation-name:none}.progress.is-small,#documenter .docs-sidebar form.docs-search>input.progress{height:.75rem}.progress.is-medium{height:1.25rem}.progress.is-large{height:1.5rem}@keyframes moveIndeterminate{from{background-position:200% 0}to{background-position:-200% 0}}.table{background-color:#fff;color:#222}.table td,.table th{border:1px solid #dbdbdb;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}.table td.is-white,.table th.is-white{background-color:#fff;border-color:#fff;color:#0a0a0a}.table td.is-black,.table th.is-black{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.table td.is-light,.table th.is-light{background-color:#f5f5f5;border-color:#f5f5f5;color:rgba(0,0,0,0.7)}.table td.is-dark,.table th.is-dark{background-color:#363636;border-color:#363636;color:#fff}.table td.is-primary,.table th.is-primary{background-color:#4eb5de;border-color:#4eb5de;color:#fff}.table td.is-link,.table th.is-link{background-color:#2e63b8;border-color:#2e63b8;color:#fff}.table td.is-info,.table th.is-info{background-color:#209cee;border-color:#209cee;color:#fff}.table td.is-success,.table th.is-success{background-color:#22c35b;border-color:#22c35b;color:#fff}.table td.is-warning,.table th.is-warning{background-color:#ffdd57;border-color:#ffdd57;color:rgba(0,0,0,0.7)}.table td.is-danger,.table th.is-danger{background-color:#da0b00;border-color:#da0b00;color:#fff}.table td.is-narrow,.table th.is-narrow{white-space:nowrap;width:1%}.table td.is-selected,.table th.is-selected{background-color:#4eb5de;color:#fff}.table td.is-selected a,.table td.is-selected strong,.table th.is-selected a,.table th.is-selected strong{color:currentColor}.table td.is-vcentered,.table th.is-vcentered{vertical-align:middle}.table th{color:#222}.table th:not([align]){text-align:left}.table tr.is-selected{background-color:#4eb5de;color:#fff}.table tr.is-selected a,.table tr.is-selected strong{color:currentColor}.table tr.is-selected td,.table tr.is-selected th{border-color:#fff;color:currentColor}.table thead{background-color:rgba(0,0,0,0)}.table thead td,.table thead th{border-width:0 0 2px;color:#222}.table tfoot{background-color:rgba(0,0,0,0)}.table tfoot td,.table tfoot th{border-width:2px 0 0;color:#222}.table tbody{background-color:rgba(0,0,0,0)}.table tbody tr:last-child td,.table tbody tr:last-child th{border-bottom-width:0}.table.is-bordered td,.table.is-bordered th{border-width:1px}.table.is-bordered tr:last-child td,.table.is-bordered tr:last-child th{border-bottom-width:1px}.table.is-fullwidth{width:100%}.table.is-hoverable tbody tr:not(.is-selected):hover{background-color:#fafafa}.table.is-hoverable.is-striped tbody tr:not(.is-selected):hover{background-color:#fafafa}.table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even){background-color:#f5f5f5}.table.is-narrow td,.table.is-narrow th{padding:0.25em 0.5em}.table.is-striped tbody tr:not(.is-selected):nth-child(even){background-color:#fafafa}.table-container{-webkit-overflow-scrolling:touch;overflow:auto;overflow-y:hidden;max-width:100%}.tags{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.tags .tag,.tags .content kbd,.content .tags kbd,.tags .docstring>section>a.docs-sourcelink{margin-bottom:0.5rem}.tags .tag:not(:last-child),.tags .content kbd:not(:last-child),.content .tags kbd:not(:last-child),.tags .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:.5rem}.tags:last-child{margin-bottom:-0.5rem}.tags:not(:last-child){margin-bottom:1rem}.tags.are-medium .tag:not(.is-normal):not(.is-large),.tags.are-medium .content kbd:not(.is-normal):not(.is-large),.content .tags.are-medium kbd:not(.is-normal):not(.is-large),.tags.are-medium .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-large){font-size:1rem}.tags.are-large .tag:not(.is-normal):not(.is-medium),.tags.are-large .content kbd:not(.is-normal):not(.is-medium),.content .tags.are-large kbd:not(.is-normal):not(.is-medium),.tags.are-large .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-medium){font-size:1.25rem}.tags.is-centered{justify-content:center}.tags.is-centered .tag,.tags.is-centered .content kbd,.content .tags.is-centered kbd,.tags.is-centered .docstring>section>a.docs-sourcelink{margin-right:0.25rem;margin-left:0.25rem}.tags.is-right{justify-content:flex-end}.tags.is-right .tag:not(:first-child),.tags.is-right .content kbd:not(:first-child),.content .tags.is-right kbd:not(:first-child),.tags.is-right .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0.5rem}.tags.is-right .tag:not(:last-child),.tags.is-right .content kbd:not(:last-child),.content .tags.is-right kbd:not(:last-child),.tags.is-right .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0}.tags.has-addons .tag,.tags.has-addons .content kbd,.content .tags.has-addons kbd,.tags.has-addons .docstring>section>a.docs-sourcelink{margin-right:0}.tags.has-addons .tag:not(:first-child),.tags.has-addons .content kbd:not(:first-child),.content .tags.has-addons kbd:not(:first-child),.tags.has-addons .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.tags.has-addons .tag:not(:last-child),.tags.has-addons .content kbd:not(:last-child),.content .tags.has-addons kbd:not(:last-child),.tags.has-addons .docstring>section>a.docs-sourcelink:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.tag:not(body),.content kbd:not(body),.docstring>section>a.docs-sourcelink:not(body){align-items:center;background-color:#f5f5f5;border-radius:4px;color:#222;display:inline-flex;font-size:.75rem;height:2em;justify-content:center;line-height:1.5;padding-left:0.75em;padding-right:0.75em;white-space:nowrap}.tag:not(body) .delete,.content kbd:not(body) .delete,.docstring>section>a.docs-sourcelink:not(body) .delete{margin-left:.25rem;margin-right:-.375rem}.tag.is-white:not(body),.content kbd.is-white:not(body),.docstring>section>a.docs-sourcelink.is-white:not(body){background-color:#fff;color:#0a0a0a}.tag.is-black:not(body),.content kbd.is-black:not(body),.docstring>section>a.docs-sourcelink.is-black:not(body){background-color:#0a0a0a;color:#fff}.tag.is-light:not(body),.content kbd.is-light:not(body),.docstring>section>a.docs-sourcelink.is-light:not(body){background-color:#f5f5f5;color:rgba(0,0,0,0.7)}.tag.is-dark:not(body),.content kbd:not(body),.docstring>section>a.docs-sourcelink.is-dark:not(body),.content .docstring>section>kbd:not(body){background-color:#363636;color:#fff}.tag.is-primary:not(body),.content kbd.is-primary:not(body),.docstring>section>a.docs-sourcelink:not(body){background-color:#4eb5de;color:#fff}.tag.is-primary.is-light:not(body),.content kbd.is-primary.is-light:not(body),.docstring>section>a.docs-sourcelink.is-light:not(body){background-color:#eef8fc;color:#1a6d8e}.tag.is-link:not(body),.content kbd.is-link:not(body),.docstring>section>a.docs-sourcelink.is-link:not(body){background-color:#2e63b8;color:#fff}.tag.is-link.is-light:not(body),.content kbd.is-link.is-light:not(body),.docstring>section>a.docs-sourcelink.is-link.is-light:not(body){background-color:#eff3fb;color:#3169c4}.tag.is-info:not(body),.content kbd.is-info:not(body),.docstring>section>a.docs-sourcelink.is-info:not(body){background-color:#209cee;color:#fff}.tag.is-info.is-light:not(body),.content kbd.is-info.is-light:not(body),.docstring>section>a.docs-sourcelink.is-info.is-light:not(body){background-color:#ecf7fe;color:#0e72b4}.tag.is-success:not(body),.content kbd.is-success:not(body),.docstring>section>a.docs-sourcelink.is-success:not(body){background-color:#22c35b;color:#fff}.tag.is-success.is-light:not(body),.content kbd.is-success.is-light:not(body),.docstring>section>a.docs-sourcelink.is-success.is-light:not(body){background-color:#eefcf3;color:#198f43}.tag.is-warning:not(body),.content kbd.is-warning:not(body),.docstring>section>a.docs-sourcelink.is-warning:not(body){background-color:#ffdd57;color:rgba(0,0,0,0.7)}.tag.is-warning.is-light:not(body),.content kbd.is-warning.is-light:not(body),.docstring>section>a.docs-sourcelink.is-warning.is-light:not(body){background-color:#fffbeb;color:#947600}.tag.is-danger:not(body),.content kbd.is-danger:not(body),.docstring>section>a.docs-sourcelink.is-danger:not(body){background-color:#da0b00;color:#fff}.tag.is-danger.is-light:not(body),.content kbd.is-danger.is-light:not(body),.docstring>section>a.docs-sourcelink.is-danger.is-light:not(body){background-color:#ffeceb;color:#f50c00}.tag.is-normal:not(body),.content kbd.is-normal:not(body),.docstring>section>a.docs-sourcelink.is-normal:not(body){font-size:.75rem}.tag.is-medium:not(body),.content kbd.is-medium:not(body),.docstring>section>a.docs-sourcelink.is-medium:not(body){font-size:1rem}.tag.is-large:not(body),.content kbd.is-large:not(body),.docstring>section>a.docs-sourcelink.is-large:not(body){font-size:1.25rem}.tag:not(body) .icon:first-child:not(:last-child),.content kbd:not(body) .icon:first-child:not(:last-child),.docstring>section>a.docs-sourcelink:not(body) .icon:first-child:not(:last-child){margin-left:-.375em;margin-right:.1875em}.tag:not(body) .icon:last-child:not(:first-child),.content kbd:not(body) .icon:last-child:not(:first-child),.docstring>section>a.docs-sourcelink:not(body) .icon:last-child:not(:first-child){margin-left:.1875em;margin-right:-.375em}.tag:not(body) .icon:first-child:last-child,.content kbd:not(body) .icon:first-child:last-child,.docstring>section>a.docs-sourcelink:not(body) .icon:first-child:last-child{margin-left:-.375em;margin-right:-.375em}.tag.is-delete:not(body),.content kbd.is-delete:not(body),.docstring>section>a.docs-sourcelink.is-delete:not(body){margin-left:1px;padding:0;position:relative;width:2em}.tag.is-delete:not(body)::before,.content kbd.is-delete:not(body)::before,.docstring>section>a.docs-sourcelink.is-delete:not(body)::before,.tag.is-delete:not(body)::after,.content kbd.is-delete:not(body)::after,.docstring>section>a.docs-sourcelink.is-delete:not(body)::after{background-color:currentColor;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.tag.is-delete:not(body)::before,.content kbd.is-delete:not(body)::before,.docstring>section>a.docs-sourcelink.is-delete:not(body)::before{height:1px;width:50%}.tag.is-delete:not(body)::after,.content kbd.is-delete:not(body)::after,.docstring>section>a.docs-sourcelink.is-delete:not(body)::after{height:50%;width:1px}.tag.is-delete:not(body):hover,.content kbd.is-delete:not(body):hover,.docstring>section>a.docs-sourcelink.is-delete:not(body):hover,.tag.is-delete:not(body):focus,.content kbd.is-delete:not(body):focus,.docstring>section>a.docs-sourcelink.is-delete:not(body):focus{background-color:#e8e8e8}.tag.is-delete:not(body):active,.content kbd.is-delete:not(body):active,.docstring>section>a.docs-sourcelink.is-delete:not(body):active{background-color:#dbdbdb}.tag.is-rounded:not(body),#documenter .docs-sidebar form.docs-search>input:not(body),.content kbd.is-rounded:not(body),#documenter .docs-sidebar .content form.docs-search>input:not(body),.docstring>section>a.docs-sourcelink.is-rounded:not(body){border-radius:9999px}a.tag:hover,.docstring>section>a.docs-sourcelink:hover{text-decoration:underline}.title,.subtitle{word-break:break-word}.title em,.title span,.subtitle em,.subtitle span{font-weight:inherit}.title sub,.subtitle sub{font-size:.75em}.title sup,.subtitle sup{font-size:.75em}.title .tag,.title .content kbd,.content .title kbd,.title .docstring>section>a.docs-sourcelink,.subtitle .tag,.subtitle .content kbd,.content .subtitle kbd,.subtitle .docstring>section>a.docs-sourcelink{vertical-align:middle}.title{color:#222;font-size:2rem;font-weight:600;line-height:1.125}.title strong{color:inherit;font-weight:inherit}.title:not(.is-spaced)+.subtitle{margin-top:-1.25rem}.title.is-1{font-size:3rem}.title.is-2{font-size:2.5rem}.title.is-3{font-size:2rem}.title.is-4{font-size:1.5rem}.title.is-5{font-size:1.25rem}.title.is-6{font-size:1rem}.title.is-7{font-size:.75rem}.subtitle{color:#222;font-size:1.25rem;font-weight:400;line-height:1.25}.subtitle strong{color:#222;font-weight:600}.subtitle:not(.is-spaced)+.title{margin-top:-1.25rem}.subtitle.is-1{font-size:3rem}.subtitle.is-2{font-size:2.5rem}.subtitle.is-3{font-size:2rem}.subtitle.is-4{font-size:1.5rem}.subtitle.is-5{font-size:1.25rem}.subtitle.is-6{font-size:1rem}.subtitle.is-7{font-size:.75rem}.heading{display:block;font-size:11px;letter-spacing:1px;margin-bottom:5px;text-transform:uppercase}.number{align-items:center;background-color:#f5f5f5;border-radius:9999px;display:inline-flex;font-size:1.25rem;height:2em;justify-content:center;margin-right:1.5rem;min-width:2.5em;padding:0.25rem 0.5rem;text-align:center;vertical-align:top}.select select,.textarea,.input,#documenter .docs-sidebar form.docs-search>input{background-color:#fff;border-color:#dbdbdb;border-radius:4px;color:#222}.select select::-moz-placeholder,.textarea::-moz-placeholder,.input::-moz-placeholder,#documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:#707070}.select select::-webkit-input-placeholder,.textarea::-webkit-input-placeholder,.input::-webkit-input-placeholder,#documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:#707070}.select select:-moz-placeholder,.textarea:-moz-placeholder,.input:-moz-placeholder,#documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:#707070}.select select:-ms-input-placeholder,.textarea:-ms-input-placeholder,.input:-ms-input-placeholder,#documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:#707070}.select select:hover,.textarea:hover,.input:hover,#documenter .docs-sidebar form.docs-search>input:hover,.select select.is-hovered,.is-hovered.textarea,.is-hovered.input,#documenter .docs-sidebar form.docs-search>input.is-hovered{border-color:#b5b5b5}.select select:focus,.textarea:focus,.input:focus,#documenter .docs-sidebar form.docs-search>input:focus,.select select.is-focused,.is-focused.textarea,.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.select select:active,.textarea:active,.input:active,#documenter .docs-sidebar form.docs-search>input:active,.select select.is-active,.is-active.textarea,.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{border-color:#2e63b8;box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.select select[disabled],.textarea[disabled],.input[disabled],#documenter .docs-sidebar form.docs-search>input[disabled],fieldset[disabled] .select select,.select fieldset[disabled] select,fieldset[disabled] .textarea,fieldset[disabled] .input,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input{background-color:#f5f5f5;border-color:#f5f5f5;box-shadow:none;color:#6b6b6b}.select select[disabled]::-moz-placeholder,.textarea[disabled]::-moz-placeholder,.input[disabled]::-moz-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]::-moz-placeholder,fieldset[disabled] .select select::-moz-placeholder,.select fieldset[disabled] select::-moz-placeholder,fieldset[disabled] .textarea::-moz-placeholder,fieldset[disabled] .input::-moz-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input::-moz-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input::-moz-placeholder{color:rgba(107,107,107,0.3)}.select select[disabled]::-webkit-input-placeholder,.textarea[disabled]::-webkit-input-placeholder,.input[disabled]::-webkit-input-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]::-webkit-input-placeholder,fieldset[disabled] .select select::-webkit-input-placeholder,.select fieldset[disabled] select::-webkit-input-placeholder,fieldset[disabled] .textarea::-webkit-input-placeholder,fieldset[disabled] .input::-webkit-input-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input::-webkit-input-placeholder{color:rgba(107,107,107,0.3)}.select select[disabled]:-moz-placeholder,.textarea[disabled]:-moz-placeholder,.input[disabled]:-moz-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]:-moz-placeholder,fieldset[disabled] .select select:-moz-placeholder,.select fieldset[disabled] select:-moz-placeholder,fieldset[disabled] .textarea:-moz-placeholder,fieldset[disabled] .input:-moz-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input:-moz-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input:-moz-placeholder{color:rgba(107,107,107,0.3)}.select select[disabled]:-ms-input-placeholder,.textarea[disabled]:-ms-input-placeholder,.input[disabled]:-ms-input-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]:-ms-input-placeholder,fieldset[disabled] .select select:-ms-input-placeholder,.select fieldset[disabled] select:-ms-input-placeholder,fieldset[disabled] .textarea:-ms-input-placeholder,fieldset[disabled] .input:-ms-input-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input:-ms-input-placeholder{color:rgba(107,107,107,0.3)}.textarea,.input,#documenter .docs-sidebar form.docs-search>input{box-shadow:inset 0 0.0625em 0.125em rgba(10,10,10,0.05);max-width:100%;width:100%}.textarea[readonly],.input[readonly],#documenter .docs-sidebar form.docs-search>input[readonly]{box-shadow:none}.is-white.textarea,.is-white.input,#documenter .docs-sidebar form.docs-search>input.is-white{border-color:#fff}.is-white.textarea:focus,.is-white.input:focus,#documenter .docs-sidebar form.docs-search>input.is-white:focus,.is-white.is-focused.textarea,.is-white.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-white.textarea:active,.is-white.input:active,#documenter .docs-sidebar form.docs-search>input.is-white:active,.is-white.is-active.textarea,.is-white.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}.is-black.textarea,.is-black.input,#documenter .docs-sidebar form.docs-search>input.is-black{border-color:#0a0a0a}.is-black.textarea:focus,.is-black.input:focus,#documenter .docs-sidebar form.docs-search>input.is-black:focus,.is-black.is-focused.textarea,.is-black.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-black.textarea:active,.is-black.input:active,#documenter .docs-sidebar form.docs-search>input.is-black:active,.is-black.is-active.textarea,.is-black.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}.is-light.textarea,.is-light.input,#documenter .docs-sidebar form.docs-search>input.is-light{border-color:#f5f5f5}.is-light.textarea:focus,.is-light.input:focus,#documenter .docs-sidebar form.docs-search>input.is-light:focus,.is-light.is-focused.textarea,.is-light.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-light.textarea:active,.is-light.input:active,#documenter .docs-sidebar form.docs-search>input.is-light:active,.is-light.is-active.textarea,.is-light.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}.is-dark.textarea,.content kbd.textarea,.is-dark.input,#documenter .docs-sidebar form.docs-search>input.is-dark,.content kbd.input{border-color:#363636}.is-dark.textarea:focus,.content kbd.textarea:focus,.is-dark.input:focus,#documenter .docs-sidebar form.docs-search>input.is-dark:focus,.content kbd.input:focus,.is-dark.is-focused.textarea,.content kbd.is-focused.textarea,.is-dark.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.content kbd.is-focused.input,#documenter .docs-sidebar .content form.docs-search>input.is-focused,.is-dark.textarea:active,.content kbd.textarea:active,.is-dark.input:active,#documenter .docs-sidebar form.docs-search>input.is-dark:active,.content kbd.input:active,.is-dark.is-active.textarea,.content kbd.is-active.textarea,.is-dark.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active,.content kbd.is-active.input,#documenter .docs-sidebar .content form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(54,54,54,0.25)}.is-primary.textarea,.docstring>section>a.textarea.docs-sourcelink,.is-primary.input,#documenter .docs-sidebar form.docs-search>input.is-primary,.docstring>section>a.input.docs-sourcelink{border-color:#4eb5de}.is-primary.textarea:focus,.docstring>section>a.textarea.docs-sourcelink:focus,.is-primary.input:focus,#documenter .docs-sidebar form.docs-search>input.is-primary:focus,.docstring>section>a.input.docs-sourcelink:focus,.is-primary.is-focused.textarea,.docstring>section>a.is-focused.textarea.docs-sourcelink,.is-primary.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.docstring>section>a.is-focused.input.docs-sourcelink,.is-primary.textarea:active,.docstring>section>a.textarea.docs-sourcelink:active,.is-primary.input:active,#documenter .docs-sidebar form.docs-search>input.is-primary:active,.docstring>section>a.input.docs-sourcelink:active,.is-primary.is-active.textarea,.docstring>section>a.is-active.textarea.docs-sourcelink,.is-primary.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active,.docstring>section>a.is-active.input.docs-sourcelink{box-shadow:0 0 0 0.125em rgba(78,181,222,0.25)}.is-link.textarea,.is-link.input,#documenter .docs-sidebar form.docs-search>input.is-link{border-color:#2e63b8}.is-link.textarea:focus,.is-link.input:focus,#documenter .docs-sidebar form.docs-search>input.is-link:focus,.is-link.is-focused.textarea,.is-link.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-link.textarea:active,.is-link.input:active,#documenter .docs-sidebar form.docs-search>input.is-link:active,.is-link.is-active.textarea,.is-link.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.is-info.textarea,.is-info.input,#documenter .docs-sidebar form.docs-search>input.is-info{border-color:#209cee}.is-info.textarea:focus,.is-info.input:focus,#documenter .docs-sidebar form.docs-search>input.is-info:focus,.is-info.is-focused.textarea,.is-info.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-info.textarea:active,.is-info.input:active,#documenter .docs-sidebar form.docs-search>input.is-info:active,.is-info.is-active.textarea,.is-info.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(32,156,238,0.25)}.is-success.textarea,.is-success.input,#documenter .docs-sidebar form.docs-search>input.is-success{border-color:#22c35b}.is-success.textarea:focus,.is-success.input:focus,#documenter .docs-sidebar form.docs-search>input.is-success:focus,.is-success.is-focused.textarea,.is-success.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-success.textarea:active,.is-success.input:active,#documenter .docs-sidebar form.docs-search>input.is-success:active,.is-success.is-active.textarea,.is-success.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(34,195,91,0.25)}.is-warning.textarea,.is-warning.input,#documenter .docs-sidebar form.docs-search>input.is-warning{border-color:#ffdd57}.is-warning.textarea:focus,.is-warning.input:focus,#documenter .docs-sidebar form.docs-search>input.is-warning:focus,.is-warning.is-focused.textarea,.is-warning.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-warning.textarea:active,.is-warning.input:active,#documenter .docs-sidebar form.docs-search>input.is-warning:active,.is-warning.is-active.textarea,.is-warning.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,221,87,0.25)}.is-danger.textarea,.is-danger.input,#documenter .docs-sidebar form.docs-search>input.is-danger{border-color:#da0b00}.is-danger.textarea:focus,.is-danger.input:focus,#documenter .docs-sidebar form.docs-search>input.is-danger:focus,.is-danger.is-focused.textarea,.is-danger.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-danger.textarea:active,.is-danger.input:active,#documenter .docs-sidebar form.docs-search>input.is-danger:active,.is-danger.is-active.textarea,.is-danger.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(218,11,0,0.25)}.is-small.textarea,.is-small.input,#documenter .docs-sidebar form.docs-search>input{border-radius:2px;font-size:.75rem}.is-medium.textarea,.is-medium.input,#documenter .docs-sidebar form.docs-search>input.is-medium{font-size:1.25rem}.is-large.textarea,.is-large.input,#documenter .docs-sidebar form.docs-search>input.is-large{font-size:1.5rem}.is-fullwidth.textarea,.is-fullwidth.input,#documenter .docs-sidebar form.docs-search>input.is-fullwidth{display:block;width:100%}.is-inline.textarea,.is-inline.input,#documenter .docs-sidebar form.docs-search>input.is-inline{display:inline;width:auto}.input.is-rounded,#documenter .docs-sidebar form.docs-search>input{border-radius:9999px;padding-left:calc(calc(0.75em - 1px) + 0.375em);padding-right:calc(calc(0.75em - 1px) + 0.375em)}.input.is-static,#documenter .docs-sidebar form.docs-search>input.is-static{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0}.textarea{display:block;max-width:100%;min-width:100%;padding:calc(0.75em - 1px);resize:vertical}.textarea:not([rows]){max-height:40em;min-height:8em}.textarea[rows]{height:initial}.textarea.has-fixed-size{resize:none}.radio,.checkbox{cursor:pointer;display:inline-block;line-height:1.25;position:relative}.radio input,.checkbox input{cursor:pointer}.radio:hover,.checkbox:hover{color:#222}.radio[disabled],.checkbox[disabled],fieldset[disabled] .radio,fieldset[disabled] .checkbox,.radio input[disabled],.checkbox input[disabled]{color:#6b6b6b;cursor:not-allowed}.radio+.radio{margin-left:.5em}.select{display:inline-block;max-width:100%;position:relative;vertical-align:top}.select:not(.is-multiple){height:2.5em}.select:not(.is-multiple):not(.is-loading)::after{border-color:#2e63b8;right:1.125em;z-index:4}.select.is-rounded select,#documenter .docs-sidebar form.docs-search>input.select select{border-radius:9999px;padding-left:1em}.select select{cursor:pointer;display:block;font-size:1em;max-width:100%;outline:none}.select select::-ms-expand{display:none}.select select[disabled]:hover,fieldset[disabled] .select select:hover{border-color:#f5f5f5}.select select:not([multiple]){padding-right:2.5em}.select select[multiple]{height:auto;padding:0}.select select[multiple] option{padding:0.5em 1em}.select:not(.is-multiple):not(.is-loading):hover::after{border-color:#222}.select.is-white:not(:hover)::after{border-color:#fff}.select.is-white select{border-color:#fff}.select.is-white select:hover,.select.is-white select.is-hovered{border-color:#f2f2f2}.select.is-white select:focus,.select.is-white select.is-focused,.select.is-white select:active,.select.is-white select.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}.select.is-black:not(:hover)::after{border-color:#0a0a0a}.select.is-black select{border-color:#0a0a0a}.select.is-black select:hover,.select.is-black select.is-hovered{border-color:#000}.select.is-black select:focus,.select.is-black select.is-focused,.select.is-black select:active,.select.is-black select.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}.select.is-light:not(:hover)::after{border-color:#f5f5f5}.select.is-light select{border-color:#f5f5f5}.select.is-light select:hover,.select.is-light select.is-hovered{border-color:#e8e8e8}.select.is-light select:focus,.select.is-light select.is-focused,.select.is-light select:active,.select.is-light select.is-active{box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}.select.is-dark:not(:hover)::after,.content kbd.select:not(:hover)::after{border-color:#363636}.select.is-dark select,.content kbd.select select{border-color:#363636}.select.is-dark select:hover,.content kbd.select select:hover,.select.is-dark select.is-hovered,.content kbd.select select.is-hovered{border-color:#292929}.select.is-dark select:focus,.content kbd.select select:focus,.select.is-dark select.is-focused,.content kbd.select select.is-focused,.select.is-dark select:active,.content kbd.select select:active,.select.is-dark select.is-active,.content kbd.select select.is-active{box-shadow:0 0 0 0.125em rgba(54,54,54,0.25)}.select.is-primary:not(:hover)::after,.docstring>section>a.select.docs-sourcelink:not(:hover)::after{border-color:#4eb5de}.select.is-primary select,.docstring>section>a.select.docs-sourcelink select{border-color:#4eb5de}.select.is-primary select:hover,.docstring>section>a.select.docs-sourcelink select:hover,.select.is-primary select.is-hovered,.docstring>section>a.select.docs-sourcelink select.is-hovered{border-color:#39acda}.select.is-primary select:focus,.docstring>section>a.select.docs-sourcelink select:focus,.select.is-primary select.is-focused,.docstring>section>a.select.docs-sourcelink select.is-focused,.select.is-primary select:active,.docstring>section>a.select.docs-sourcelink select:active,.select.is-primary select.is-active,.docstring>section>a.select.docs-sourcelink select.is-active{box-shadow:0 0 0 0.125em rgba(78,181,222,0.25)}.select.is-link:not(:hover)::after{border-color:#2e63b8}.select.is-link select{border-color:#2e63b8}.select.is-link select:hover,.select.is-link select.is-hovered{border-color:#2958a4}.select.is-link select:focus,.select.is-link select.is-focused,.select.is-link select:active,.select.is-link select.is-active{box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.select.is-info:not(:hover)::after{border-color:#209cee}.select.is-info select{border-color:#209cee}.select.is-info select:hover,.select.is-info select.is-hovered{border-color:#1190e3}.select.is-info select:focus,.select.is-info select.is-focused,.select.is-info select:active,.select.is-info select.is-active{box-shadow:0 0 0 0.125em rgba(32,156,238,0.25)}.select.is-success:not(:hover)::after{border-color:#22c35b}.select.is-success select{border-color:#22c35b}.select.is-success select:hover,.select.is-success select.is-hovered{border-color:#1ead51}.select.is-success select:focus,.select.is-success select.is-focused,.select.is-success select:active,.select.is-success select.is-active{box-shadow:0 0 0 0.125em rgba(34,195,91,0.25)}.select.is-warning:not(:hover)::after{border-color:#ffdd57}.select.is-warning select{border-color:#ffdd57}.select.is-warning select:hover,.select.is-warning select.is-hovered{border-color:#ffd83e}.select.is-warning select:focus,.select.is-warning select.is-focused,.select.is-warning select:active,.select.is-warning select.is-active{box-shadow:0 0 0 0.125em rgba(255,221,87,0.25)}.select.is-danger:not(:hover)::after{border-color:#da0b00}.select.is-danger select{border-color:#da0b00}.select.is-danger select:hover,.select.is-danger select.is-hovered{border-color:#c10a00}.select.is-danger select:focus,.select.is-danger select.is-focused,.select.is-danger select:active,.select.is-danger select.is-active{box-shadow:0 0 0 0.125em rgba(218,11,0,0.25)}.select.is-small,#documenter .docs-sidebar form.docs-search>input.select{border-radius:2px;font-size:.75rem}.select.is-medium{font-size:1.25rem}.select.is-large{font-size:1.5rem}.select.is-disabled::after{border-color:#6b6b6b !important;opacity:0.5}.select.is-fullwidth{width:100%}.select.is-fullwidth select{width:100%}.select.is-loading::after{margin-top:0;position:absolute;right:.625em;top:0.625em;transform:none}.select.is-loading.is-small:after,#documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.75rem}.select.is-loading.is-medium:after{font-size:1.25rem}.select.is-loading.is-large:after{font-size:1.5rem}.file{align-items:stretch;display:flex;justify-content:flex-start;position:relative}.file.is-white .file-cta{background-color:#fff;border-color:transparent;color:#0a0a0a}.file.is-white:hover .file-cta,.file.is-white.is-hovered .file-cta{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}.file.is-white:focus .file-cta,.file.is-white.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(255,255,255,0.25);color:#0a0a0a}.file.is-white:active .file-cta,.file.is-white.is-active .file-cta{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}.file.is-black .file-cta{background-color:#0a0a0a;border-color:transparent;color:#fff}.file.is-black:hover .file-cta,.file.is-black.is-hovered .file-cta{background-color:#040404;border-color:transparent;color:#fff}.file.is-black:focus .file-cta,.file.is-black.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(10,10,10,0.25);color:#fff}.file.is-black:active .file-cta,.file.is-black.is-active .file-cta{background-color:#000;border-color:transparent;color:#fff}.file.is-light .file-cta{background-color:#f5f5f5;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-light:hover .file-cta,.file.is-light.is-hovered .file-cta{background-color:#eee;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-light:focus .file-cta,.file.is-light.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(245,245,245,0.25);color:rgba(0,0,0,0.7)}.file.is-light:active .file-cta,.file.is-light.is-active .file-cta{background-color:#e8e8e8;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-dark .file-cta,.content kbd.file .file-cta{background-color:#363636;border-color:transparent;color:#fff}.file.is-dark:hover .file-cta,.content kbd.file:hover .file-cta,.file.is-dark.is-hovered .file-cta,.content kbd.file.is-hovered .file-cta{background-color:#2f2f2f;border-color:transparent;color:#fff}.file.is-dark:focus .file-cta,.content kbd.file:focus .file-cta,.file.is-dark.is-focused .file-cta,.content kbd.file.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(54,54,54,0.25);color:#fff}.file.is-dark:active .file-cta,.content kbd.file:active .file-cta,.file.is-dark.is-active .file-cta,.content kbd.file.is-active .file-cta{background-color:#292929;border-color:transparent;color:#fff}.file.is-primary .file-cta,.docstring>section>a.file.docs-sourcelink .file-cta{background-color:#4eb5de;border-color:transparent;color:#fff}.file.is-primary:hover .file-cta,.docstring>section>a.file.docs-sourcelink:hover .file-cta,.file.is-primary.is-hovered .file-cta,.docstring>section>a.file.is-hovered.docs-sourcelink .file-cta{background-color:#43b1dc;border-color:transparent;color:#fff}.file.is-primary:focus .file-cta,.docstring>section>a.file.docs-sourcelink:focus .file-cta,.file.is-primary.is-focused .file-cta,.docstring>section>a.file.is-focused.docs-sourcelink .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(78,181,222,0.25);color:#fff}.file.is-primary:active .file-cta,.docstring>section>a.file.docs-sourcelink:active .file-cta,.file.is-primary.is-active .file-cta,.docstring>section>a.file.is-active.docs-sourcelink .file-cta{background-color:#39acda;border-color:transparent;color:#fff}.file.is-link .file-cta{background-color:#2e63b8;border-color:transparent;color:#fff}.file.is-link:hover .file-cta,.file.is-link.is-hovered .file-cta{background-color:#2b5eae;border-color:transparent;color:#fff}.file.is-link:focus .file-cta,.file.is-link.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(46,99,184,0.25);color:#fff}.file.is-link:active .file-cta,.file.is-link.is-active .file-cta{background-color:#2958a4;border-color:transparent;color:#fff}.file.is-info .file-cta{background-color:#209cee;border-color:transparent;color:#fff}.file.is-info:hover .file-cta,.file.is-info.is-hovered .file-cta{background-color:#1497ed;border-color:transparent;color:#fff}.file.is-info:focus .file-cta,.file.is-info.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(32,156,238,0.25);color:#fff}.file.is-info:active .file-cta,.file.is-info.is-active .file-cta{background-color:#1190e3;border-color:transparent;color:#fff}.file.is-success .file-cta{background-color:#22c35b;border-color:transparent;color:#fff}.file.is-success:hover .file-cta,.file.is-success.is-hovered .file-cta{background-color:#20b856;border-color:transparent;color:#fff}.file.is-success:focus .file-cta,.file.is-success.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(34,195,91,0.25);color:#fff}.file.is-success:active .file-cta,.file.is-success.is-active .file-cta{background-color:#1ead51;border-color:transparent;color:#fff}.file.is-warning .file-cta{background-color:#ffdd57;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-warning:hover .file-cta,.file.is-warning.is-hovered .file-cta{background-color:#ffda4a;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-warning:focus .file-cta,.file.is-warning.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(255,221,87,0.25);color:rgba(0,0,0,0.7)}.file.is-warning:active .file-cta,.file.is-warning.is-active .file-cta{background-color:#ffd83e;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-danger .file-cta{background-color:#da0b00;border-color:transparent;color:#fff}.file.is-danger:hover .file-cta,.file.is-danger.is-hovered .file-cta{background-color:#cd0a00;border-color:transparent;color:#fff}.file.is-danger:focus .file-cta,.file.is-danger.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(218,11,0,0.25);color:#fff}.file.is-danger:active .file-cta,.file.is-danger.is-active .file-cta{background-color:#c10a00;border-color:transparent;color:#fff}.file.is-small,#documenter .docs-sidebar form.docs-search>input.file{font-size:.75rem}.file.is-normal{font-size:1rem}.file.is-medium{font-size:1.25rem}.file.is-medium .file-icon .fa{font-size:21px}.file.is-large{font-size:1.5rem}.file.is-large .file-icon .fa{font-size:28px}.file.has-name .file-cta{border-bottom-right-radius:0;border-top-right-radius:0}.file.has-name .file-name{border-bottom-left-radius:0;border-top-left-radius:0}.file.has-name.is-empty .file-cta{border-radius:4px}.file.has-name.is-empty .file-name{display:none}.file.is-boxed .file-label{flex-direction:column}.file.is-boxed .file-cta{flex-direction:column;height:auto;padding:1em 3em}.file.is-boxed .file-name{border-width:0 1px 1px}.file.is-boxed .file-icon{height:1.5em;width:1.5em}.file.is-boxed .file-icon .fa{font-size:21px}.file.is-boxed.is-small .file-icon .fa,#documenter .docs-sidebar form.docs-search>input.is-boxed .file-icon .fa{font-size:14px}.file.is-boxed.is-medium .file-icon .fa{font-size:28px}.file.is-boxed.is-large .file-icon .fa{font-size:35px}.file.is-boxed.has-name .file-cta{border-radius:4px 4px 0 0}.file.is-boxed.has-name .file-name{border-radius:0 0 4px 4px;border-width:0 1px 1px}.file.is-centered{justify-content:center}.file.is-fullwidth .file-label{width:100%}.file.is-fullwidth .file-name{flex-grow:1;max-width:none}.file.is-right{justify-content:flex-end}.file.is-right .file-cta{border-radius:0 4px 4px 0}.file.is-right .file-name{border-radius:4px 0 0 4px;border-width:1px 0 1px 1px;order:-1}.file-label{align-items:stretch;display:flex;cursor:pointer;justify-content:flex-start;overflow:hidden;position:relative}.file-label:hover .file-cta{background-color:#eee;color:#222}.file-label:hover .file-name{border-color:#d5d5d5}.file-label:active .file-cta{background-color:#e8e8e8;color:#222}.file-label:active .file-name{border-color:#cfcfcf}.file-input{height:100%;left:0;opacity:0;outline:none;position:absolute;top:0;width:100%}.file-cta,.file-name{border-color:#dbdbdb;border-radius:4px;font-size:1em;padding-left:1em;padding-right:1em;white-space:nowrap}.file-cta{background-color:#f5f5f5;color:#222}.file-name{border-color:#dbdbdb;border-style:solid;border-width:1px 1px 1px 0;display:block;max-width:16em;overflow:hidden;text-align:inherit;text-overflow:ellipsis}.file-icon{align-items:center;display:flex;height:1em;justify-content:center;margin-right:.5em;width:1em}.file-icon .fa{font-size:14px}.label{color:#222;display:block;font-size:1rem;font-weight:700}.label:not(:last-child){margin-bottom:0.5em}.label.is-small,#documenter .docs-sidebar form.docs-search>input.label{font-size:.75rem}.label.is-medium{font-size:1.25rem}.label.is-large{font-size:1.5rem}.help{display:block;font-size:.75rem;margin-top:0.25rem}.help.is-white{color:#fff}.help.is-black{color:#0a0a0a}.help.is-light{color:#f5f5f5}.help.is-dark,.content kbd.help{color:#363636}.help.is-primary,.docstring>section>a.help.docs-sourcelink{color:#4eb5de}.help.is-link{color:#2e63b8}.help.is-info{color:#209cee}.help.is-success{color:#22c35b}.help.is-warning{color:#ffdd57}.help.is-danger{color:#da0b00}.field:not(:last-child){margin-bottom:0.75rem}.field.has-addons{display:flex;justify-content:flex-start}.field.has-addons .control:not(:last-child){margin-right:-1px}.field.has-addons .control:not(:first-child):not(:last-child) .button,.field.has-addons .control:not(:first-child):not(:last-child) .input,.field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search>input,.field.has-addons .control:not(:first-child):not(:last-child) .select select{border-radius:0}.field.has-addons .control:first-child:not(:only-child) .button,.field.has-addons .control:first-child:not(:only-child) .input,.field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search>input,.field.has-addons .control:first-child:not(:only-child) .select select{border-bottom-right-radius:0;border-top-right-radius:0}.field.has-addons .control:last-child:not(:only-child) .button,.field.has-addons .control:last-child:not(:only-child) .input,.field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search>input,.field.has-addons .control:last-child:not(:only-child) .select select{border-bottom-left-radius:0;border-top-left-radius:0}.field.has-addons .control .button:not([disabled]):hover,.field.has-addons .control .button.is-hovered:not([disabled]),.field.has-addons .control .input:not([disabled]):hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):hover,.field.has-addons .control .input.is-hovered:not([disabled]),.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-hovered:not([disabled]),#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-hovered:not([disabled]),.field.has-addons .control .select select:not([disabled]):hover,.field.has-addons .control .select select.is-hovered:not([disabled]){z-index:2}.field.has-addons .control .button:not([disabled]):focus,.field.has-addons .control .button.is-focused:not([disabled]),.field.has-addons .control .button:not([disabled]):active,.field.has-addons .control .button.is-active:not([disabled]),.field.has-addons .control .input:not([disabled]):focus,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus,.field.has-addons .control .input.is-focused:not([disabled]),.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]),#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]),.field.has-addons .control .input:not([disabled]):active,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active,.field.has-addons .control .input.is-active:not([disabled]),.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]),#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]),.field.has-addons .control .select select:not([disabled]):focus,.field.has-addons .control .select select.is-focused:not([disabled]),.field.has-addons .control .select select:not([disabled]):active,.field.has-addons .control .select select.is-active:not([disabled]){z-index:3}.field.has-addons .control .button:not([disabled]):focus:hover,.field.has-addons .control .button.is-focused:not([disabled]):hover,.field.has-addons .control .button:not([disabled]):active:hover,.field.has-addons .control .button.is-active:not([disabled]):hover,.field.has-addons .control .input:not([disabled]):focus:hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus:hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus:hover,.field.has-addons .control .input.is-focused:not([disabled]):hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]):hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]):hover,.field.has-addons .control .input:not([disabled]):active:hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active:hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active:hover,.field.has-addons .control .input.is-active:not([disabled]):hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]):hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]):hover,.field.has-addons .control .select select:not([disabled]):focus:hover,.field.has-addons .control .select select.is-focused:not([disabled]):hover,.field.has-addons .control .select select:not([disabled]):active:hover,.field.has-addons .control .select select.is-active:not([disabled]):hover{z-index:4}.field.has-addons .control.is-expanded{flex-grow:1;flex-shrink:1}.field.has-addons.has-addons-centered{justify-content:center}.field.has-addons.has-addons-right{justify-content:flex-end}.field.has-addons.has-addons-fullwidth .control{flex-grow:1;flex-shrink:0}.field.is-grouped{display:flex;justify-content:flex-start}.field.is-grouped>.control{flex-shrink:0}.field.is-grouped>.control:not(:last-child){margin-bottom:0;margin-right:.75rem}.field.is-grouped>.control.is-expanded{flex-grow:1;flex-shrink:1}.field.is-grouped.is-grouped-centered{justify-content:center}.field.is-grouped.is-grouped-right{justify-content:flex-end}.field.is-grouped.is-grouped-multiline{flex-wrap:wrap}.field.is-grouped.is-grouped-multiline>.control:last-child,.field.is-grouped.is-grouped-multiline>.control:not(:last-child){margin-bottom:0.75rem}.field.is-grouped.is-grouped-multiline:last-child{margin-bottom:-0.75rem}.field.is-grouped.is-grouped-multiline:not(:last-child){margin-bottom:0}@media screen and (min-width: 769px),print{.field.is-horizontal{display:flex}}.field-label .label{font-size:inherit}@media screen and (max-width: 768px){.field-label{margin-bottom:0.5rem}}@media screen and (min-width: 769px),print{.field-label{flex-basis:0;flex-grow:1;flex-shrink:0;margin-right:1.5rem;text-align:right}.field-label.is-small,#documenter .docs-sidebar form.docs-search>input.field-label{font-size:.75rem;padding-top:0.375em}.field-label.is-normal{padding-top:0.375em}.field-label.is-medium{font-size:1.25rem;padding-top:0.375em}.field-label.is-large{font-size:1.5rem;padding-top:0.375em}}.field-body .field .field{margin-bottom:0}@media screen and (min-width: 769px),print{.field-body{display:flex;flex-basis:0;flex-grow:5;flex-shrink:1}.field-body .field{margin-bottom:0}.field-body>.field{flex-shrink:1}.field-body>.field:not(.is-narrow){flex-grow:1}.field-body>.field:not(:last-child){margin-right:.75rem}}.control{box-sizing:border-box;clear:both;font-size:1rem;position:relative;text-align:inherit}.control.has-icons-left .input:focus~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input:focus~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input:focus~.icon,.control.has-icons-left .select:focus~.icon,.control.has-icons-right .input:focus~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input:focus~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input:focus~.icon,.control.has-icons-right .select:focus~.icon{color:#222}.control.has-icons-left .input.is-small~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input~.icon,.control.has-icons-left .select.is-small~.icon,.control.has-icons-right .input.is-small~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input~.icon,.control.has-icons-right .select.is-small~.icon{font-size:.75rem}.control.has-icons-left .input.is-medium~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-medium~.icon,.control.has-icons-left .select.is-medium~.icon,.control.has-icons-right .input.is-medium~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-medium~.icon,.control.has-icons-right .select.is-medium~.icon{font-size:1.25rem}.control.has-icons-left .input.is-large~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-large~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-large~.icon,.control.has-icons-left .select.is-large~.icon,.control.has-icons-right .input.is-large~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-large~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-large~.icon,.control.has-icons-right .select.is-large~.icon{font-size:1.5rem}.control.has-icons-left .icon,.control.has-icons-right .icon{color:#dbdbdb;height:2.5em;pointer-events:none;position:absolute;top:0;width:2.5em;z-index:4}.control.has-icons-left .input,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input,.control.has-icons-left .select select{padding-left:2.5em}.control.has-icons-left .icon.is-left{left:0}.control.has-icons-right .input,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input,.control.has-icons-right .select select{padding-right:2.5em}.control.has-icons-right .icon.is-right{right:0}.control.is-loading::after{position:absolute !important;right:.625em;top:0.625em;z-index:4}.control.is-loading.is-small:after,#documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.75rem}.control.is-loading.is-medium:after{font-size:1.25rem}.control.is-loading.is-large:after{font-size:1.5rem}.breadcrumb{font-size:1rem;white-space:nowrap}.breadcrumb a{align-items:center;color:#2e63b8;display:flex;justify-content:center;padding:0 .75em}.breadcrumb a:hover{color:#363636}.breadcrumb li{align-items:center;display:flex}.breadcrumb li:first-child a{padding-left:0}.breadcrumb li.is-active a{color:#222;cursor:default;pointer-events:none}.breadcrumb li+li::before{color:#b5b5b5;content:"\0002f"}.breadcrumb ul,.breadcrumb ol{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:flex-start}.breadcrumb .icon:first-child{margin-right:.5em}.breadcrumb .icon:last-child{margin-left:.5em}.breadcrumb.is-centered ol,.breadcrumb.is-centered ul{justify-content:center}.breadcrumb.is-right ol,.breadcrumb.is-right ul{justify-content:flex-end}.breadcrumb.is-small,#documenter .docs-sidebar form.docs-search>input.breadcrumb{font-size:.75rem}.breadcrumb.is-medium{font-size:1.25rem}.breadcrumb.is-large{font-size:1.5rem}.breadcrumb.has-arrow-separator li+li::before{content:"\02192"}.breadcrumb.has-bullet-separator li+li::before{content:"\02022"}.breadcrumb.has-dot-separator li+li::before{content:"\000b7"}.breadcrumb.has-succeeds-separator li+li::before{content:"\0227B"}.card{background-color:#fff;border-radius:.25rem;box-shadow:#bbb;color:#222;max-width:100%;position:relative}.card-footer:first-child,.card-content:first-child,.card-header:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card-footer:last-child,.card-content:last-child,.card-header:last-child{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.card-header{background-color:rgba(0,0,0,0);align-items:stretch;box-shadow:0 0.125em 0.25em rgba(10,10,10,0.1);display:flex}.card-header-title{align-items:center;color:#222;display:flex;flex-grow:1;font-weight:700;padding:0.75rem 1rem}.card-header-title.is-centered{justify-content:center}.card-header-icon{-moz-appearance:none;-webkit-appearance:none;appearance:none;background:none;border:none;color:currentColor;font-family:inherit;font-size:1em;margin:0;padding:0;align-items:center;cursor:pointer;display:flex;justify-content:center;padding:0.75rem 1rem}.card-image{display:block;position:relative}.card-image:first-child img{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card-image:last-child img{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.card-content{background-color:rgba(0,0,0,0);padding:1.5rem}.card-footer{background-color:rgba(0,0,0,0);border-top:1px solid #ededed;align-items:stretch;display:flex}.card-footer-item{align-items:center;display:flex;flex-basis:0;flex-grow:1;flex-shrink:0;justify-content:center;padding:.75rem}.card-footer-item:not(:last-child){border-right:1px solid #ededed}.card .media:not(:last-child){margin-bottom:1.5rem}.dropdown{display:inline-flex;position:relative;vertical-align:top}.dropdown.is-active .dropdown-menu,.dropdown.is-hoverable:hover .dropdown-menu{display:block}.dropdown.is-right .dropdown-menu{left:auto;right:0}.dropdown.is-up .dropdown-menu{bottom:100%;padding-bottom:4px;padding-top:initial;top:auto}.dropdown-menu{display:none;left:0;min-width:12rem;padding-top:4px;position:absolute;top:100%;z-index:20}.dropdown-content{background-color:#fff;border-radius:4px;box-shadow:#bbb;padding-bottom:.5rem;padding-top:.5rem}.dropdown-item{color:#222;display:block;font-size:0.875rem;line-height:1.5;padding:0.375rem 1rem;position:relative}a.dropdown-item,button.dropdown-item{padding-right:3rem;text-align:inherit;white-space:nowrap;width:100%}a.dropdown-item:hover,button.dropdown-item:hover{background-color:#f5f5f5;color:#0a0a0a}a.dropdown-item.is-active,button.dropdown-item.is-active{background-color:#2e63b8;color:#fff}.dropdown-divider{background-color:#ededed;border:none;display:block;height:1px;margin:0.5rem 0}.level{align-items:center;justify-content:space-between}.level code{border-radius:4px}.level img{display:inline-block;vertical-align:top}.level.is-mobile{display:flex}.level.is-mobile .level-left,.level.is-mobile .level-right{display:flex}.level.is-mobile .level-left+.level-right{margin-top:0}.level.is-mobile .level-item:not(:last-child){margin-bottom:0;margin-right:.75rem}.level.is-mobile .level-item:not(.is-narrow){flex-grow:1}@media screen and (min-width: 769px),print{.level{display:flex}.level>.level-item:not(.is-narrow){flex-grow:1}}.level-item{align-items:center;display:flex;flex-basis:auto;flex-grow:0;flex-shrink:0;justify-content:center}.level-item .title,.level-item .subtitle{margin-bottom:0}@media screen and (max-width: 768px){.level-item:not(:last-child){margin-bottom:.75rem}}.level-left,.level-right{flex-basis:auto;flex-grow:0;flex-shrink:0}.level-left .level-item.is-flexible,.level-right .level-item.is-flexible{flex-grow:1}@media screen and (min-width: 769px),print{.level-left .level-item:not(:last-child),.level-right .level-item:not(:last-child){margin-right:.75rem}}.level-left{align-items:center;justify-content:flex-start}@media screen and (max-width: 768px){.level-left+.level-right{margin-top:1.5rem}}@media screen and (min-width: 769px),print{.level-left{display:flex}}.level-right{align-items:center;justify-content:flex-end}@media screen and (min-width: 769px),print{.level-right{display:flex}}.media{align-items:flex-start;display:flex;text-align:inherit}.media .content:not(:last-child){margin-bottom:.75rem}.media .media{border-top:1px solid rgba(219,219,219,0.5);display:flex;padding-top:.75rem}.media .media .content:not(:last-child),.media .media .control:not(:last-child){margin-bottom:.5rem}.media .media .media{padding-top:.5rem}.media .media .media+.media{margin-top:.5rem}.media+.media{border-top:1px solid rgba(219,219,219,0.5);margin-top:1rem;padding-top:1rem}.media.is-large+.media{margin-top:1.5rem;padding-top:1.5rem}.media-left,.media-right{flex-basis:auto;flex-grow:0;flex-shrink:0}.media-left{margin-right:1rem}.media-right{margin-left:1rem}.media-content{flex-basis:auto;flex-grow:1;flex-shrink:1;text-align:inherit}@media screen and (max-width: 768px){.media-content{overflow-x:auto}}.menu{font-size:1rem}.menu.is-small,#documenter .docs-sidebar form.docs-search>input.menu{font-size:.75rem}.menu.is-medium{font-size:1.25rem}.menu.is-large{font-size:1.5rem}.menu-list{line-height:1.25}.menu-list a{border-radius:2px;color:#222;display:block;padding:0.5em 0.75em}.menu-list a:hover{background-color:#f5f5f5;color:#222}.menu-list a.is-active{background-color:#2e63b8;color:#fff}.menu-list li ul{border-left:1px solid #dbdbdb;margin:.75em;padding-left:.75em}.menu-label{color:#6b6b6b;font-size:.75em;letter-spacing:.1em;text-transform:uppercase}.menu-label:not(:first-child){margin-top:1em}.menu-label:not(:last-child){margin-bottom:1em}.message{background-color:#f5f5f5;border-radius:4px;font-size:1rem}.message strong{color:currentColor}.message a:not(.button):not(.tag):not(.dropdown-item){color:currentColor;text-decoration:underline}.message.is-small,#documenter .docs-sidebar form.docs-search>input.message{font-size:.75rem}.message.is-medium{font-size:1.25rem}.message.is-large{font-size:1.5rem}.message.is-white{background-color:#fff}.message.is-white .message-header{background-color:#fff;color:#0a0a0a}.message.is-white .message-body{border-color:#fff}.message.is-black{background-color:#fafafa}.message.is-black .message-header{background-color:#0a0a0a;color:#fff}.message.is-black .message-body{border-color:#0a0a0a}.message.is-light{background-color:#fafafa}.message.is-light .message-header{background-color:#f5f5f5;color:rgba(0,0,0,0.7)}.message.is-light .message-body{border-color:#f5f5f5}.message.is-dark,.content kbd.message{background-color:#fafafa}.message.is-dark .message-header,.content kbd.message .message-header{background-color:#363636;color:#fff}.message.is-dark .message-body,.content kbd.message .message-body{border-color:#363636}.message.is-primary,.docstring>section>a.message.docs-sourcelink{background-color:#eef8fc}.message.is-primary .message-header,.docstring>section>a.message.docs-sourcelink .message-header{background-color:#4eb5de;color:#fff}.message.is-primary .message-body,.docstring>section>a.message.docs-sourcelink .message-body{border-color:#4eb5de;color:#1a6d8e}.message.is-link{background-color:#eff3fb}.message.is-link .message-header{background-color:#2e63b8;color:#fff}.message.is-link .message-body{border-color:#2e63b8;color:#3169c4}.message.is-info{background-color:#ecf7fe}.message.is-info .message-header{background-color:#209cee;color:#fff}.message.is-info .message-body{border-color:#209cee;color:#0e72b4}.message.is-success{background-color:#eefcf3}.message.is-success .message-header{background-color:#22c35b;color:#fff}.message.is-success .message-body{border-color:#22c35b;color:#198f43}.message.is-warning{background-color:#fffbeb}.message.is-warning .message-header{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.message.is-warning .message-body{border-color:#ffdd57;color:#947600}.message.is-danger{background-color:#ffeceb}.message.is-danger .message-header{background-color:#da0b00;color:#fff}.message.is-danger .message-body{border-color:#da0b00;color:#f50c00}.message-header{align-items:center;background-color:#222;border-radius:4px 4px 0 0;color:#fff;display:flex;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.75em 1em;position:relative}.message-header .delete{flex-grow:0;flex-shrink:0;margin-left:.75em}.message-header+.message-body{border-width:0;border-top-left-radius:0;border-top-right-radius:0}.message-body{border-color:#dbdbdb;border-radius:4px;border-style:solid;border-width:0 0 0 4px;color:#222;padding:1.25em 1.5em}.message-body code,.message-body pre{background-color:#fff}.message-body pre code{background-color:rgba(0,0,0,0)}.modal{align-items:center;display:none;flex-direction:column;justify-content:center;overflow:hidden;position:fixed;z-index:40}.modal.is-active{display:flex}.modal-background{background-color:rgba(10,10,10,0.86)}.modal-content,.modal-card{margin:0 20px;max-height:calc(100vh - 160px);overflow:auto;position:relative;width:100%}@media screen and (min-width: 769px){.modal-content,.modal-card{margin:0 auto;max-height:calc(100vh - 40px);width:640px}}.modal-close{background:none;height:40px;position:fixed;right:20px;top:20px;width:40px}.modal-card{display:flex;flex-direction:column;max-height:calc(100vh - 40px);overflow:hidden;-ms-overflow-y:visible}.modal-card-head,.modal-card-foot{align-items:center;background-color:#f5f5f5;display:flex;flex-shrink:0;justify-content:flex-start;padding:20px;position:relative}.modal-card-head{border-bottom:1px solid #dbdbdb;border-top-left-radius:6px;border-top-right-radius:6px}.modal-card-title{color:#222;flex-grow:1;flex-shrink:0;font-size:1.5rem;line-height:1}.modal-card-foot{border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top:1px solid #dbdbdb}.modal-card-foot .button:not(:last-child){margin-right:.5em}.modal-card-body{-webkit-overflow-scrolling:touch;background-color:#fff;flex-grow:1;flex-shrink:1;overflow:auto;padding:20px}.navbar{background-color:#fff;min-height:3.25rem;position:relative;z-index:30}.navbar.is-white{background-color:#fff;color:#0a0a0a}.navbar.is-white .navbar-brand>.navbar-item,.navbar.is-white .navbar-brand .navbar-link{color:#0a0a0a}.navbar.is-white .navbar-brand>a.navbar-item:focus,.navbar.is-white .navbar-brand>a.navbar-item:hover,.navbar.is-white .navbar-brand>a.navbar-item.is-active,.navbar.is-white .navbar-brand .navbar-link:focus,.navbar.is-white .navbar-brand .navbar-link:hover,.navbar.is-white .navbar-brand .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-brand .navbar-link::after{border-color:#0a0a0a}.navbar.is-white .navbar-burger{color:#0a0a0a}@media screen and (min-width: 1056px){.navbar.is-white .navbar-start>.navbar-item,.navbar.is-white .navbar-start .navbar-link,.navbar.is-white .navbar-end>.navbar-item,.navbar.is-white .navbar-end .navbar-link{color:#0a0a0a}.navbar.is-white .navbar-start>a.navbar-item:focus,.navbar.is-white .navbar-start>a.navbar-item:hover,.navbar.is-white .navbar-start>a.navbar-item.is-active,.navbar.is-white .navbar-start .navbar-link:focus,.navbar.is-white .navbar-start .navbar-link:hover,.navbar.is-white .navbar-start .navbar-link.is-active,.navbar.is-white .navbar-end>a.navbar-item:focus,.navbar.is-white .navbar-end>a.navbar-item:hover,.navbar.is-white .navbar-end>a.navbar-item.is-active,.navbar.is-white .navbar-end .navbar-link:focus,.navbar.is-white .navbar-end .navbar-link:hover,.navbar.is-white .navbar-end .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-start .navbar-link::after,.navbar.is-white .navbar-end .navbar-link::after{border-color:#0a0a0a}.navbar.is-white .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-white .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-dropdown a.navbar-item.is-active{background-color:#fff;color:#0a0a0a}}.navbar.is-black{background-color:#0a0a0a;color:#fff}.navbar.is-black .navbar-brand>.navbar-item,.navbar.is-black .navbar-brand .navbar-link{color:#fff}.navbar.is-black .navbar-brand>a.navbar-item:focus,.navbar.is-black .navbar-brand>a.navbar-item:hover,.navbar.is-black .navbar-brand>a.navbar-item.is-active,.navbar.is-black .navbar-brand .navbar-link:focus,.navbar.is-black .navbar-brand .navbar-link:hover,.navbar.is-black .navbar-brand .navbar-link.is-active{background-color:#000;color:#fff}.navbar.is-black .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-black .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-black .navbar-start>.navbar-item,.navbar.is-black .navbar-start .navbar-link,.navbar.is-black .navbar-end>.navbar-item,.navbar.is-black .navbar-end .navbar-link{color:#fff}.navbar.is-black .navbar-start>a.navbar-item:focus,.navbar.is-black .navbar-start>a.navbar-item:hover,.navbar.is-black .navbar-start>a.navbar-item.is-active,.navbar.is-black .navbar-start .navbar-link:focus,.navbar.is-black .navbar-start .navbar-link:hover,.navbar.is-black .navbar-start .navbar-link.is-active,.navbar.is-black .navbar-end>a.navbar-item:focus,.navbar.is-black .navbar-end>a.navbar-item:hover,.navbar.is-black .navbar-end>a.navbar-item.is-active,.navbar.is-black .navbar-end .navbar-link:focus,.navbar.is-black .navbar-end .navbar-link:hover,.navbar.is-black .navbar-end .navbar-link.is-active{background-color:#000;color:#fff}.navbar.is-black .navbar-start .navbar-link::after,.navbar.is-black .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-black .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-black .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link{background-color:#000;color:#fff}.navbar.is-black .navbar-dropdown a.navbar-item.is-active{background-color:#0a0a0a;color:#fff}}.navbar.is-light{background-color:#f5f5f5;color:rgba(0,0,0,0.7)}.navbar.is-light .navbar-brand>.navbar-item,.navbar.is-light .navbar-brand .navbar-link{color:rgba(0,0,0,0.7)}.navbar.is-light .navbar-brand>a.navbar-item:focus,.navbar.is-light .navbar-brand>a.navbar-item:hover,.navbar.is-light .navbar-brand>a.navbar-item.is-active,.navbar.is-light .navbar-brand .navbar-link:focus,.navbar.is-light .navbar-brand .navbar-link:hover,.navbar.is-light .navbar-brand .navbar-link.is-active{background-color:#e8e8e8;color:rgba(0,0,0,0.7)}.navbar.is-light .navbar-brand .navbar-link::after{border-color:rgba(0,0,0,0.7)}.navbar.is-light .navbar-burger{color:rgba(0,0,0,0.7)}@media screen and (min-width: 1056px){.navbar.is-light .navbar-start>.navbar-item,.navbar.is-light .navbar-start .navbar-link,.navbar.is-light .navbar-end>.navbar-item,.navbar.is-light .navbar-end .navbar-link{color:rgba(0,0,0,0.7)}.navbar.is-light .navbar-start>a.navbar-item:focus,.navbar.is-light .navbar-start>a.navbar-item:hover,.navbar.is-light .navbar-start>a.navbar-item.is-active,.navbar.is-light .navbar-start .navbar-link:focus,.navbar.is-light .navbar-start .navbar-link:hover,.navbar.is-light .navbar-start .navbar-link.is-active,.navbar.is-light .navbar-end>a.navbar-item:focus,.navbar.is-light .navbar-end>a.navbar-item:hover,.navbar.is-light .navbar-end>a.navbar-item.is-active,.navbar.is-light .navbar-end .navbar-link:focus,.navbar.is-light .navbar-end .navbar-link:hover,.navbar.is-light .navbar-end .navbar-link.is-active{background-color:#e8e8e8;color:rgba(0,0,0,0.7)}.navbar.is-light .navbar-start .navbar-link::after,.navbar.is-light .navbar-end .navbar-link::after{border-color:rgba(0,0,0,0.7)}.navbar.is-light .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-light .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link{background-color:#e8e8e8;color:rgba(0,0,0,0.7)}.navbar.is-light .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:rgba(0,0,0,0.7)}}.navbar.is-dark,.content kbd.navbar{background-color:#363636;color:#fff}.navbar.is-dark .navbar-brand>.navbar-item,.content kbd.navbar .navbar-brand>.navbar-item,.navbar.is-dark .navbar-brand .navbar-link,.content kbd.navbar .navbar-brand .navbar-link{color:#fff}.navbar.is-dark .navbar-brand>a.navbar-item:focus,.content kbd.navbar .navbar-brand>a.navbar-item:focus,.navbar.is-dark .navbar-brand>a.navbar-item:hover,.content kbd.navbar .navbar-brand>a.navbar-item:hover,.navbar.is-dark .navbar-brand>a.navbar-item.is-active,.content kbd.navbar .navbar-brand>a.navbar-item.is-active,.navbar.is-dark .navbar-brand .navbar-link:focus,.content kbd.navbar .navbar-brand .navbar-link:focus,.navbar.is-dark .navbar-brand .navbar-link:hover,.content kbd.navbar .navbar-brand .navbar-link:hover,.navbar.is-dark .navbar-brand .navbar-link.is-active,.content kbd.navbar .navbar-brand .navbar-link.is-active{background-color:#292929;color:#fff}.navbar.is-dark .navbar-brand .navbar-link::after,.content kbd.navbar .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-dark .navbar-burger,.content kbd.navbar .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-dark .navbar-start>.navbar-item,.content kbd.navbar .navbar-start>.navbar-item,.navbar.is-dark .navbar-start .navbar-link,.content kbd.navbar .navbar-start .navbar-link,.navbar.is-dark .navbar-end>.navbar-item,.content kbd.navbar .navbar-end>.navbar-item,.navbar.is-dark .navbar-end .navbar-link,.content kbd.navbar .navbar-end .navbar-link{color:#fff}.navbar.is-dark .navbar-start>a.navbar-item:focus,.content kbd.navbar .navbar-start>a.navbar-item:focus,.navbar.is-dark .navbar-start>a.navbar-item:hover,.content kbd.navbar .navbar-start>a.navbar-item:hover,.navbar.is-dark .navbar-start>a.navbar-item.is-active,.content kbd.navbar .navbar-start>a.navbar-item.is-active,.navbar.is-dark .navbar-start .navbar-link:focus,.content kbd.navbar .navbar-start .navbar-link:focus,.navbar.is-dark .navbar-start .navbar-link:hover,.content kbd.navbar .navbar-start .navbar-link:hover,.navbar.is-dark .navbar-start .navbar-link.is-active,.content kbd.navbar .navbar-start .navbar-link.is-active,.navbar.is-dark .navbar-end>a.navbar-item:focus,.content kbd.navbar .navbar-end>a.navbar-item:focus,.navbar.is-dark .navbar-end>a.navbar-item:hover,.content kbd.navbar .navbar-end>a.navbar-item:hover,.navbar.is-dark .navbar-end>a.navbar-item.is-active,.content kbd.navbar .navbar-end>a.navbar-item.is-active,.navbar.is-dark .navbar-end .navbar-link:focus,.content kbd.navbar .navbar-end .navbar-link:focus,.navbar.is-dark .navbar-end .navbar-link:hover,.content kbd.navbar .navbar-end .navbar-link:hover,.navbar.is-dark .navbar-end .navbar-link.is-active,.content kbd.navbar .navbar-end .navbar-link.is-active{background-color:#292929;color:#fff}.navbar.is-dark .navbar-start .navbar-link::after,.content kbd.navbar .navbar-start .navbar-link::after,.navbar.is-dark .navbar-end .navbar-link::after,.content kbd.navbar .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link,.content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link,.content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,.content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link{background-color:#292929;color:#fff}.navbar.is-dark .navbar-dropdown a.navbar-item.is-active,.content kbd.navbar .navbar-dropdown a.navbar-item.is-active{background-color:#363636;color:#fff}}.navbar.is-primary,.docstring>section>a.navbar.docs-sourcelink{background-color:#4eb5de;color:#fff}.navbar.is-primary .navbar-brand>.navbar-item,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>.navbar-item,.navbar.is-primary .navbar-brand .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link{color:#fff}.navbar.is-primary .navbar-brand>a.navbar-item:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:focus,.navbar.is-primary .navbar-brand>a.navbar-item:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:hover,.navbar.is-primary .navbar-brand>a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item.is-active,.navbar.is-primary .navbar-brand .navbar-link:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus,.navbar.is-primary .navbar-brand .navbar-link:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover,.navbar.is-primary .navbar-brand .navbar-link.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active{background-color:#39acda;color:#fff}.navbar.is-primary .navbar-brand .navbar-link::after,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-primary .navbar-burger,.docstring>section>a.navbar.docs-sourcelink .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-primary .navbar-start>.navbar-item,.docstring>section>a.navbar.docs-sourcelink .navbar-start>.navbar-item,.navbar.is-primary .navbar-start .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link,.navbar.is-primary .navbar-end>.navbar-item,.docstring>section>a.navbar.docs-sourcelink .navbar-end>.navbar-item,.navbar.is-primary .navbar-end .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link{color:#fff}.navbar.is-primary .navbar-start>a.navbar-item:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:focus,.navbar.is-primary .navbar-start>a.navbar-item:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:hover,.navbar.is-primary .navbar-start>a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item.is-active,.navbar.is-primary .navbar-start .navbar-link:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:focus,.navbar.is-primary .navbar-start .navbar-link:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:hover,.navbar.is-primary .navbar-start .navbar-link.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active,.navbar.is-primary .navbar-end>a.navbar-item:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:focus,.navbar.is-primary .navbar-end>a.navbar-item:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:hover,.navbar.is-primary .navbar-end>a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item.is-active,.navbar.is-primary .navbar-end .navbar-link:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:focus,.navbar.is-primary .navbar-end .navbar-link:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:hover,.navbar.is-primary .navbar-end .navbar-link.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active{background-color:#39acda;color:#fff}.navbar.is-primary .navbar-start .navbar-link::after,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link::after,.navbar.is-primary .navbar-end .navbar-link::after,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link{background-color:#39acda;color:#fff}.navbar.is-primary .navbar-dropdown a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#4eb5de;color:#fff}}.navbar.is-link{background-color:#2e63b8;color:#fff}.navbar.is-link .navbar-brand>.navbar-item,.navbar.is-link .navbar-brand .navbar-link{color:#fff}.navbar.is-link .navbar-brand>a.navbar-item:focus,.navbar.is-link .navbar-brand>a.navbar-item:hover,.navbar.is-link .navbar-brand>a.navbar-item.is-active,.navbar.is-link .navbar-brand .navbar-link:focus,.navbar.is-link .navbar-brand .navbar-link:hover,.navbar.is-link .navbar-brand .navbar-link.is-active{background-color:#2958a4;color:#fff}.navbar.is-link .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-link .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-link .navbar-start>.navbar-item,.navbar.is-link .navbar-start .navbar-link,.navbar.is-link .navbar-end>.navbar-item,.navbar.is-link .navbar-end .navbar-link{color:#fff}.navbar.is-link .navbar-start>a.navbar-item:focus,.navbar.is-link .navbar-start>a.navbar-item:hover,.navbar.is-link .navbar-start>a.navbar-item.is-active,.navbar.is-link .navbar-start .navbar-link:focus,.navbar.is-link .navbar-start .navbar-link:hover,.navbar.is-link .navbar-start .navbar-link.is-active,.navbar.is-link .navbar-end>a.navbar-item:focus,.navbar.is-link .navbar-end>a.navbar-item:hover,.navbar.is-link .navbar-end>a.navbar-item.is-active,.navbar.is-link .navbar-end .navbar-link:focus,.navbar.is-link .navbar-end .navbar-link:hover,.navbar.is-link .navbar-end .navbar-link.is-active{background-color:#2958a4;color:#fff}.navbar.is-link .navbar-start .navbar-link::after,.navbar.is-link .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-link .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link{background-color:#2958a4;color:#fff}.navbar.is-link .navbar-dropdown a.navbar-item.is-active{background-color:#2e63b8;color:#fff}}.navbar.is-info{background-color:#209cee;color:#fff}.navbar.is-info .navbar-brand>.navbar-item,.navbar.is-info .navbar-brand .navbar-link{color:#fff}.navbar.is-info .navbar-brand>a.navbar-item:focus,.navbar.is-info .navbar-brand>a.navbar-item:hover,.navbar.is-info .navbar-brand>a.navbar-item.is-active,.navbar.is-info .navbar-brand .navbar-link:focus,.navbar.is-info .navbar-brand .navbar-link:hover,.navbar.is-info .navbar-brand .navbar-link.is-active{background-color:#1190e3;color:#fff}.navbar.is-info .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-info .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-info .navbar-start>.navbar-item,.navbar.is-info .navbar-start .navbar-link,.navbar.is-info .navbar-end>.navbar-item,.navbar.is-info .navbar-end .navbar-link{color:#fff}.navbar.is-info .navbar-start>a.navbar-item:focus,.navbar.is-info .navbar-start>a.navbar-item:hover,.navbar.is-info .navbar-start>a.navbar-item.is-active,.navbar.is-info .navbar-start .navbar-link:focus,.navbar.is-info .navbar-start .navbar-link:hover,.navbar.is-info .navbar-start .navbar-link.is-active,.navbar.is-info .navbar-end>a.navbar-item:focus,.navbar.is-info .navbar-end>a.navbar-item:hover,.navbar.is-info .navbar-end>a.navbar-item.is-active,.navbar.is-info .navbar-end .navbar-link:focus,.navbar.is-info .navbar-end .navbar-link:hover,.navbar.is-info .navbar-end .navbar-link.is-active{background-color:#1190e3;color:#fff}.navbar.is-info .navbar-start .navbar-link::after,.navbar.is-info .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-info .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link{background-color:#1190e3;color:#fff}.navbar.is-info .navbar-dropdown a.navbar-item.is-active{background-color:#209cee;color:#fff}}.navbar.is-success{background-color:#22c35b;color:#fff}.navbar.is-success .navbar-brand>.navbar-item,.navbar.is-success .navbar-brand .navbar-link{color:#fff}.navbar.is-success .navbar-brand>a.navbar-item:focus,.navbar.is-success .navbar-brand>a.navbar-item:hover,.navbar.is-success .navbar-brand>a.navbar-item.is-active,.navbar.is-success .navbar-brand .navbar-link:focus,.navbar.is-success .navbar-brand .navbar-link:hover,.navbar.is-success .navbar-brand .navbar-link.is-active{background-color:#1ead51;color:#fff}.navbar.is-success .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-success .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-success .navbar-start>.navbar-item,.navbar.is-success .navbar-start .navbar-link,.navbar.is-success .navbar-end>.navbar-item,.navbar.is-success .navbar-end .navbar-link{color:#fff}.navbar.is-success .navbar-start>a.navbar-item:focus,.navbar.is-success .navbar-start>a.navbar-item:hover,.navbar.is-success .navbar-start>a.navbar-item.is-active,.navbar.is-success .navbar-start .navbar-link:focus,.navbar.is-success .navbar-start .navbar-link:hover,.navbar.is-success .navbar-start .navbar-link.is-active,.navbar.is-success .navbar-end>a.navbar-item:focus,.navbar.is-success .navbar-end>a.navbar-item:hover,.navbar.is-success .navbar-end>a.navbar-item.is-active,.navbar.is-success .navbar-end .navbar-link:focus,.navbar.is-success .navbar-end .navbar-link:hover,.navbar.is-success .navbar-end .navbar-link.is-active{background-color:#1ead51;color:#fff}.navbar.is-success .navbar-start .navbar-link::after,.navbar.is-success .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-success .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-success .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link{background-color:#1ead51;color:#fff}.navbar.is-success .navbar-dropdown a.navbar-item.is-active{background-color:#22c35b;color:#fff}}.navbar.is-warning{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-brand>.navbar-item,.navbar.is-warning .navbar-brand .navbar-link{color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-brand>a.navbar-item:focus,.navbar.is-warning .navbar-brand>a.navbar-item:hover,.navbar.is-warning .navbar-brand>a.navbar-item.is-active,.navbar.is-warning .navbar-brand .navbar-link:focus,.navbar.is-warning .navbar-brand .navbar-link:hover,.navbar.is-warning .navbar-brand .navbar-link.is-active{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-brand .navbar-link::after{border-color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-burger{color:rgba(0,0,0,0.7)}@media screen and (min-width: 1056px){.navbar.is-warning .navbar-start>.navbar-item,.navbar.is-warning .navbar-start .navbar-link,.navbar.is-warning .navbar-end>.navbar-item,.navbar.is-warning .navbar-end .navbar-link{color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-start>a.navbar-item:focus,.navbar.is-warning .navbar-start>a.navbar-item:hover,.navbar.is-warning .navbar-start>a.navbar-item.is-active,.navbar.is-warning .navbar-start .navbar-link:focus,.navbar.is-warning .navbar-start .navbar-link:hover,.navbar.is-warning .navbar-start .navbar-link.is-active,.navbar.is-warning .navbar-end>a.navbar-item:focus,.navbar.is-warning .navbar-end>a.navbar-item:hover,.navbar.is-warning .navbar-end>a.navbar-item.is-active,.navbar.is-warning .navbar-end .navbar-link:focus,.navbar.is-warning .navbar-end .navbar-link:hover,.navbar.is-warning .navbar-end .navbar-link.is-active{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-start .navbar-link::after,.navbar.is-warning .navbar-end .navbar-link::after{border-color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-dropdown a.navbar-item.is-active{background-color:#ffdd57;color:rgba(0,0,0,0.7)}}.navbar.is-danger{background-color:#da0b00;color:#fff}.navbar.is-danger .navbar-brand>.navbar-item,.navbar.is-danger .navbar-brand .navbar-link{color:#fff}.navbar.is-danger .navbar-brand>a.navbar-item:focus,.navbar.is-danger .navbar-brand>a.navbar-item:hover,.navbar.is-danger .navbar-brand>a.navbar-item.is-active,.navbar.is-danger .navbar-brand .navbar-link:focus,.navbar.is-danger .navbar-brand .navbar-link:hover,.navbar.is-danger .navbar-brand .navbar-link.is-active{background-color:#c10a00;color:#fff}.navbar.is-danger .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-danger .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-danger .navbar-start>.navbar-item,.navbar.is-danger .navbar-start .navbar-link,.navbar.is-danger .navbar-end>.navbar-item,.navbar.is-danger .navbar-end .navbar-link{color:#fff}.navbar.is-danger .navbar-start>a.navbar-item:focus,.navbar.is-danger .navbar-start>a.navbar-item:hover,.navbar.is-danger .navbar-start>a.navbar-item.is-active,.navbar.is-danger .navbar-start .navbar-link:focus,.navbar.is-danger .navbar-start .navbar-link:hover,.navbar.is-danger .navbar-start .navbar-link.is-active,.navbar.is-danger .navbar-end>a.navbar-item:focus,.navbar.is-danger .navbar-end>a.navbar-item:hover,.navbar.is-danger .navbar-end>a.navbar-item.is-active,.navbar.is-danger .navbar-end .navbar-link:focus,.navbar.is-danger .navbar-end .navbar-link:hover,.navbar.is-danger .navbar-end .navbar-link.is-active{background-color:#c10a00;color:#fff}.navbar.is-danger .navbar-start .navbar-link::after,.navbar.is-danger .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link{background-color:#c10a00;color:#fff}.navbar.is-danger .navbar-dropdown a.navbar-item.is-active{background-color:#da0b00;color:#fff}}.navbar>.container{align-items:stretch;display:flex;min-height:3.25rem;width:100%}.navbar.has-shadow{box-shadow:0 2px 0 0 #f5f5f5}.navbar.is-fixed-bottom,.navbar.is-fixed-top{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom{bottom:0}.navbar.is-fixed-bottom.has-shadow{box-shadow:0 -2px 0 0 #f5f5f5}.navbar.is-fixed-top{top:0}html.has-navbar-fixed-top,body.has-navbar-fixed-top{padding-top:3.25rem}html.has-navbar-fixed-bottom,body.has-navbar-fixed-bottom{padding-bottom:3.25rem}.navbar-brand,.navbar-tabs{align-items:stretch;display:flex;flex-shrink:0;min-height:3.25rem}.navbar-brand a.navbar-item:focus,.navbar-brand a.navbar-item:hover{background-color:transparent}.navbar-tabs{-webkit-overflow-scrolling:touch;max-width:100vw;overflow-x:auto;overflow-y:hidden}.navbar-burger{color:#222;-moz-appearance:none;-webkit-appearance:none;appearance:none;background:none;border:none;cursor:pointer;display:block;height:3.25rem;position:relative;width:3.25rem;margin-left:auto}.navbar-burger span{background-color:currentColor;display:block;height:1px;left:calc(50% - 8px);position:absolute;transform-origin:center;transition-duration:86ms;transition-property:background-color, opacity, transform;transition-timing-function:ease-out;width:16px}.navbar-burger span:nth-child(1){top:calc(50% - 6px)}.navbar-burger span:nth-child(2){top:calc(50% - 1px)}.navbar-burger span:nth-child(3){top:calc(50% + 4px)}.navbar-burger:hover{background-color:rgba(0,0,0,0.05)}.navbar-burger.is-active span:nth-child(1){transform:translateY(5px) rotate(45deg)}.navbar-burger.is-active span:nth-child(2){opacity:0}.navbar-burger.is-active span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}.navbar-menu{display:none}.navbar-item,.navbar-link{color:#222;display:block;line-height:1.5;padding:0.5rem 0.75rem;position:relative}.navbar-item .icon:only-child,.navbar-link .icon:only-child{margin-left:-0.25rem;margin-right:-0.25rem}a.navbar-item,.navbar-link{cursor:pointer}a.navbar-item:focus,a.navbar-item:focus-within,a.navbar-item:hover,a.navbar-item.is-active,.navbar-link:focus,.navbar-link:focus-within,.navbar-link:hover,.navbar-link.is-active{background-color:#fafafa;color:#2e63b8}.navbar-item{flex-grow:0;flex-shrink:0}.navbar-item img{max-height:1.75rem}.navbar-item.has-dropdown{padding:0}.navbar-item.is-expanded{flex-grow:1;flex-shrink:1}.navbar-item.is-tab{border-bottom:1px solid transparent;min-height:3.25rem;padding-bottom:calc(0.5rem - 1px)}.navbar-item.is-tab:focus,.navbar-item.is-tab:hover{background-color:rgba(0,0,0,0);border-bottom-color:#2e63b8}.navbar-item.is-tab.is-active{background-color:rgba(0,0,0,0);border-bottom-color:#2e63b8;border-bottom-style:solid;border-bottom-width:3px;color:#2e63b8;padding-bottom:calc(0.5rem - 3px)}.navbar-content{flex-grow:1;flex-shrink:1}.navbar-link:not(.is-arrowless){padding-right:2.5em}.navbar-link:not(.is-arrowless)::after{border-color:#2e63b8;margin-top:-0.375em;right:1.125em}.navbar-dropdown{font-size:0.875rem;padding-bottom:0.5rem;padding-top:0.5rem}.navbar-dropdown .navbar-item{padding-left:1.5rem;padding-right:1.5rem}.navbar-divider{background-color:#f5f5f5;border:none;display:none;height:2px;margin:0.5rem 0}@media screen and (max-width: 1055px){.navbar>.container{display:block}.navbar-brand .navbar-item,.navbar-tabs .navbar-item{align-items:center;display:flex}.navbar-link::after{display:none}.navbar-menu{background-color:#fff;box-shadow:0 8px 16px rgba(10,10,10,0.1);padding:0.5rem 0}.navbar-menu.is-active{display:block}.navbar.is-fixed-bottom-touch,.navbar.is-fixed-top-touch{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom-touch{bottom:0}.navbar.is-fixed-bottom-touch.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}.navbar.is-fixed-top-touch{top:0}.navbar.is-fixed-top .navbar-menu,.navbar.is-fixed-top-touch .navbar-menu{-webkit-overflow-scrolling:touch;max-height:calc(100vh - 3.25rem);overflow:auto}html.has-navbar-fixed-top-touch,body.has-navbar-fixed-top-touch{padding-top:3.25rem}html.has-navbar-fixed-bottom-touch,body.has-navbar-fixed-bottom-touch{padding-bottom:3.25rem}}@media screen and (min-width: 1056px){.navbar,.navbar-menu,.navbar-start,.navbar-end{align-items:stretch;display:flex}.navbar{min-height:3.25rem}.navbar.is-spaced{padding:1rem 2rem}.navbar.is-spaced .navbar-start,.navbar.is-spaced .navbar-end{align-items:center}.navbar.is-spaced a.navbar-item,.navbar.is-spaced .navbar-link{border-radius:4px}.navbar.is-transparent a.navbar-item:focus,.navbar.is-transparent a.navbar-item:hover,.navbar.is-transparent a.navbar-item.is-active,.navbar.is-transparent .navbar-link:focus,.navbar.is-transparent .navbar-link:hover,.navbar.is-transparent .navbar-link.is-active{background-color:transparent !important}.navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link{background-color:transparent !important}.navbar.is-transparent .navbar-dropdown a.navbar-item:focus,.navbar.is-transparent .navbar-dropdown a.navbar-item:hover{background-color:#f5f5f5;color:#0a0a0a}.navbar.is-transparent .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#2e63b8}.navbar-burger{display:none}.navbar-item,.navbar-link{align-items:center;display:flex}.navbar-item.has-dropdown{align-items:stretch}.navbar-item.has-dropdown-up .navbar-link::after{transform:rotate(135deg) translate(0.25em, -0.25em)}.navbar-item.has-dropdown-up .navbar-dropdown{border-bottom:2px solid #dbdbdb;border-radius:6px 6px 0 0;border-top:none;bottom:100%;box-shadow:0 -8px 8px rgba(10,10,10,0.1);top:auto}.navbar-item.is-active .navbar-dropdown,.navbar-item.is-hoverable:focus .navbar-dropdown,.navbar-item.is-hoverable:focus-within .navbar-dropdown,.navbar-item.is-hoverable:hover .navbar-dropdown{display:block}.navbar.is-spaced .navbar-item.is-active .navbar-dropdown,.navbar-item.is-active .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-hoverable:focus .navbar-dropdown,.navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-hoverable:focus-within .navbar-dropdown,.navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown,.navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed{opacity:1;pointer-events:auto;transform:translateY(0)}.navbar-menu{flex-grow:1;flex-shrink:0}.navbar-start{justify-content:flex-start;margin-right:auto}.navbar-end{justify-content:flex-end;margin-left:auto}.navbar-dropdown{background-color:#fff;border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top:2px solid #dbdbdb;box-shadow:0 8px 8px rgba(10,10,10,0.1);display:none;font-size:0.875rem;left:0;min-width:100%;position:absolute;top:100%;z-index:20}.navbar-dropdown .navbar-item{padding:0.375rem 1rem;white-space:nowrap}.navbar-dropdown a.navbar-item{padding-right:3rem}.navbar-dropdown a.navbar-item:focus,.navbar-dropdown a.navbar-item:hover{background-color:#f5f5f5;color:#0a0a0a}.navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#2e63b8}.navbar.is-spaced .navbar-dropdown,.navbar-dropdown.is-boxed{border-radius:6px;border-top:none;box-shadow:0 8px 8px rgba(10,10,10,0.1), 0 0 0 1px rgba(10,10,10,0.1);display:block;opacity:0;pointer-events:none;top:calc(100% + (-4px));transform:translateY(-5px);transition-duration:86ms;transition-property:opacity, transform}.navbar-dropdown.is-right{left:auto;right:0}.navbar-divider{display:block}.navbar>.container .navbar-brand,.container>.navbar .navbar-brand{margin-left:-.75rem}.navbar>.container .navbar-menu,.container>.navbar .navbar-menu{margin-right:-.75rem}.navbar.is-fixed-bottom-desktop,.navbar.is-fixed-top-desktop{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom-desktop{bottom:0}.navbar.is-fixed-bottom-desktop.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}.navbar.is-fixed-top-desktop{top:0}html.has-navbar-fixed-top-desktop,body.has-navbar-fixed-top-desktop{padding-top:3.25rem}html.has-navbar-fixed-bottom-desktop,body.has-navbar-fixed-bottom-desktop{padding-bottom:3.25rem}html.has-spaced-navbar-fixed-top,body.has-spaced-navbar-fixed-top{padding-top:5.25rem}html.has-spaced-navbar-fixed-bottom,body.has-spaced-navbar-fixed-bottom{padding-bottom:5.25rem}a.navbar-item.is-active,.navbar-link.is-active{color:#0a0a0a}a.navbar-item.is-active:not(:focus):not(:hover),.navbar-link.is-active:not(:focus):not(:hover){background-color:rgba(0,0,0,0)}.navbar-item.has-dropdown:focus .navbar-link,.navbar-item.has-dropdown:hover .navbar-link,.navbar-item.has-dropdown.is-active .navbar-link{background-color:#fafafa}}.hero.is-fullheight-with-navbar{min-height:calc(100vh - 3.25rem)}.pagination{font-size:1rem;margin:-.25rem}.pagination.is-small,#documenter .docs-sidebar form.docs-search>input.pagination{font-size:.75rem}.pagination.is-medium{font-size:1.25rem}.pagination.is-large{font-size:1.5rem}.pagination.is-rounded .pagination-previous,#documenter .docs-sidebar form.docs-search>input.pagination .pagination-previous,.pagination.is-rounded .pagination-next,#documenter .docs-sidebar form.docs-search>input.pagination .pagination-next{padding-left:1em;padding-right:1em;border-radius:9999px}.pagination.is-rounded .pagination-link,#documenter .docs-sidebar form.docs-search>input.pagination .pagination-link{border-radius:9999px}.pagination,.pagination-list{align-items:center;display:flex;justify-content:center;text-align:center}.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis{font-size:1em;justify-content:center;margin:.25rem;padding-left:.5em;padding-right:.5em;text-align:center}.pagination-previous,.pagination-next,.pagination-link{border-color:#dbdbdb;color:#222;min-width:2.5em}.pagination-previous:hover,.pagination-next:hover,.pagination-link:hover{border-color:#b5b5b5;color:#363636}.pagination-previous:focus,.pagination-next:focus,.pagination-link:focus{border-color:#3c5dcd}.pagination-previous:active,.pagination-next:active,.pagination-link:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2)}.pagination-previous[disabled],.pagination-previous.is-disabled,.pagination-next[disabled],.pagination-next.is-disabled,.pagination-link[disabled],.pagination-link.is-disabled{background-color:#dbdbdb;border-color:#dbdbdb;box-shadow:none;color:#6b6b6b;opacity:0.5}.pagination-previous,.pagination-next{padding-left:.75em;padding-right:.75em;white-space:nowrap}.pagination-link.is-current{background-color:#2e63b8;border-color:#2e63b8;color:#fff}.pagination-ellipsis{color:#b5b5b5;pointer-events:none}.pagination-list{flex-wrap:wrap}.pagination-list li{list-style:none}@media screen and (max-width: 768px){.pagination{flex-wrap:wrap}.pagination-previous,.pagination-next{flex-grow:1;flex-shrink:1}.pagination-list li{flex-grow:1;flex-shrink:1}}@media screen and (min-width: 769px),print{.pagination-list{flex-grow:1;flex-shrink:1;justify-content:flex-start;order:1}.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis{margin-bottom:0;margin-top:0}.pagination-previous{order:2}.pagination-next{order:3}.pagination{justify-content:space-between;margin-bottom:0;margin-top:0}.pagination.is-centered .pagination-previous{order:1}.pagination.is-centered .pagination-list{justify-content:center;order:2}.pagination.is-centered .pagination-next{order:3}.pagination.is-right .pagination-previous{order:1}.pagination.is-right .pagination-next{order:2}.pagination.is-right .pagination-list{justify-content:flex-end;order:3}}.panel{border-radius:6px;box-shadow:#bbb;font-size:1rem}.panel:not(:last-child){margin-bottom:1.5rem}.panel.is-white .panel-heading{background-color:#fff;color:#0a0a0a}.panel.is-white .panel-tabs a.is-active{border-bottom-color:#fff}.panel.is-white .panel-block.is-active .panel-icon{color:#fff}.panel.is-black .panel-heading{background-color:#0a0a0a;color:#fff}.panel.is-black .panel-tabs a.is-active{border-bottom-color:#0a0a0a}.panel.is-black .panel-block.is-active .panel-icon{color:#0a0a0a}.panel.is-light .panel-heading{background-color:#f5f5f5;color:rgba(0,0,0,0.7)}.panel.is-light .panel-tabs a.is-active{border-bottom-color:#f5f5f5}.panel.is-light .panel-block.is-active .panel-icon{color:#f5f5f5}.panel.is-dark .panel-heading,.content kbd.panel .panel-heading{background-color:#363636;color:#fff}.panel.is-dark .panel-tabs a.is-active,.content kbd.panel .panel-tabs a.is-active{border-bottom-color:#363636}.panel.is-dark .panel-block.is-active .panel-icon,.content kbd.panel .panel-block.is-active .panel-icon{color:#363636}.panel.is-primary .panel-heading,.docstring>section>a.panel.docs-sourcelink .panel-heading{background-color:#4eb5de;color:#fff}.panel.is-primary .panel-tabs a.is-active,.docstring>section>a.panel.docs-sourcelink .panel-tabs a.is-active{border-bottom-color:#4eb5de}.panel.is-primary .panel-block.is-active .panel-icon,.docstring>section>a.panel.docs-sourcelink .panel-block.is-active .panel-icon{color:#4eb5de}.panel.is-link .panel-heading{background-color:#2e63b8;color:#fff}.panel.is-link .panel-tabs a.is-active{border-bottom-color:#2e63b8}.panel.is-link .panel-block.is-active .panel-icon{color:#2e63b8}.panel.is-info .panel-heading{background-color:#209cee;color:#fff}.panel.is-info .panel-tabs a.is-active{border-bottom-color:#209cee}.panel.is-info .panel-block.is-active .panel-icon{color:#209cee}.panel.is-success .panel-heading{background-color:#22c35b;color:#fff}.panel.is-success .panel-tabs a.is-active{border-bottom-color:#22c35b}.panel.is-success .panel-block.is-active .panel-icon{color:#22c35b}.panel.is-warning .panel-heading{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.panel.is-warning .panel-tabs a.is-active{border-bottom-color:#ffdd57}.panel.is-warning .panel-block.is-active .panel-icon{color:#ffdd57}.panel.is-danger .panel-heading{background-color:#da0b00;color:#fff}.panel.is-danger .panel-tabs a.is-active{border-bottom-color:#da0b00}.panel.is-danger .panel-block.is-active .panel-icon{color:#da0b00}.panel-tabs:not(:last-child),.panel-block:not(:last-child){border-bottom:1px solid #ededed}.panel-heading{background-color:#ededed;border-radius:6px 6px 0 0;color:#222;font-size:1.25em;font-weight:700;line-height:1.25;padding:0.75em 1em}.panel-tabs{align-items:flex-end;display:flex;font-size:.875em;justify-content:center}.panel-tabs a{border-bottom:1px solid #dbdbdb;margin-bottom:-1px;padding:0.5em}.panel-tabs a.is-active{border-bottom-color:#4a4a4a;color:#363636}.panel-list a{color:#222}.panel-list a:hover{color:#2e63b8}.panel-block{align-items:center;color:#222;display:flex;justify-content:flex-start;padding:0.5em 0.75em}.panel-block input[type="checkbox"]{margin-right:.75em}.panel-block>.control{flex-grow:1;flex-shrink:1;width:100%}.panel-block.is-wrapped{flex-wrap:wrap}.panel-block.is-active{border-left-color:#2e63b8;color:#363636}.panel-block.is-active .panel-icon{color:#2e63b8}.panel-block:last-child{border-bottom-left-radius:6px;border-bottom-right-radius:6px}a.panel-block,label.panel-block{cursor:pointer}a.panel-block:hover,label.panel-block:hover{background-color:#f5f5f5}.panel-icon{display:inline-block;font-size:14px;height:1em;line-height:1em;text-align:center;vertical-align:top;width:1em;color:#6b6b6b;margin-right:.75em}.panel-icon .fa{font-size:inherit;line-height:inherit}.tabs{-webkit-overflow-scrolling:touch;align-items:stretch;display:flex;font-size:1rem;justify-content:space-between;overflow:hidden;overflow-x:auto;white-space:nowrap}.tabs a{align-items:center;border-bottom-color:#dbdbdb;border-bottom-style:solid;border-bottom-width:1px;color:#222;display:flex;justify-content:center;margin-bottom:-1px;padding:0.5em 1em;vertical-align:top}.tabs a:hover{border-bottom-color:#222;color:#222}.tabs li{display:block}.tabs li.is-active a{border-bottom-color:#2e63b8;color:#2e63b8}.tabs ul{align-items:center;border-bottom-color:#dbdbdb;border-bottom-style:solid;border-bottom-width:1px;display:flex;flex-grow:1;flex-shrink:0;justify-content:flex-start}.tabs ul.is-left{padding-right:0.75em}.tabs ul.is-center{flex:none;justify-content:center;padding-left:0.75em;padding-right:0.75em}.tabs ul.is-right{justify-content:flex-end;padding-left:0.75em}.tabs .icon:first-child{margin-right:.5em}.tabs .icon:last-child{margin-left:.5em}.tabs.is-centered ul{justify-content:center}.tabs.is-right ul{justify-content:flex-end}.tabs.is-boxed a{border:1px solid transparent;border-radius:4px 4px 0 0}.tabs.is-boxed a:hover{background-color:#f5f5f5;border-bottom-color:#dbdbdb}.tabs.is-boxed li.is-active a{background-color:#fff;border-color:#dbdbdb;border-bottom-color:rgba(0,0,0,0) !important}.tabs.is-fullwidth li{flex-grow:1;flex-shrink:0}.tabs.is-toggle a{border-color:#dbdbdb;border-style:solid;border-width:1px;margin-bottom:0;position:relative}.tabs.is-toggle a:hover{background-color:#f5f5f5;border-color:#b5b5b5;z-index:2}.tabs.is-toggle li+li{margin-left:-1px}.tabs.is-toggle li:first-child a{border-top-left-radius:4px;border-bottom-left-radius:4px}.tabs.is-toggle li:last-child a{border-top-right-radius:4px;border-bottom-right-radius:4px}.tabs.is-toggle li.is-active a{background-color:#2e63b8;border-color:#2e63b8;color:#fff;z-index:1}.tabs.is-toggle ul{border-bottom:none}.tabs.is-toggle.is-toggle-rounded li:first-child a{border-bottom-left-radius:9999px;border-top-left-radius:9999px;padding-left:1.25em}.tabs.is-toggle.is-toggle-rounded li:last-child a{border-bottom-right-radius:9999px;border-top-right-radius:9999px;padding-right:1.25em}.tabs.is-small,#documenter .docs-sidebar form.docs-search>input.tabs{font-size:.75rem}.tabs.is-medium{font-size:1.25rem}.tabs.is-large{font-size:1.5rem}.column{display:block;flex-basis:0;flex-grow:1;flex-shrink:1;padding:.75rem}.columns.is-mobile>.column.is-narrow{flex:none;width:unset}.columns.is-mobile>.column.is-full{flex:none;width:100%}.columns.is-mobile>.column.is-three-quarters{flex:none;width:75%}.columns.is-mobile>.column.is-two-thirds{flex:none;width:66.6666%}.columns.is-mobile>.column.is-half{flex:none;width:50%}.columns.is-mobile>.column.is-one-third{flex:none;width:33.3333%}.columns.is-mobile>.column.is-one-quarter{flex:none;width:25%}.columns.is-mobile>.column.is-one-fifth{flex:none;width:20%}.columns.is-mobile>.column.is-two-fifths{flex:none;width:40%}.columns.is-mobile>.column.is-three-fifths{flex:none;width:60%}.columns.is-mobile>.column.is-four-fifths{flex:none;width:80%}.columns.is-mobile>.column.is-offset-three-quarters{margin-left:75%}.columns.is-mobile>.column.is-offset-two-thirds{margin-left:66.6666%}.columns.is-mobile>.column.is-offset-half{margin-left:50%}.columns.is-mobile>.column.is-offset-one-third{margin-left:33.3333%}.columns.is-mobile>.column.is-offset-one-quarter{margin-left:25%}.columns.is-mobile>.column.is-offset-one-fifth{margin-left:20%}.columns.is-mobile>.column.is-offset-two-fifths{margin-left:40%}.columns.is-mobile>.column.is-offset-three-fifths{margin-left:60%}.columns.is-mobile>.column.is-offset-four-fifths{margin-left:80%}.columns.is-mobile>.column.is-0{flex:none;width:0%}.columns.is-mobile>.column.is-offset-0{margin-left:0%}.columns.is-mobile>.column.is-1{flex:none;width:8.33333337%}.columns.is-mobile>.column.is-offset-1{margin-left:8.33333337%}.columns.is-mobile>.column.is-2{flex:none;width:16.66666674%}.columns.is-mobile>.column.is-offset-2{margin-left:16.66666674%}.columns.is-mobile>.column.is-3{flex:none;width:25%}.columns.is-mobile>.column.is-offset-3{margin-left:25%}.columns.is-mobile>.column.is-4{flex:none;width:33.33333337%}.columns.is-mobile>.column.is-offset-4{margin-left:33.33333337%}.columns.is-mobile>.column.is-5{flex:none;width:41.66666674%}.columns.is-mobile>.column.is-offset-5{margin-left:41.66666674%}.columns.is-mobile>.column.is-6{flex:none;width:50%}.columns.is-mobile>.column.is-offset-6{margin-left:50%}.columns.is-mobile>.column.is-7{flex:none;width:58.33333337%}.columns.is-mobile>.column.is-offset-7{margin-left:58.33333337%}.columns.is-mobile>.column.is-8{flex:none;width:66.66666674%}.columns.is-mobile>.column.is-offset-8{margin-left:66.66666674%}.columns.is-mobile>.column.is-9{flex:none;width:75%}.columns.is-mobile>.column.is-offset-9{margin-left:75%}.columns.is-mobile>.column.is-10{flex:none;width:83.33333337%}.columns.is-mobile>.column.is-offset-10{margin-left:83.33333337%}.columns.is-mobile>.column.is-11{flex:none;width:91.66666674%}.columns.is-mobile>.column.is-offset-11{margin-left:91.66666674%}.columns.is-mobile>.column.is-12{flex:none;width:100%}.columns.is-mobile>.column.is-offset-12{margin-left:100%}@media screen and (max-width: 768px){.column.is-narrow-mobile{flex:none;width:unset}.column.is-full-mobile{flex:none;width:100%}.column.is-three-quarters-mobile{flex:none;width:75%}.column.is-two-thirds-mobile{flex:none;width:66.6666%}.column.is-half-mobile{flex:none;width:50%}.column.is-one-third-mobile{flex:none;width:33.3333%}.column.is-one-quarter-mobile{flex:none;width:25%}.column.is-one-fifth-mobile{flex:none;width:20%}.column.is-two-fifths-mobile{flex:none;width:40%}.column.is-three-fifths-mobile{flex:none;width:60%}.column.is-four-fifths-mobile{flex:none;width:80%}.column.is-offset-three-quarters-mobile{margin-left:75%}.column.is-offset-two-thirds-mobile{margin-left:66.6666%}.column.is-offset-half-mobile{margin-left:50%}.column.is-offset-one-third-mobile{margin-left:33.3333%}.column.is-offset-one-quarter-mobile{margin-left:25%}.column.is-offset-one-fifth-mobile{margin-left:20%}.column.is-offset-two-fifths-mobile{margin-left:40%}.column.is-offset-three-fifths-mobile{margin-left:60%}.column.is-offset-four-fifths-mobile{margin-left:80%}.column.is-0-mobile{flex:none;width:0%}.column.is-offset-0-mobile{margin-left:0%}.column.is-1-mobile{flex:none;width:8.33333337%}.column.is-offset-1-mobile{margin-left:8.33333337%}.column.is-2-mobile{flex:none;width:16.66666674%}.column.is-offset-2-mobile{margin-left:16.66666674%}.column.is-3-mobile{flex:none;width:25%}.column.is-offset-3-mobile{margin-left:25%}.column.is-4-mobile{flex:none;width:33.33333337%}.column.is-offset-4-mobile{margin-left:33.33333337%}.column.is-5-mobile{flex:none;width:41.66666674%}.column.is-offset-5-mobile{margin-left:41.66666674%}.column.is-6-mobile{flex:none;width:50%}.column.is-offset-6-mobile{margin-left:50%}.column.is-7-mobile{flex:none;width:58.33333337%}.column.is-offset-7-mobile{margin-left:58.33333337%}.column.is-8-mobile{flex:none;width:66.66666674%}.column.is-offset-8-mobile{margin-left:66.66666674%}.column.is-9-mobile{flex:none;width:75%}.column.is-offset-9-mobile{margin-left:75%}.column.is-10-mobile{flex:none;width:83.33333337%}.column.is-offset-10-mobile{margin-left:83.33333337%}.column.is-11-mobile{flex:none;width:91.66666674%}.column.is-offset-11-mobile{margin-left:91.66666674%}.column.is-12-mobile{flex:none;width:100%}.column.is-offset-12-mobile{margin-left:100%}}@media screen and (min-width: 769px),print{.column.is-narrow,.column.is-narrow-tablet{flex:none;width:unset}.column.is-full,.column.is-full-tablet{flex:none;width:100%}.column.is-three-quarters,.column.is-three-quarters-tablet{flex:none;width:75%}.column.is-two-thirds,.column.is-two-thirds-tablet{flex:none;width:66.6666%}.column.is-half,.column.is-half-tablet{flex:none;width:50%}.column.is-one-third,.column.is-one-third-tablet{flex:none;width:33.3333%}.column.is-one-quarter,.column.is-one-quarter-tablet{flex:none;width:25%}.column.is-one-fifth,.column.is-one-fifth-tablet{flex:none;width:20%}.column.is-two-fifths,.column.is-two-fifths-tablet{flex:none;width:40%}.column.is-three-fifths,.column.is-three-fifths-tablet{flex:none;width:60%}.column.is-four-fifths,.column.is-four-fifths-tablet{flex:none;width:80%}.column.is-offset-three-quarters,.column.is-offset-three-quarters-tablet{margin-left:75%}.column.is-offset-two-thirds,.column.is-offset-two-thirds-tablet{margin-left:66.6666%}.column.is-offset-half,.column.is-offset-half-tablet{margin-left:50%}.column.is-offset-one-third,.column.is-offset-one-third-tablet{margin-left:33.3333%}.column.is-offset-one-quarter,.column.is-offset-one-quarter-tablet{margin-left:25%}.column.is-offset-one-fifth,.column.is-offset-one-fifth-tablet{margin-left:20%}.column.is-offset-two-fifths,.column.is-offset-two-fifths-tablet{margin-left:40%}.column.is-offset-three-fifths,.column.is-offset-three-fifths-tablet{margin-left:60%}.column.is-offset-four-fifths,.column.is-offset-four-fifths-tablet{margin-left:80%}.column.is-0,.column.is-0-tablet{flex:none;width:0%}.column.is-offset-0,.column.is-offset-0-tablet{margin-left:0%}.column.is-1,.column.is-1-tablet{flex:none;width:8.33333337%}.column.is-offset-1,.column.is-offset-1-tablet{margin-left:8.33333337%}.column.is-2,.column.is-2-tablet{flex:none;width:16.66666674%}.column.is-offset-2,.column.is-offset-2-tablet{margin-left:16.66666674%}.column.is-3,.column.is-3-tablet{flex:none;width:25%}.column.is-offset-3,.column.is-offset-3-tablet{margin-left:25%}.column.is-4,.column.is-4-tablet{flex:none;width:33.33333337%}.column.is-offset-4,.column.is-offset-4-tablet{margin-left:33.33333337%}.column.is-5,.column.is-5-tablet{flex:none;width:41.66666674%}.column.is-offset-5,.column.is-offset-5-tablet{margin-left:41.66666674%}.column.is-6,.column.is-6-tablet{flex:none;width:50%}.column.is-offset-6,.column.is-offset-6-tablet{margin-left:50%}.column.is-7,.column.is-7-tablet{flex:none;width:58.33333337%}.column.is-offset-7,.column.is-offset-7-tablet{margin-left:58.33333337%}.column.is-8,.column.is-8-tablet{flex:none;width:66.66666674%}.column.is-offset-8,.column.is-offset-8-tablet{margin-left:66.66666674%}.column.is-9,.column.is-9-tablet{flex:none;width:75%}.column.is-offset-9,.column.is-offset-9-tablet{margin-left:75%}.column.is-10,.column.is-10-tablet{flex:none;width:83.33333337%}.column.is-offset-10,.column.is-offset-10-tablet{margin-left:83.33333337%}.column.is-11,.column.is-11-tablet{flex:none;width:91.66666674%}.column.is-offset-11,.column.is-offset-11-tablet{margin-left:91.66666674%}.column.is-12,.column.is-12-tablet{flex:none;width:100%}.column.is-offset-12,.column.is-offset-12-tablet{margin-left:100%}}@media screen and (max-width: 1055px){.column.is-narrow-touch{flex:none;width:unset}.column.is-full-touch{flex:none;width:100%}.column.is-three-quarters-touch{flex:none;width:75%}.column.is-two-thirds-touch{flex:none;width:66.6666%}.column.is-half-touch{flex:none;width:50%}.column.is-one-third-touch{flex:none;width:33.3333%}.column.is-one-quarter-touch{flex:none;width:25%}.column.is-one-fifth-touch{flex:none;width:20%}.column.is-two-fifths-touch{flex:none;width:40%}.column.is-three-fifths-touch{flex:none;width:60%}.column.is-four-fifths-touch{flex:none;width:80%}.column.is-offset-three-quarters-touch{margin-left:75%}.column.is-offset-two-thirds-touch{margin-left:66.6666%}.column.is-offset-half-touch{margin-left:50%}.column.is-offset-one-third-touch{margin-left:33.3333%}.column.is-offset-one-quarter-touch{margin-left:25%}.column.is-offset-one-fifth-touch{margin-left:20%}.column.is-offset-two-fifths-touch{margin-left:40%}.column.is-offset-three-fifths-touch{margin-left:60%}.column.is-offset-four-fifths-touch{margin-left:80%}.column.is-0-touch{flex:none;width:0%}.column.is-offset-0-touch{margin-left:0%}.column.is-1-touch{flex:none;width:8.33333337%}.column.is-offset-1-touch{margin-left:8.33333337%}.column.is-2-touch{flex:none;width:16.66666674%}.column.is-offset-2-touch{margin-left:16.66666674%}.column.is-3-touch{flex:none;width:25%}.column.is-offset-3-touch{margin-left:25%}.column.is-4-touch{flex:none;width:33.33333337%}.column.is-offset-4-touch{margin-left:33.33333337%}.column.is-5-touch{flex:none;width:41.66666674%}.column.is-offset-5-touch{margin-left:41.66666674%}.column.is-6-touch{flex:none;width:50%}.column.is-offset-6-touch{margin-left:50%}.column.is-7-touch{flex:none;width:58.33333337%}.column.is-offset-7-touch{margin-left:58.33333337%}.column.is-8-touch{flex:none;width:66.66666674%}.column.is-offset-8-touch{margin-left:66.66666674%}.column.is-9-touch{flex:none;width:75%}.column.is-offset-9-touch{margin-left:75%}.column.is-10-touch{flex:none;width:83.33333337%}.column.is-offset-10-touch{margin-left:83.33333337%}.column.is-11-touch{flex:none;width:91.66666674%}.column.is-offset-11-touch{margin-left:91.66666674%}.column.is-12-touch{flex:none;width:100%}.column.is-offset-12-touch{margin-left:100%}}@media screen and (min-width: 1056px){.column.is-narrow-desktop{flex:none;width:unset}.column.is-full-desktop{flex:none;width:100%}.column.is-three-quarters-desktop{flex:none;width:75%}.column.is-two-thirds-desktop{flex:none;width:66.6666%}.column.is-half-desktop{flex:none;width:50%}.column.is-one-third-desktop{flex:none;width:33.3333%}.column.is-one-quarter-desktop{flex:none;width:25%}.column.is-one-fifth-desktop{flex:none;width:20%}.column.is-two-fifths-desktop{flex:none;width:40%}.column.is-three-fifths-desktop{flex:none;width:60%}.column.is-four-fifths-desktop{flex:none;width:80%}.column.is-offset-three-quarters-desktop{margin-left:75%}.column.is-offset-two-thirds-desktop{margin-left:66.6666%}.column.is-offset-half-desktop{margin-left:50%}.column.is-offset-one-third-desktop{margin-left:33.3333%}.column.is-offset-one-quarter-desktop{margin-left:25%}.column.is-offset-one-fifth-desktop{margin-left:20%}.column.is-offset-two-fifths-desktop{margin-left:40%}.column.is-offset-three-fifths-desktop{margin-left:60%}.column.is-offset-four-fifths-desktop{margin-left:80%}.column.is-0-desktop{flex:none;width:0%}.column.is-offset-0-desktop{margin-left:0%}.column.is-1-desktop{flex:none;width:8.33333337%}.column.is-offset-1-desktop{margin-left:8.33333337%}.column.is-2-desktop{flex:none;width:16.66666674%}.column.is-offset-2-desktop{margin-left:16.66666674%}.column.is-3-desktop{flex:none;width:25%}.column.is-offset-3-desktop{margin-left:25%}.column.is-4-desktop{flex:none;width:33.33333337%}.column.is-offset-4-desktop{margin-left:33.33333337%}.column.is-5-desktop{flex:none;width:41.66666674%}.column.is-offset-5-desktop{margin-left:41.66666674%}.column.is-6-desktop{flex:none;width:50%}.column.is-offset-6-desktop{margin-left:50%}.column.is-7-desktop{flex:none;width:58.33333337%}.column.is-offset-7-desktop{margin-left:58.33333337%}.column.is-8-desktop{flex:none;width:66.66666674%}.column.is-offset-8-desktop{margin-left:66.66666674%}.column.is-9-desktop{flex:none;width:75%}.column.is-offset-9-desktop{margin-left:75%}.column.is-10-desktop{flex:none;width:83.33333337%}.column.is-offset-10-desktop{margin-left:83.33333337%}.column.is-11-desktop{flex:none;width:91.66666674%}.column.is-offset-11-desktop{margin-left:91.66666674%}.column.is-12-desktop{flex:none;width:100%}.column.is-offset-12-desktop{margin-left:100%}}@media screen and (min-width: 1216px){.column.is-narrow-widescreen{flex:none;width:unset}.column.is-full-widescreen{flex:none;width:100%}.column.is-three-quarters-widescreen{flex:none;width:75%}.column.is-two-thirds-widescreen{flex:none;width:66.6666%}.column.is-half-widescreen{flex:none;width:50%}.column.is-one-third-widescreen{flex:none;width:33.3333%}.column.is-one-quarter-widescreen{flex:none;width:25%}.column.is-one-fifth-widescreen{flex:none;width:20%}.column.is-two-fifths-widescreen{flex:none;width:40%}.column.is-three-fifths-widescreen{flex:none;width:60%}.column.is-four-fifths-widescreen{flex:none;width:80%}.column.is-offset-three-quarters-widescreen{margin-left:75%}.column.is-offset-two-thirds-widescreen{margin-left:66.6666%}.column.is-offset-half-widescreen{margin-left:50%}.column.is-offset-one-third-widescreen{margin-left:33.3333%}.column.is-offset-one-quarter-widescreen{margin-left:25%}.column.is-offset-one-fifth-widescreen{margin-left:20%}.column.is-offset-two-fifths-widescreen{margin-left:40%}.column.is-offset-three-fifths-widescreen{margin-left:60%}.column.is-offset-four-fifths-widescreen{margin-left:80%}.column.is-0-widescreen{flex:none;width:0%}.column.is-offset-0-widescreen{margin-left:0%}.column.is-1-widescreen{flex:none;width:8.33333337%}.column.is-offset-1-widescreen{margin-left:8.33333337%}.column.is-2-widescreen{flex:none;width:16.66666674%}.column.is-offset-2-widescreen{margin-left:16.66666674%}.column.is-3-widescreen{flex:none;width:25%}.column.is-offset-3-widescreen{margin-left:25%}.column.is-4-widescreen{flex:none;width:33.33333337%}.column.is-offset-4-widescreen{margin-left:33.33333337%}.column.is-5-widescreen{flex:none;width:41.66666674%}.column.is-offset-5-widescreen{margin-left:41.66666674%}.column.is-6-widescreen{flex:none;width:50%}.column.is-offset-6-widescreen{margin-left:50%}.column.is-7-widescreen{flex:none;width:58.33333337%}.column.is-offset-7-widescreen{margin-left:58.33333337%}.column.is-8-widescreen{flex:none;width:66.66666674%}.column.is-offset-8-widescreen{margin-left:66.66666674%}.column.is-9-widescreen{flex:none;width:75%}.column.is-offset-9-widescreen{margin-left:75%}.column.is-10-widescreen{flex:none;width:83.33333337%}.column.is-offset-10-widescreen{margin-left:83.33333337%}.column.is-11-widescreen{flex:none;width:91.66666674%}.column.is-offset-11-widescreen{margin-left:91.66666674%}.column.is-12-widescreen{flex:none;width:100%}.column.is-offset-12-widescreen{margin-left:100%}}@media screen and (min-width: 1408px){.column.is-narrow-fullhd{flex:none;width:unset}.column.is-full-fullhd{flex:none;width:100%}.column.is-three-quarters-fullhd{flex:none;width:75%}.column.is-two-thirds-fullhd{flex:none;width:66.6666%}.column.is-half-fullhd{flex:none;width:50%}.column.is-one-third-fullhd{flex:none;width:33.3333%}.column.is-one-quarter-fullhd{flex:none;width:25%}.column.is-one-fifth-fullhd{flex:none;width:20%}.column.is-two-fifths-fullhd{flex:none;width:40%}.column.is-three-fifths-fullhd{flex:none;width:60%}.column.is-four-fifths-fullhd{flex:none;width:80%}.column.is-offset-three-quarters-fullhd{margin-left:75%}.column.is-offset-two-thirds-fullhd{margin-left:66.6666%}.column.is-offset-half-fullhd{margin-left:50%}.column.is-offset-one-third-fullhd{margin-left:33.3333%}.column.is-offset-one-quarter-fullhd{margin-left:25%}.column.is-offset-one-fifth-fullhd{margin-left:20%}.column.is-offset-two-fifths-fullhd{margin-left:40%}.column.is-offset-three-fifths-fullhd{margin-left:60%}.column.is-offset-four-fifths-fullhd{margin-left:80%}.column.is-0-fullhd{flex:none;width:0%}.column.is-offset-0-fullhd{margin-left:0%}.column.is-1-fullhd{flex:none;width:8.33333337%}.column.is-offset-1-fullhd{margin-left:8.33333337%}.column.is-2-fullhd{flex:none;width:16.66666674%}.column.is-offset-2-fullhd{margin-left:16.66666674%}.column.is-3-fullhd{flex:none;width:25%}.column.is-offset-3-fullhd{margin-left:25%}.column.is-4-fullhd{flex:none;width:33.33333337%}.column.is-offset-4-fullhd{margin-left:33.33333337%}.column.is-5-fullhd{flex:none;width:41.66666674%}.column.is-offset-5-fullhd{margin-left:41.66666674%}.column.is-6-fullhd{flex:none;width:50%}.column.is-offset-6-fullhd{margin-left:50%}.column.is-7-fullhd{flex:none;width:58.33333337%}.column.is-offset-7-fullhd{margin-left:58.33333337%}.column.is-8-fullhd{flex:none;width:66.66666674%}.column.is-offset-8-fullhd{margin-left:66.66666674%}.column.is-9-fullhd{flex:none;width:75%}.column.is-offset-9-fullhd{margin-left:75%}.column.is-10-fullhd{flex:none;width:83.33333337%}.column.is-offset-10-fullhd{margin-left:83.33333337%}.column.is-11-fullhd{flex:none;width:91.66666674%}.column.is-offset-11-fullhd{margin-left:91.66666674%}.column.is-12-fullhd{flex:none;width:100%}.column.is-offset-12-fullhd{margin-left:100%}}.columns{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}.columns:last-child{margin-bottom:-.75rem}.columns:not(:last-child){margin-bottom:calc(1.5rem - .75rem)}.columns.is-centered{justify-content:center}.columns.is-gapless{margin-left:0;margin-right:0;margin-top:0}.columns.is-gapless>.column{margin:0;padding:0 !important}.columns.is-gapless:not(:last-child){margin-bottom:1.5rem}.columns.is-gapless:last-child{margin-bottom:0}.columns.is-mobile{display:flex}.columns.is-multiline{flex-wrap:wrap}.columns.is-vcentered{align-items:center}@media screen and (min-width: 769px),print{.columns:not(.is-desktop){display:flex}}@media screen and (min-width: 1056px){.columns.is-desktop{display:flex}}.columns.is-variable{--columnGap: 0.75rem;margin-left:calc(-1 * var(--columnGap));margin-right:calc(-1 * var(--columnGap))}.columns.is-variable>.column{padding-left:var(--columnGap);padding-right:var(--columnGap)}.columns.is-variable.is-0{--columnGap: 0rem}@media screen and (max-width: 768px){.columns.is-variable.is-0-mobile{--columnGap: 0rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-0-tablet{--columnGap: 0rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-0-tablet-only{--columnGap: 0rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-0-touch{--columnGap: 0rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-0-desktop{--columnGap: 0rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-0-desktop-only{--columnGap: 0rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-0-widescreen{--columnGap: 0rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-0-widescreen-only{--columnGap: 0rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-0-fullhd{--columnGap: 0rem}}.columns.is-variable.is-1{--columnGap: .25rem}@media screen and (max-width: 768px){.columns.is-variable.is-1-mobile{--columnGap: .25rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-1-tablet{--columnGap: .25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-1-tablet-only{--columnGap: .25rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-1-touch{--columnGap: .25rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-1-desktop{--columnGap: .25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-1-desktop-only{--columnGap: .25rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-1-widescreen{--columnGap: .25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-1-widescreen-only{--columnGap: .25rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-1-fullhd{--columnGap: .25rem}}.columns.is-variable.is-2{--columnGap: .5rem}@media screen and (max-width: 768px){.columns.is-variable.is-2-mobile{--columnGap: .5rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-2-tablet{--columnGap: .5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-2-tablet-only{--columnGap: .5rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-2-touch{--columnGap: .5rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-2-desktop{--columnGap: .5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-2-desktop-only{--columnGap: .5rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-2-widescreen{--columnGap: .5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-2-widescreen-only{--columnGap: .5rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-2-fullhd{--columnGap: .5rem}}.columns.is-variable.is-3{--columnGap: .75rem}@media screen and (max-width: 768px){.columns.is-variable.is-3-mobile{--columnGap: .75rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-3-tablet{--columnGap: .75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-3-tablet-only{--columnGap: .75rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-3-touch{--columnGap: .75rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-3-desktop{--columnGap: .75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-3-desktop-only{--columnGap: .75rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-3-widescreen{--columnGap: .75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-3-widescreen-only{--columnGap: .75rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-3-fullhd{--columnGap: .75rem}}.columns.is-variable.is-4{--columnGap: 1rem}@media screen and (max-width: 768px){.columns.is-variable.is-4-mobile{--columnGap: 1rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-4-tablet{--columnGap: 1rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-4-tablet-only{--columnGap: 1rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-4-touch{--columnGap: 1rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-4-desktop{--columnGap: 1rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-4-desktop-only{--columnGap: 1rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-4-widescreen{--columnGap: 1rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-4-widescreen-only{--columnGap: 1rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-4-fullhd{--columnGap: 1rem}}.columns.is-variable.is-5{--columnGap: 1.25rem}@media screen and (max-width: 768px){.columns.is-variable.is-5-mobile{--columnGap: 1.25rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-5-tablet{--columnGap: 1.25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-5-tablet-only{--columnGap: 1.25rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-5-touch{--columnGap: 1.25rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-5-desktop{--columnGap: 1.25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-5-desktop-only{--columnGap: 1.25rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-5-widescreen{--columnGap: 1.25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-5-widescreen-only{--columnGap: 1.25rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-5-fullhd{--columnGap: 1.25rem}}.columns.is-variable.is-6{--columnGap: 1.5rem}@media screen and (max-width: 768px){.columns.is-variable.is-6-mobile{--columnGap: 1.5rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-6-tablet{--columnGap: 1.5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-6-tablet-only{--columnGap: 1.5rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-6-touch{--columnGap: 1.5rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-6-desktop{--columnGap: 1.5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-6-desktop-only{--columnGap: 1.5rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-6-widescreen{--columnGap: 1.5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-6-widescreen-only{--columnGap: 1.5rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-6-fullhd{--columnGap: 1.5rem}}.columns.is-variable.is-7{--columnGap: 1.75rem}@media screen and (max-width: 768px){.columns.is-variable.is-7-mobile{--columnGap: 1.75rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-7-tablet{--columnGap: 1.75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-7-tablet-only{--columnGap: 1.75rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-7-touch{--columnGap: 1.75rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-7-desktop{--columnGap: 1.75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-7-desktop-only{--columnGap: 1.75rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-7-widescreen{--columnGap: 1.75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-7-widescreen-only{--columnGap: 1.75rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-7-fullhd{--columnGap: 1.75rem}}.columns.is-variable.is-8{--columnGap: 2rem}@media screen and (max-width: 768px){.columns.is-variable.is-8-mobile{--columnGap: 2rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-8-tablet{--columnGap: 2rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-8-tablet-only{--columnGap: 2rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-8-touch{--columnGap: 2rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-8-desktop{--columnGap: 2rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-8-desktop-only{--columnGap: 2rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-8-widescreen{--columnGap: 2rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-8-widescreen-only{--columnGap: 2rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-8-fullhd{--columnGap: 2rem}}.tile{align-items:stretch;display:block;flex-basis:0;flex-grow:1;flex-shrink:1;min-height:min-content}.tile.is-ancestor{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}.tile.is-ancestor:last-child{margin-bottom:-.75rem}.tile.is-ancestor:not(:last-child){margin-bottom:.75rem}.tile.is-child{margin:0 !important}.tile.is-parent{padding:.75rem}.tile.is-vertical{flex-direction:column}.tile.is-vertical>.tile.is-child:not(:last-child){margin-bottom:1.5rem !important}@media screen and (min-width: 769px),print{.tile:not(.is-child){display:flex}.tile.is-1{flex:none;width:8.33333337%}.tile.is-2{flex:none;width:16.66666674%}.tile.is-3{flex:none;width:25%}.tile.is-4{flex:none;width:33.33333337%}.tile.is-5{flex:none;width:41.66666674%}.tile.is-6{flex:none;width:50%}.tile.is-7{flex:none;width:58.33333337%}.tile.is-8{flex:none;width:66.66666674%}.tile.is-9{flex:none;width:75%}.tile.is-10{flex:none;width:83.33333337%}.tile.is-11{flex:none;width:91.66666674%}.tile.is-12{flex:none;width:100%}}.hero{align-items:stretch;display:flex;flex-direction:column;justify-content:space-between}.hero .navbar{background:none}.hero .tabs ul{border-bottom:none}.hero.is-white{background-color:#fff;color:#0a0a0a}.hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-white strong{color:inherit}.hero.is-white .title{color:#0a0a0a}.hero.is-white .subtitle{color:rgba(10,10,10,0.9)}.hero.is-white .subtitle a:not(.button),.hero.is-white .subtitle strong{color:#0a0a0a}@media screen and (max-width: 1055px){.hero.is-white .navbar-menu{background-color:#fff}}.hero.is-white .navbar-item,.hero.is-white .navbar-link{color:rgba(10,10,10,0.7)}.hero.is-white a.navbar-item:hover,.hero.is-white a.navbar-item.is-active,.hero.is-white .navbar-link:hover,.hero.is-white .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}.hero.is-white .tabs a{color:#0a0a0a;opacity:0.9}.hero.is-white .tabs a:hover{opacity:1}.hero.is-white .tabs li.is-active a{color:#fff !important;opacity:1}.hero.is-white .tabs.is-boxed a,.hero.is-white .tabs.is-toggle a{color:#0a0a0a}.hero.is-white .tabs.is-boxed a:hover,.hero.is-white .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-white .tabs.is-boxed li.is-active a,.hero.is-white .tabs.is-boxed li.is-active a:hover,.hero.is-white .tabs.is-toggle li.is-active a,.hero.is-white .tabs.is-toggle li.is-active a:hover{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.hero.is-white.is-bold{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}@media screen and (max-width: 768px){.hero.is-white.is-bold .navbar-menu{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}}.hero.is-black{background-color:#0a0a0a;color:#fff}.hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-black strong{color:inherit}.hero.is-black .title{color:#fff}.hero.is-black .subtitle{color:rgba(255,255,255,0.9)}.hero.is-black .subtitle a:not(.button),.hero.is-black .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-black .navbar-menu{background-color:#0a0a0a}}.hero.is-black .navbar-item,.hero.is-black .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-black a.navbar-item:hover,.hero.is-black a.navbar-item.is-active,.hero.is-black .navbar-link:hover,.hero.is-black .navbar-link.is-active{background-color:#000;color:#fff}.hero.is-black .tabs a{color:#fff;opacity:0.9}.hero.is-black .tabs a:hover{opacity:1}.hero.is-black .tabs li.is-active a{color:#0a0a0a !important;opacity:1}.hero.is-black .tabs.is-boxed a,.hero.is-black .tabs.is-toggle a{color:#fff}.hero.is-black .tabs.is-boxed a:hover,.hero.is-black .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-black .tabs.is-boxed li.is-active a,.hero.is-black .tabs.is-boxed li.is-active a:hover,.hero.is-black .tabs.is-toggle li.is-active a,.hero.is-black .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#0a0a0a}.hero.is-black.is-bold{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}@media screen and (max-width: 768px){.hero.is-black.is-bold .navbar-menu{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}}.hero.is-light{background-color:#f5f5f5;color:rgba(0,0,0,0.7)}.hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-light strong{color:inherit}.hero.is-light .title{color:rgba(0,0,0,0.7)}.hero.is-light .subtitle{color:rgba(0,0,0,0.9)}.hero.is-light .subtitle a:not(.button),.hero.is-light .subtitle strong{color:rgba(0,0,0,0.7)}@media screen and (max-width: 1055px){.hero.is-light .navbar-menu{background-color:#f5f5f5}}.hero.is-light .navbar-item,.hero.is-light .navbar-link{color:rgba(0,0,0,0.7)}.hero.is-light a.navbar-item:hover,.hero.is-light a.navbar-item.is-active,.hero.is-light .navbar-link:hover,.hero.is-light .navbar-link.is-active{background-color:#e8e8e8;color:rgba(0,0,0,0.7)}.hero.is-light .tabs a{color:rgba(0,0,0,0.7);opacity:0.9}.hero.is-light .tabs a:hover{opacity:1}.hero.is-light .tabs li.is-active a{color:#f5f5f5 !important;opacity:1}.hero.is-light .tabs.is-boxed a,.hero.is-light .tabs.is-toggle a{color:rgba(0,0,0,0.7)}.hero.is-light .tabs.is-boxed a:hover,.hero.is-light .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-light .tabs.is-boxed li.is-active a,.hero.is-light .tabs.is-boxed li.is-active a:hover,.hero.is-light .tabs.is-toggle li.is-active a,.hero.is-light .tabs.is-toggle li.is-active a:hover{background-color:rgba(0,0,0,0.7);border-color:rgba(0,0,0,0.7);color:#f5f5f5}.hero.is-light.is-bold{background-image:linear-gradient(141deg, #dfd8d9 0%, #f5f5f5 71%, #fff 100%)}@media screen and (max-width: 768px){.hero.is-light.is-bold .navbar-menu{background-image:linear-gradient(141deg, #dfd8d9 0%, #f5f5f5 71%, #fff 100%)}}.hero.is-dark,.content kbd.hero{background-color:#363636;color:#fff}.hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-dark strong,.content kbd.hero strong{color:inherit}.hero.is-dark .title,.content kbd.hero .title{color:#fff}.hero.is-dark .subtitle,.content kbd.hero .subtitle{color:rgba(255,255,255,0.9)}.hero.is-dark .subtitle a:not(.button),.content kbd.hero .subtitle a:not(.button),.hero.is-dark .subtitle strong,.content kbd.hero .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-dark .navbar-menu,.content kbd.hero .navbar-menu{background-color:#363636}}.hero.is-dark .navbar-item,.content kbd.hero .navbar-item,.hero.is-dark .navbar-link,.content kbd.hero .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-dark a.navbar-item:hover,.content kbd.hero a.navbar-item:hover,.hero.is-dark a.navbar-item.is-active,.content kbd.hero a.navbar-item.is-active,.hero.is-dark .navbar-link:hover,.content kbd.hero .navbar-link:hover,.hero.is-dark .navbar-link.is-active,.content kbd.hero .navbar-link.is-active{background-color:#292929;color:#fff}.hero.is-dark .tabs a,.content kbd.hero .tabs a{color:#fff;opacity:0.9}.hero.is-dark .tabs a:hover,.content kbd.hero .tabs a:hover{opacity:1}.hero.is-dark .tabs li.is-active a,.content kbd.hero .tabs li.is-active a{color:#363636 !important;opacity:1}.hero.is-dark .tabs.is-boxed a,.content kbd.hero .tabs.is-boxed a,.hero.is-dark .tabs.is-toggle a,.content kbd.hero .tabs.is-toggle a{color:#fff}.hero.is-dark .tabs.is-boxed a:hover,.content kbd.hero .tabs.is-boxed a:hover,.hero.is-dark .tabs.is-toggle a:hover,.content kbd.hero .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-dark .tabs.is-boxed li.is-active a,.content kbd.hero .tabs.is-boxed li.is-active a,.hero.is-dark .tabs.is-boxed li.is-active a:hover,.hero.is-dark .tabs.is-toggle li.is-active a,.content kbd.hero .tabs.is-toggle li.is-active a,.hero.is-dark .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#363636}.hero.is-dark.is-bold,.content kbd.hero.is-bold{background-image:linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%)}@media screen and (max-width: 768px){.hero.is-dark.is-bold .navbar-menu,.content kbd.hero.is-bold .navbar-menu{background-image:linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%)}}.hero.is-primary,.docstring>section>a.hero.docs-sourcelink{background-color:#4eb5de;color:#fff}.hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.docstring>section>a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-primary strong,.docstring>section>a.hero.docs-sourcelink strong{color:inherit}.hero.is-primary .title,.docstring>section>a.hero.docs-sourcelink .title{color:#fff}.hero.is-primary .subtitle,.docstring>section>a.hero.docs-sourcelink .subtitle{color:rgba(255,255,255,0.9)}.hero.is-primary .subtitle a:not(.button),.docstring>section>a.hero.docs-sourcelink .subtitle a:not(.button),.hero.is-primary .subtitle strong,.docstring>section>a.hero.docs-sourcelink .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-primary .navbar-menu,.docstring>section>a.hero.docs-sourcelink .navbar-menu{background-color:#4eb5de}}.hero.is-primary .navbar-item,.docstring>section>a.hero.docs-sourcelink .navbar-item,.hero.is-primary .navbar-link,.docstring>section>a.hero.docs-sourcelink .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-primary a.navbar-item:hover,.docstring>section>a.hero.docs-sourcelink a.navbar-item:hover,.hero.is-primary a.navbar-item.is-active,.docstring>section>a.hero.docs-sourcelink a.navbar-item.is-active,.hero.is-primary .navbar-link:hover,.docstring>section>a.hero.docs-sourcelink .navbar-link:hover,.hero.is-primary .navbar-link.is-active,.docstring>section>a.hero.docs-sourcelink .navbar-link.is-active{background-color:#39acda;color:#fff}.hero.is-primary .tabs a,.docstring>section>a.hero.docs-sourcelink .tabs a{color:#fff;opacity:0.9}.hero.is-primary .tabs a:hover,.docstring>section>a.hero.docs-sourcelink .tabs a:hover{opacity:1}.hero.is-primary .tabs li.is-active a,.docstring>section>a.hero.docs-sourcelink .tabs li.is-active a{color:#4eb5de !important;opacity:1}.hero.is-primary .tabs.is-boxed a,.docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a,.hero.is-primary .tabs.is-toggle a,.docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a{color:#fff}.hero.is-primary .tabs.is-boxed a:hover,.docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a:hover,.hero.is-primary .tabs.is-toggle a:hover,.docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-primary .tabs.is-boxed li.is-active a,.docstring>section>a.hero.docs-sourcelink .tabs.is-boxed li.is-active a,.hero.is-primary .tabs.is-boxed li.is-active a:hover,.hero.is-primary .tabs.is-toggle li.is-active a,.docstring>section>a.hero.docs-sourcelink .tabs.is-toggle li.is-active a,.hero.is-primary .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#4eb5de}.hero.is-primary.is-bold,.docstring>section>a.hero.is-bold.docs-sourcelink{background-image:linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%)}@media screen and (max-width: 768px){.hero.is-primary.is-bold .navbar-menu,.docstring>section>a.hero.is-bold.docs-sourcelink .navbar-menu{background-image:linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%)}}.hero.is-link{background-color:#2e63b8;color:#fff}.hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-link strong{color:inherit}.hero.is-link .title{color:#fff}.hero.is-link .subtitle{color:rgba(255,255,255,0.9)}.hero.is-link .subtitle a:not(.button),.hero.is-link .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-link .navbar-menu{background-color:#2e63b8}}.hero.is-link .navbar-item,.hero.is-link .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-link a.navbar-item:hover,.hero.is-link a.navbar-item.is-active,.hero.is-link .navbar-link:hover,.hero.is-link .navbar-link.is-active{background-color:#2958a4;color:#fff}.hero.is-link .tabs a{color:#fff;opacity:0.9}.hero.is-link .tabs a:hover{opacity:1}.hero.is-link .tabs li.is-active a{color:#2e63b8 !important;opacity:1}.hero.is-link .tabs.is-boxed a,.hero.is-link .tabs.is-toggle a{color:#fff}.hero.is-link .tabs.is-boxed a:hover,.hero.is-link .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-link .tabs.is-boxed li.is-active a,.hero.is-link .tabs.is-boxed li.is-active a:hover,.hero.is-link .tabs.is-toggle li.is-active a,.hero.is-link .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#2e63b8}.hero.is-link.is-bold{background-image:linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%)}@media screen and (max-width: 768px){.hero.is-link.is-bold .navbar-menu{background-image:linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%)}}.hero.is-info{background-color:#209cee;color:#fff}.hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-info strong{color:inherit}.hero.is-info .title{color:#fff}.hero.is-info .subtitle{color:rgba(255,255,255,0.9)}.hero.is-info .subtitle a:not(.button),.hero.is-info .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-info .navbar-menu{background-color:#209cee}}.hero.is-info .navbar-item,.hero.is-info .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-info a.navbar-item:hover,.hero.is-info a.navbar-item.is-active,.hero.is-info .navbar-link:hover,.hero.is-info .navbar-link.is-active{background-color:#1190e3;color:#fff}.hero.is-info .tabs a{color:#fff;opacity:0.9}.hero.is-info .tabs a:hover{opacity:1}.hero.is-info .tabs li.is-active a{color:#209cee !important;opacity:1}.hero.is-info .tabs.is-boxed a,.hero.is-info .tabs.is-toggle a{color:#fff}.hero.is-info .tabs.is-boxed a:hover,.hero.is-info .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-info .tabs.is-boxed li.is-active a,.hero.is-info .tabs.is-boxed li.is-active a:hover,.hero.is-info .tabs.is-toggle li.is-active a,.hero.is-info .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#209cee}.hero.is-info.is-bold{background-image:linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%)}@media screen and (max-width: 768px){.hero.is-info.is-bold .navbar-menu{background-image:linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%)}}.hero.is-success{background-color:#22c35b;color:#fff}.hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-success strong{color:inherit}.hero.is-success .title{color:#fff}.hero.is-success .subtitle{color:rgba(255,255,255,0.9)}.hero.is-success .subtitle a:not(.button),.hero.is-success .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-success .navbar-menu{background-color:#22c35b}}.hero.is-success .navbar-item,.hero.is-success .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-success a.navbar-item:hover,.hero.is-success a.navbar-item.is-active,.hero.is-success .navbar-link:hover,.hero.is-success .navbar-link.is-active{background-color:#1ead51;color:#fff}.hero.is-success .tabs a{color:#fff;opacity:0.9}.hero.is-success .tabs a:hover{opacity:1}.hero.is-success .tabs li.is-active a{color:#22c35b !important;opacity:1}.hero.is-success .tabs.is-boxed a,.hero.is-success .tabs.is-toggle a{color:#fff}.hero.is-success .tabs.is-boxed a:hover,.hero.is-success .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-success .tabs.is-boxed li.is-active a,.hero.is-success .tabs.is-boxed li.is-active a:hover,.hero.is-success .tabs.is-toggle li.is-active a,.hero.is-success .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#22c35b}.hero.is-success.is-bold{background-image:linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%)}@media screen and (max-width: 768px){.hero.is-success.is-bold .navbar-menu{background-image:linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%)}}.hero.is-warning{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-warning strong{color:inherit}.hero.is-warning .title{color:rgba(0,0,0,0.7)}.hero.is-warning .subtitle{color:rgba(0,0,0,0.9)}.hero.is-warning .subtitle a:not(.button),.hero.is-warning .subtitle strong{color:rgba(0,0,0,0.7)}@media screen and (max-width: 1055px){.hero.is-warning .navbar-menu{background-color:#ffdd57}}.hero.is-warning .navbar-item,.hero.is-warning .navbar-link{color:rgba(0,0,0,0.7)}.hero.is-warning a.navbar-item:hover,.hero.is-warning a.navbar-item.is-active,.hero.is-warning .navbar-link:hover,.hero.is-warning .navbar-link.is-active{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.hero.is-warning .tabs a{color:rgba(0,0,0,0.7);opacity:0.9}.hero.is-warning .tabs a:hover{opacity:1}.hero.is-warning .tabs li.is-active a{color:#ffdd57 !important;opacity:1}.hero.is-warning .tabs.is-boxed a,.hero.is-warning .tabs.is-toggle a{color:rgba(0,0,0,0.7)}.hero.is-warning .tabs.is-boxed a:hover,.hero.is-warning .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-warning .tabs.is-boxed li.is-active a,.hero.is-warning .tabs.is-boxed li.is-active a:hover,.hero.is-warning .tabs.is-toggle li.is-active a,.hero.is-warning .tabs.is-toggle li.is-active a:hover{background-color:rgba(0,0,0,0.7);border-color:rgba(0,0,0,0.7);color:#ffdd57}.hero.is-warning.is-bold{background-image:linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%)}@media screen and (max-width: 768px){.hero.is-warning.is-bold .navbar-menu{background-image:linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%)}}.hero.is-danger{background-color:#da0b00;color:#fff}.hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-danger strong{color:inherit}.hero.is-danger .title{color:#fff}.hero.is-danger .subtitle{color:rgba(255,255,255,0.9)}.hero.is-danger .subtitle a:not(.button),.hero.is-danger .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-danger .navbar-menu{background-color:#da0b00}}.hero.is-danger .navbar-item,.hero.is-danger .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-danger a.navbar-item:hover,.hero.is-danger a.navbar-item.is-active,.hero.is-danger .navbar-link:hover,.hero.is-danger .navbar-link.is-active{background-color:#c10a00;color:#fff}.hero.is-danger .tabs a{color:#fff;opacity:0.9}.hero.is-danger .tabs a:hover{opacity:1}.hero.is-danger .tabs li.is-active a{color:#da0b00 !important;opacity:1}.hero.is-danger .tabs.is-boxed a,.hero.is-danger .tabs.is-toggle a{color:#fff}.hero.is-danger .tabs.is-boxed a:hover,.hero.is-danger .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-danger .tabs.is-boxed li.is-active a,.hero.is-danger .tabs.is-boxed li.is-active a:hover,.hero.is-danger .tabs.is-toggle li.is-active a,.hero.is-danger .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#da0b00}.hero.is-danger.is-bold{background-image:linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%)}@media screen and (max-width: 768px){.hero.is-danger.is-bold .navbar-menu{background-image:linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%)}}.hero.is-small .hero-body,#documenter .docs-sidebar form.docs-search>input.hero .hero-body{padding:1.5rem}@media screen and (min-width: 769px),print{.hero.is-medium .hero-body{padding:9rem 4.5rem}}@media screen and (min-width: 769px),print{.hero.is-large .hero-body{padding:18rem 6rem}}.hero.is-halfheight .hero-body,.hero.is-fullheight .hero-body,.hero.is-fullheight-with-navbar .hero-body{align-items:center;display:flex}.hero.is-halfheight .hero-body>.container,.hero.is-fullheight .hero-body>.container,.hero.is-fullheight-with-navbar .hero-body>.container{flex-grow:1;flex-shrink:1}.hero.is-halfheight{min-height:50vh}.hero.is-fullheight{min-height:100vh}.hero-video{overflow:hidden}.hero-video video{left:50%;min-height:100%;min-width:100%;position:absolute;top:50%;transform:translate3d(-50%, -50%, 0)}.hero-video.is-transparent{opacity:0.3}@media screen and (max-width: 768px){.hero-video{display:none}}.hero-buttons{margin-top:1.5rem}@media screen and (max-width: 768px){.hero-buttons .button{display:flex}.hero-buttons .button:not(:last-child){margin-bottom:0.75rem}}@media screen and (min-width: 769px),print{.hero-buttons{display:flex;justify-content:center}.hero-buttons .button:not(:last-child){margin-right:1.5rem}}.hero-head,.hero-foot{flex-grow:0;flex-shrink:0}.hero-body{flex-grow:1;flex-shrink:0;padding:3rem 1.5rem}@media screen and (min-width: 769px),print{.hero-body{padding:3rem 3rem}}.section{padding:3rem 1.5rem}@media screen and (min-width: 1056px){.section{padding:3rem 3rem}.section.is-medium{padding:9rem 4.5rem}.section.is-large{padding:18rem 6rem}}.footer{background-color:#fafafa;padding:3rem 1.5rem 6rem}h1 .docs-heading-anchor,h1 .docs-heading-anchor:hover,h1 .docs-heading-anchor:visited,h2 .docs-heading-anchor,h2 .docs-heading-anchor:hover,h2 .docs-heading-anchor:visited,h3 .docs-heading-anchor,h3 .docs-heading-anchor:hover,h3 .docs-heading-anchor:visited,h4 .docs-heading-anchor,h4 .docs-heading-anchor:hover,h4 .docs-heading-anchor:visited,h5 .docs-heading-anchor,h5 .docs-heading-anchor:hover,h5 .docs-heading-anchor:visited,h6 .docs-heading-anchor,h6 .docs-heading-anchor:hover,h6 .docs-heading-anchor:visited{color:#222}h1 .docs-heading-anchor-permalink,h2 .docs-heading-anchor-permalink,h3 .docs-heading-anchor-permalink,h4 .docs-heading-anchor-permalink,h5 .docs-heading-anchor-permalink,h6 .docs-heading-anchor-permalink{visibility:hidden;vertical-align:middle;margin-left:0.5em;font-size:0.7rem}h1 .docs-heading-anchor-permalink::before,h2 .docs-heading-anchor-permalink::before,h3 .docs-heading-anchor-permalink::before,h4 .docs-heading-anchor-permalink::before,h5 .docs-heading-anchor-permalink::before,h6 .docs-heading-anchor-permalink::before{font-family:"Font Awesome 6 Free";font-weight:900;content:"\f0c1"}h1:hover .docs-heading-anchor-permalink,h2:hover .docs-heading-anchor-permalink,h3:hover .docs-heading-anchor-permalink,h4:hover .docs-heading-anchor-permalink,h5:hover .docs-heading-anchor-permalink,h6:hover .docs-heading-anchor-permalink{visibility:visible}.docs-dark-only{display:none !important}pre{position:relative;overflow:hidden}pre code,pre code.hljs{padding:0 .75rem !important;overflow:auto;display:block}pre code:first-of-type,pre code.hljs:first-of-type{padding-top:0.5rem !important}pre code:last-of-type,pre code.hljs:last-of-type{padding-bottom:0.5rem !important}pre .copy-button{opacity:0.2;transition:opacity 0.2s;position:absolute;right:0em;top:0em;padding:0.5em;width:2.5em;height:2.5em;background:transparent;border:none;font-family:"Font Awesome 6 Free";color:#222;cursor:pointer;text-align:center}pre .copy-button:focus,pre .copy-button:hover{opacity:1;background:rgba(34,34,34,0.1);color:#2e63b8}pre .copy-button.success{color:#259a12;opacity:1}pre .copy-button.error{color:#cb3c33;opacity:1}pre:hover .copy-button{opacity:1}.admonition{background-color:#b5b5b5;border-style:solid;border-width:1px;border-color:#363636;border-radius:4px;font-size:1rem}.admonition strong{color:currentColor}.admonition.is-small,#documenter .docs-sidebar form.docs-search>input.admonition{font-size:.75rem}.admonition.is-medium{font-size:1.25rem}.admonition.is-large{font-size:1.5rem}.admonition.is-default{background-color:#b5b5b5;border-color:#363636}.admonition.is-default>.admonition-header{background-color:#363636;color:#fff}.admonition.is-default>.admonition-body{color:#fff}.admonition.is-info{background-color:#def0fc;border-color:#209cee}.admonition.is-info>.admonition-header{background-color:#209cee;color:#fff}.admonition.is-info>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-success{background-color:#bdf4d1;border-color:#22c35b}.admonition.is-success>.admonition-header{background-color:#22c35b;color:#fff}.admonition.is-success>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-warning{background-color:#fff3c5;border-color:#ffdd57}.admonition.is-warning>.admonition-header{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.admonition.is-warning>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-danger{background-color:#ffaba7;border-color:#da0b00}.admonition.is-danger>.admonition-header{background-color:#da0b00;color:#fff}.admonition.is-danger>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-compat{background-color:#bdeff5;border-color:#1db5c9}.admonition.is-compat>.admonition-header{background-color:#1db5c9;color:#fff}.admonition.is-compat>.admonition-body{color:rgba(0,0,0,0.7)}.admonition-header{color:#fff;background-color:#363636;align-items:center;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.5rem .75rem;position:relative}.admonition-header:before{font-family:"Font Awesome 6 Free";font-weight:900;margin-right:.75rem;content:"\f06a"}details.admonition.is-details>.admonition-header{list-style:none}details.admonition.is-details>.admonition-header:before{font-family:"Font Awesome 6 Free";font-weight:900;content:"\f055"}details.admonition.is-details[open]>.admonition-header:before{font-family:"Font Awesome 6 Free";font-weight:900;content:"\f056"}.admonition-body{color:#222;padding:0.5rem .75rem}.admonition-body pre{background-color:#f5f5f5}.admonition-body code{background-color:rgba(0,0,0,0.05)}.docstring{margin-bottom:1em;background-color:rgba(0,0,0,0);border:1px solid #dbdbdb;box-shadow:2px 2px 3px rgba(10,10,10,0.1);max-width:100%}.docstring>header{cursor:pointer;display:flex;flex-grow:1;align-items:stretch;padding:0.5rem .75rem;background-color:#f5f5f5;box-shadow:0 0.125em 0.25em rgba(10,10,10,0.1);box-shadow:none;border-bottom:1px solid #dbdbdb;overflow:auto}.docstring>header code{background-color:transparent}.docstring>header .docstring-article-toggle-button{min-width:1.1rem;padding:0.2rem 0.2rem 0.2rem 0}.docstring>header .docstring-binding{margin-right:0.3em}.docstring>header .docstring-category{margin-left:0.3em}.docstring>section{position:relative;padding:.75rem .75rem;border-bottom:1px solid #dbdbdb}.docstring>section:last-child{border-bottom:none}.docstring>section>a.docs-sourcelink{transition:opacity 0.3s;opacity:0;position:absolute;right:.375rem;bottom:.375rem}.docstring>section>a.docs-sourcelink:focus{opacity:1 !important}.docstring:hover>section>a.docs-sourcelink{opacity:0.2}.docstring:focus-within>section>a.docs-sourcelink{opacity:0.2}.docstring>section:hover a.docs-sourcelink{opacity:1}.documenter-example-output{background-color:#fff}.outdated-warning-overlay{position:fixed;top:0;left:0;right:0;box-shadow:0 0 10px rgba(0,0,0,0.3);z-index:999;background-color:#ffaba7;color:rgba(0,0,0,0.7);border-bottom:3px solid #da0b00;padding:10px 35px;text-align:center;font-size:15px}.outdated-warning-overlay .outdated-warning-closer{position:absolute;top:calc(50% - 10px);right:18px;cursor:pointer;width:12px}.outdated-warning-overlay a{color:#2e63b8}.outdated-warning-overlay a:hover{color:#363636}.content pre{border:1px solid #dbdbdb}.content code{font-weight:inherit}.content a code{color:#2e63b8}.content h1 code,.content h2 code,.content h3 code,.content h4 code,.content h5 code,.content h6 code{color:#222}.content table{display:block;width:initial;max-width:100%;overflow-x:auto}.content blockquote>ul:first-child,.content blockquote>ol:first-child,.content .admonition-body>ul:first-child,.content .admonition-body>ol:first-child{margin-top:0}pre,code{font-variant-ligatures:no-contextual}.breadcrumb a.is-disabled{cursor:default;pointer-events:none}.breadcrumb a.is-disabled,.breadcrumb a.is-disabled:hover{color:#222}.hljs{background:initial !important}.katex .katex-mathml{top:0;right:0}.katex-display,mjx-container,.MathJax_Display{margin:0.5em 0 !important}html{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto}li.no-marker{list-style:none}#documenter .docs-main>article{overflow-wrap:break-word}#documenter .docs-main>article .math-container{overflow-x:auto;overflow-y:hidden}@media screen and (min-width: 1056px){#documenter .docs-main{max-width:52rem;margin-left:20rem;padding-right:1rem}}@media screen and (max-width: 1055px){#documenter .docs-main{width:100%}#documenter .docs-main>article{max-width:52rem;margin-left:auto;margin-right:auto;margin-bottom:1rem;padding:0 1rem}#documenter .docs-main>header,#documenter .docs-main>nav{max-width:100%;width:100%;margin:0}}#documenter .docs-main header.docs-navbar{background-color:#fff;border-bottom:1px solid #dbdbdb;z-index:2;min-height:4rem;margin-bottom:1rem;display:flex}#documenter .docs-main header.docs-navbar .breadcrumb{flex-grow:1;overflow-x:hidden}#documenter .docs-main header.docs-navbar .docs-sidebar-button{display:block;font-size:1.5rem;padding-bottom:0.1rem;margin-right:1rem}#documenter .docs-main header.docs-navbar .docs-right{display:flex;white-space:nowrap;gap:1rem;align-items:center}#documenter .docs-main header.docs-navbar .docs-right .docs-icon,#documenter .docs-main header.docs-navbar .docs-right .docs-label{display:inline-block}#documenter .docs-main header.docs-navbar .docs-right .docs-label{padding:0;margin-left:0.3em}@media screen and (max-width: 1055px){#documenter .docs-main header.docs-navbar .docs-right .docs-navbar-link{margin-left:0.4rem;margin-right:0.4rem}}#documenter .docs-main header.docs-navbar>*{margin:auto 0}@media screen and (max-width: 1055px){#documenter .docs-main header.docs-navbar{position:sticky;top:0;padding:0 1rem;transition-property:top, box-shadow;-webkit-transition-property:top, box-shadow;transition-duration:0.3s;-webkit-transition-duration:0.3s}#documenter .docs-main header.docs-navbar.headroom--not-top{box-shadow:.2rem 0rem .4rem #bbb;transition-duration:0.7s;-webkit-transition-duration:0.7s}#documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom{top:-4.5rem;transition-duration:0.7s;-webkit-transition-duration:0.7s}}#documenter .docs-main section.footnotes{border-top:1px solid #dbdbdb}#documenter .docs-main section.footnotes li .tag:first-child,#documenter .docs-main section.footnotes li .docstring>section>a.docs-sourcelink:first-child,#documenter .docs-main section.footnotes li .content kbd:first-child,.content #documenter .docs-main section.footnotes li kbd:first-child{margin-right:1em;margin-bottom:0.4em}#documenter .docs-main .docs-footer{display:flex;flex-wrap:wrap;margin-left:0;margin-right:0;border-top:1px solid #dbdbdb;padding-top:1rem;padding-bottom:1rem}@media screen and (max-width: 1055px){#documenter .docs-main .docs-footer{padding-left:1rem;padding-right:1rem}}#documenter .docs-main .docs-footer .docs-footer-nextpage,#documenter .docs-main .docs-footer .docs-footer-prevpage{flex-grow:1}#documenter .docs-main .docs-footer .docs-footer-nextpage{text-align:right}#documenter .docs-main .docs-footer .flexbox-break{flex-basis:100%;height:0}#documenter .docs-main .docs-footer .footer-message{font-size:0.8em;margin:0.5em auto 0 auto;text-align:center}#documenter .docs-sidebar{display:flex;flex-direction:column;color:#0a0a0a;background-color:#f5f5f5;border-right:1px solid #dbdbdb;padding:0;flex:0 0 18rem;z-index:5;font-size:1rem;position:fixed;left:-18rem;width:18rem;height:100%;transition:left 0.3s}#documenter .docs-sidebar.visible{left:0;box-shadow:.4rem 0rem .8rem #bbb}@media screen and (min-width: 1056px){#documenter .docs-sidebar.visible{box-shadow:none}}@media screen and (min-width: 1056px){#documenter .docs-sidebar{left:0;top:0}}#documenter .docs-sidebar .docs-logo{margin-top:1rem;padding:0 1rem}#documenter .docs-sidebar .docs-logo>img{max-height:6rem;margin:auto}#documenter .docs-sidebar .docs-package-name{flex-shrink:0;font-size:1.5rem;font-weight:700;text-align:center;white-space:nowrap;overflow:hidden;padding:0.5rem 0}#documenter .docs-sidebar .docs-package-name .docs-autofit{max-width:16.2rem}#documenter .docs-sidebar .docs-package-name a,#documenter .docs-sidebar .docs-package-name a:hover{color:#0a0a0a}#documenter .docs-sidebar .docs-version-selector{border-top:1px solid #dbdbdb;display:none;padding:0.5rem}#documenter .docs-sidebar .docs-version-selector.visible{display:flex}#documenter .docs-sidebar ul.docs-menu{flex-grow:1;user-select:none;border-top:1px solid #dbdbdb;padding-bottom:1.5rem}#documenter .docs-sidebar ul.docs-menu>li>.tocitem{font-weight:bold}#documenter .docs-sidebar ul.docs-menu>li li{font-size:.95rem;margin-left:1em;border-left:1px solid #dbdbdb}#documenter .docs-sidebar ul.docs-menu input.collapse-toggle{display:none}#documenter .docs-sidebar ul.docs-menu ul.collapsed{display:none}#documenter .docs-sidebar ul.docs-menu input:checked~ul.collapsed{display:block}#documenter .docs-sidebar ul.docs-menu label.tocitem{display:flex}#documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label{flex-grow:2}#documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron{display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;font-size:.75rem;margin-left:1rem;margin-top:auto;margin-bottom:auto}#documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before{font-family:"Font Awesome 6 Free";font-weight:900;content:"\f054"}#documenter .docs-sidebar ul.docs-menu input:checked~label.tocitem .docs-chevron::before{content:"\f078"}#documenter .docs-sidebar ul.docs-menu .tocitem{display:block;padding:0.5rem 0.5rem}#documenter .docs-sidebar ul.docs-menu .tocitem,#documenter .docs-sidebar ul.docs-menu .tocitem:hover{color:#0a0a0a;background:#f5f5f5}#documenter .docs-sidebar ul.docs-menu a.tocitem:hover,#documenter .docs-sidebar ul.docs-menu label.tocitem:hover{color:#0a0a0a;background-color:#ebebeb}#documenter .docs-sidebar ul.docs-menu li.is-active{border-top:1px solid #dbdbdb;border-bottom:1px solid #dbdbdb;background-color:#fff}#documenter .docs-sidebar ul.docs-menu li.is-active .tocitem,#documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover{background-color:#fff;color:#0a0a0a}#documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover{background-color:#ebebeb;color:#0a0a0a}#documenter .docs-sidebar ul.docs-menu>li.is-active:first-child{border-top:none}#documenter .docs-sidebar ul.docs-menu ul.internal{margin:0 0.5rem 0.5rem;border-top:1px solid #dbdbdb}#documenter .docs-sidebar ul.docs-menu ul.internal li{font-size:.85rem;border-left:none;margin-left:0;margin-top:0.5rem}#documenter .docs-sidebar ul.docs-menu ul.internal .tocitem{width:100%;padding:0}#documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before{content:"⚬";margin-right:0.4em}#documenter .docs-sidebar form.docs-search{margin:auto;margin-top:0.5rem;margin-bottom:0.5rem}#documenter .docs-sidebar form.docs-search>input{width:14.4rem}#documenter .docs-sidebar #documenter-search-query{color:#707070;width:14.4rem;box-shadow:inset 0 1px 2px rgba(10,10,10,0.1)}@media screen and (min-width: 1056px){#documenter .docs-sidebar ul.docs-menu{overflow-y:auto;-webkit-overflow-scroll:touch}#documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar{width:.3rem;background:none}#documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#e0e0e0}#documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover{background:#ccc}}@media screen and (max-width: 1055px){#documenter .docs-sidebar{overflow-y:auto;-webkit-overflow-scroll:touch}#documenter .docs-sidebar::-webkit-scrollbar{width:.3rem;background:none}#documenter .docs-sidebar::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#e0e0e0}#documenter .docs-sidebar::-webkit-scrollbar-thumb:hover{background:#ccc}}kbd.search-modal-key-hints{border-radius:0.25rem;border:1px solid rgba(0,0,0,0.6);box-shadow:0 2px 0 1px rgba(0,0,0,0.6);cursor:default;font-size:0.9rem;line-height:1.5;min-width:0.75rem;text-align:center;padding:0.1rem 0.3rem;position:relative;top:-1px}.search-min-width-50{min-width:50%}.search-min-height-100{min-height:100%}.search-modal-card-body{max-height:calc(100vh - 15rem)}.search-result-link{border-radius:0.7em;transition:all 300ms}.search-result-link:hover,.search-result-link:focus{background-color:rgba(0,128,128,0.1)}.search-result-link .property-search-result-badge,.search-result-link .search-filter{transition:all 300ms}.property-search-result-badge,.search-filter{padding:0.15em 0.5em;font-size:0.8em;font-style:italic;text-transform:none !important;line-height:1.5;color:#f5f5f5;background-color:rgba(51,65,85,0.501961);border-radius:0.6rem}.search-result-link:hover .property-search-result-badge,.search-result-link:hover .search-filter,.search-result-link:focus .property-search-result-badge,.search-result-link:focus .search-filter{color:#f1f5f9;background-color:#333}.search-filter{color:#333;background-color:#f5f5f5;transition:all 300ms}.search-filter:hover,.search-filter:focus{color:#333}.search-filter-selected{color:#f5f5f5;background-color:rgba(139,0,139,0.5)}.search-filter-selected:hover,.search-filter-selected:focus{color:#f5f5f5}.search-result-highlight{background-color:#ffdd57;color:black}.search-divider{border-bottom:1px solid #dbdbdb}.search-result-title{width:85%;color:#333}.search-result-code-title{font-size:0.875rem;font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace}#search-modal .modal-card-body::-webkit-scrollbar,#search-modal .filter-tabs::-webkit-scrollbar{height:10px;width:10px;background-color:transparent}#search-modal .modal-card-body::-webkit-scrollbar-thumb,#search-modal .filter-tabs::-webkit-scrollbar-thumb{background-color:gray;border-radius:1rem}#search-modal .modal-card-body::-webkit-scrollbar-track,#search-modal .filter-tabs::-webkit-scrollbar-track{-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,0.6);background-color:transparent}.w-100{width:100%}.gap-2{gap:0.5rem}.gap-4{gap:1rem}.gap-8{gap:2rem}.ansi span.sgr1{font-weight:bolder}.ansi span.sgr2{font-weight:lighter}.ansi span.sgr3{font-style:italic}.ansi span.sgr4{text-decoration:underline}.ansi span.sgr7{color:#fff;background-color:#222}.ansi span.sgr8{color:transparent}.ansi span.sgr8 span{color:transparent}.ansi span.sgr9{text-decoration:line-through}.ansi span.sgr30{color:#242424}.ansi span.sgr31{color:#a7201f}.ansi span.sgr32{color:#066f00}.ansi span.sgr33{color:#856b00}.ansi span.sgr34{color:#2149b0}.ansi span.sgr35{color:#7d4498}.ansi span.sgr36{color:#007989}.ansi span.sgr37{color:gray}.ansi span.sgr40{background-color:#242424}.ansi span.sgr41{background-color:#a7201f}.ansi span.sgr42{background-color:#066f00}.ansi span.sgr43{background-color:#856b00}.ansi span.sgr44{background-color:#2149b0}.ansi span.sgr45{background-color:#7d4498}.ansi span.sgr46{background-color:#007989}.ansi span.sgr47{background-color:gray}.ansi span.sgr90{color:#616161}.ansi span.sgr91{color:#cb3c33}.ansi span.sgr92{color:#0e8300}.ansi span.sgr93{color:#a98800}.ansi span.sgr94{color:#3c5dcd}.ansi span.sgr95{color:#9256af}.ansi span.sgr96{color:#008fa3}.ansi span.sgr97{color:#f5f5f5}.ansi span.sgr100{background-color:#616161}.ansi span.sgr101{background-color:#cb3c33}.ansi span.sgr102{background-color:#0e8300}.ansi span.sgr103{background-color:#a98800}.ansi span.sgr104{background-color:#3c5dcd}.ansi span.sgr105{background-color:#9256af}.ansi span.sgr106{background-color:#008fa3}.ansi span.sgr107{background-color:#f5f5f5}code.language-julia-repl>span.hljs-meta{color:#066f00;font-weight:bolder}/*! Theme: Default Description: Original highlight.js style Author: (c) Ivan Sagalaev @@ -7644,95 +6,4 @@ code.language-julia-repl > span.hljs-meta { Website: https://highlightjs.org/ License: see project LICENSE Touched: 2021 -*/ -/* -This is left on purpose making default.css the single file that can be lifted -as-is from the repository directly without the need for a build step - -Typically this "required" baseline CSS is added by `makestuff.js` during build. -*/ -pre code.hljs { - display: block; - overflow-x: auto; } - -code.hljs { - padding: 3px 5px; } - -/* end baseline CSS */ -.hljs { - background: #F0F0F0; - color: #444; } - -/* Base color: saturation 0; */ -.hljs-subst { - /* default */ } - -/* purposely ignored */ -.hljs-comment { - color: #888888; } - -.hljs-tag, -.hljs-punctuation { - color: #444a; } - -.hljs-tag .hljs-name, -.hljs-tag .hljs-attr { - color: #444; } - -.hljs-keyword, -.hljs-attribute, -.hljs-selector-tag, -.hljs-meta .hljs-keyword, -.hljs-doctag, -.hljs-name { - font-weight: bold; } - -/* User color: hue: 0 */ -.hljs-type, -.hljs-string, -.hljs-number, -.hljs-selector-id, -.hljs-selector-class, -.hljs-quote, -.hljs-template-tag, -.hljs-deletion { - color: #880000; } - -.hljs-title, -.hljs-section { - color: #880000; - font-weight: bold; } - -.hljs-regexp, -.hljs-symbol, -.hljs-variable, -.hljs-template-variable, -.hljs-link, -.hljs-selector-attr, -.hljs-operator, -.hljs-selector-pseudo { - color: #BC6060; } - -/* Language color: hue: 90; */ -.hljs-literal { - color: #78A960; } - -.hljs-built_in, -.hljs-bullet, -.hljs-code, -.hljs-addition { - color: #397300; } - -/* Meta color: hue: 200 */ -.hljs-meta { - color: #1f7199; } - -.hljs-meta .hljs-string { - color: #4d99bf; } - -/* Misc effects */ -.hljs-emphasis { - font-style: italic; } - -.hljs-strong { - font-weight: bold; } +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{background:#F3F3F3;color:#444}.hljs-comment{color:#697070}.hljs-tag,.hljs-punctuation{color:#444a}.hljs-tag .hljs-name,.hljs-tag .hljs-attr{color:#444}.hljs-keyword,.hljs-attribute,.hljs-selector-tag,.hljs-meta .hljs-keyword,.hljs-doctag,.hljs-name{font-weight:bold}.hljs-type,.hljs-string,.hljs-number,.hljs-selector-id,.hljs-selector-class,.hljs-quote,.hljs-template-tag,.hljs-deletion{color:#880000}.hljs-title,.hljs-section{color:#880000;font-weight:bold}.hljs-regexp,.hljs-symbol,.hljs-variable,.hljs-template-variable,.hljs-link,.hljs-selector-attr,.hljs-operator,.hljs-selector-pseudo{color:#ab5656}.hljs-literal{color:#695}.hljs-built_in,.hljs-bullet,.hljs-code,.hljs-addition{color:#397300}.hljs-meta{color:#1f7199}.hljs-meta .hljs-string{color:#38a}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:bold}.gap-4{gap:1rem} diff --git a/dev/assets/themeswap.js b/dev/assets/themeswap.js index c58e993e..9f5eebe6 100644 --- a/dev/assets/themeswap.js +++ b/dev/assets/themeswap.js @@ -1,20 +1,17 @@ // Small function to quickly swap out themes. Gets put into the tag.. function set_theme_from_local_storage() { - // Intialize the theme to null, which means default + // Initialize the theme to null, which means default var theme = null; // If the browser supports the localstorage and is not disabled then try to get the // documenter theme - if(window.localStorage != null) { + if (window.localStorage != null) { // Get the user-picked theme from localStorage. May be `null`, which means the default // theme. - theme = window.localStorage.getItem("documenter-theme"); + theme = window.localStorage.getItem("documenter-theme"); } - // Check if the browser supports user color preference - var darkPreference = false; // Check if the users preference is for dark color scheme - if(window.matchMedia('(prefers-color-scheme: dark)').matches === true) { - darkPreference = true; - } + var darkPreference = + window.matchMedia("(prefers-color-scheme: dark)").matches === true; // Initialize a few variables for the loop: // // - active: will contain the index of the theme that should be active. Note that there @@ -24,43 +21,64 @@ function set_theme_from_local_storage() { // // - disabled: style sheets that should be disabled (i.e. all the theme style sheets // that are not the currently active theme) - var active = null; var disabled = []; var darkTheme = null; + var active = null; + var disabled = []; + var primaryLightTheme = null; + var primaryDarkTheme = null; for (var i = 0; i < document.styleSheets.length; i++) { var ss = document.styleSheets[i]; // The tag of each style sheet is expected to have a data-theme-name attribute // which must contain the name of the theme. The names in localStorage much match this. var themename = ss.ownerNode.getAttribute("data-theme-name"); // attribute not set => non-theme stylesheet => ignore - if(themename === null) continue; + if (themename === null) continue; // To distinguish the default (primary) theme, it needs to have the data-theme-primary // attribute set. - var isprimary = (ss.ownerNode.getAttribute("data-theme-primary") !== null); - // Check if the theme is primary dark theme - var isDarkTheme = (ss.ownerNode.getAttribute("data-theme-primary-dark") !== null); - // If ss is for dark theme then set the value of darkTheme to the name of the theme - if(isDarkTheme) darkTheme = themename; + if (ss.ownerNode.getAttribute("data-theme-primary") !== null) { + primaryLightTheme = themename; + } + // Check if the theme is primary dark theme so that we could store its name in darkTheme + if (ss.ownerNode.getAttribute("data-theme-primary-dark") !== null) { + primaryDarkTheme = themename; + } // If we find a matching theme (and it's not the default), we'll set active to non-null - if(themename === theme) active = i; + if (themename === theme) active = i; // Store the style sheets of inactive themes so that we could disable them - if(themename !== theme) disabled.push(ss); + if (themename !== theme) disabled.push(ss); } - if(active !== null) { + var activeTheme = null; + if (active !== null) { // If we did find an active theme, we'll (1) add the theme--$(theme) class to - document.getElementsByTagName('html')[0].className = "theme--" + theme; - // and (2) disable all the other theme stylesheets - disabled.forEach(function(ss){ - ss.disabled = true; - }); + document.getElementsByTagName("html")[0].className = "theme--" + theme; + activeTheme = theme; + } else { + // If we did _not_ find an active theme, then we need to fall back to the primary theme + // which can either be dark or light, depending on the user's OS preference. + var activeTheme = darkPreference ? primaryDarkTheme : primaryLightTheme; + // In case it somehow happens that the relevant primary theme was not found in the + // preceding loop, we abort without doing anything. + if (activeTheme === null) { + console.error("Unable to determine primary theme."); + return; + } + // When switching to the primary light theme, then we must not have a class name + // for the tag. That's only for non-primary or the primary dark theme. + if (darkPreference) { + document.getElementsByTagName("html")[0].className = + "theme--" + activeTheme; + } else { + document.getElementsByTagName("html")[0].className = ""; + } } - else if(darkTheme !== null && darkPreference === true) { - // If we did find an active theme, we'll (1) add the theme--$(theme) class to - document.getElementsByTagName('html')[0].className = "theme--" + darkTheme; - // and (2) disable all the other theme stylesheets - disabled.forEach(function(ss){ - if (ss.ownerNode.getAttribute("data-theme-name") !== darkTheme) { - ss.disabled = true; - } - }); + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + // The tag of each style sheet is expected to have a data-theme-name attribute + // which must contain the name of the theme. The names in localStorage much match this. + var themename = ss.ownerNode.getAttribute("data-theme-name"); + // attribute not set => non-theme stylesheet => ignore + if (themename === null) continue; + // we'll disable all the stylesheets, except for the active one + ss.disabled = !(themename == activeTheme); } } set_theme_from_local_storage(); diff --git a/dev/assets/warner.js b/dev/assets/warner.js index 5531c885..3f6f5d00 100644 --- a/dev/assets/warner.js +++ b/dev/assets/warner.js @@ -1,49 +1,52 @@ -function maybeAddWarning () { - // DOCUMENTER_NEWEST is defined in versions.js, DOCUMENTER_CURRENT_VERSION and DOCUMENTER_STABLE - // in siteinfo.js. - // If either of these are undefined something went horribly wrong, so we abort. - if ( - window.DOCUMENTER_NEWEST === undefined || - window.DOCUMENTER_CURRENT_VERSION === undefined || - window.DOCUMENTER_STABLE === undefined - ) { - return - }; +function maybeAddWarning() { + // DOCUMENTER_NEWEST is defined in versions.js, DOCUMENTER_CURRENT_VERSION and DOCUMENTER_STABLE + // in siteinfo.js. + // If either of these are undefined something went horribly wrong, so we abort. + if ( + window.DOCUMENTER_NEWEST === undefined || + window.DOCUMENTER_CURRENT_VERSION === undefined || + window.DOCUMENTER_STABLE === undefined + ) { + return; + } - // Current version is not a version number, so we can't tell if it's the newest version. Abort. - if (!/v(\d+\.)*\d+/.test(window.DOCUMENTER_CURRENT_VERSION)) { - return - }; + // Current version is not a version number, so we can't tell if it's the newest version. Abort. + if (!/v(\d+\.)*\d+/.test(window.DOCUMENTER_CURRENT_VERSION)) { + return; + } - // Current version is newest version, so no need to add a warning. - if (window.DOCUMENTER_NEWEST === window.DOCUMENTER_CURRENT_VERSION) { - return - }; + // Current version is newest version, so no need to add a warning. + if (window.DOCUMENTER_NEWEST === window.DOCUMENTER_CURRENT_VERSION) { + return; + } - // Add a noindex meta tag (unless one exists) so that search engines don't index this version of the docs. - if (document.body.querySelector('meta[name="robots"]') === null) { - const meta = document.createElement('meta'); - meta.name = 'robots'; - meta.content = 'noindex'; + // Add a noindex meta tag (unless one exists) so that search engines don't index this version of the docs. + if (document.body.querySelector('meta[name="robots"]') === null) { + const meta = document.createElement("meta"); + meta.name = "robots"; + meta.content = "noindex"; - document.getElementsByTagName('head')[0].appendChild(meta); - }; + document.getElementsByTagName("head")[0].appendChild(meta); + } - const div = document.createElement('div'); - div.classList.add('outdated-warning-overlay'); - const closer = document.createElement('button'); - closer.classList.add('outdated-warning-closer', 'delete'); - closer.addEventListener('click', function () { - document.body.removeChild(div); - }); - const href = window.documenterBaseURL + '/../' + window.DOCUMENTER_STABLE; - div.innerHTML = 'This documentation is not for the latest stable release, but for either the development version or an older release.
    Click here to go to the documentation for the latest stable release.'; - div.appendChild(closer); - document.body.appendChild(div); -}; + const div = document.createElement("div"); + div.classList.add("outdated-warning-overlay"); + const closer = document.createElement("button"); + closer.classList.add("outdated-warning-closer", "delete"); + closer.addEventListener("click", function () { + document.body.removeChild(div); + }); + const href = window.documenterBaseURL + "/../" + window.DOCUMENTER_STABLE; + div.innerHTML = + 'This documentation is not for the latest stable release, but for either the development version or an older release.
    Click here to go to the documentation for the latest stable release.'; + div.appendChild(closer); + document.body.appendChild(div); +} -if (document.readyState === 'loading') { - document.addEventListener('DOMContentLoaded', maybeAddWarning); +if (document.readyState === "loading") { + document.addEventListener("DOMContentLoaded", maybeAddWarning); } else { - maybeAddWarning(); -}; + maybeAddWarning(); +} diff --git a/dev/index.html b/dev/index.html index 2dc82634..0a11d48e 100644 --- a/dev/index.html +++ b/dev/index.html @@ -1,2 +1,17 @@ -Introduction · GaPSE.jl

    GaPSE.jl : a Galaxy Power Spectrum Estimator

    This is the documentation of GaPSE.jl package, an implementation of a Galaxy Power Spectrum Estimator written in Julia.

    Documentation

    The documentation was built using Documenter.jl.

    Documentation built on 2023-01-16T15:05:44.338 using Julia 1.8.5.

    Brief description

    Measurements of the clustering of galaxies in Fourier space, at low wavenumbers, offer a window into the early Universe via the possible presence of scale dependent bias generated by Primordial Non Gaussianities [1] [2]. On such large scales, a Newtonian treatment of density of density perturbations might not be sufficient to describe the measurements, and a fully relativistic calculation should be employed.

    In this program, we compute, for a given input matter power spectum (obtained from CLASS), all the GR effects two point auto-correlation and cross-correlation functions, for an arbitrary multipole order. This project, and the analytical expressions used for the TPCFs, are based on the article of Emanuele Castorina and Enea Di Dio [3].

    The most confortable way to use this code is through the Jupyter Notebooks: some .ipynb is already provided in the main directory, and we encourage you to follow the TUTORIAL.ipynb file first. The basic structure of the program and the most important functions are there presented.

    Licence

    This software is under the GNU 3.0 General Public Licence. See the file LICENCE.md.

    Acknowledgements

    This package make extensive use of Spline1D (from the Dierckx[4] Julia package) and the Spherical Bessel Transform function xicalc (from the TwoFAST[5] Julia package).

    References

    <a id="1">[1]</a> Dalal, Doré et al., Imprints of primordial non-Gaussianities on large-scale structure (2008), American Physical Society, DOI: 10.1103/PhysRevD.77.123514, url: https://journals.aps.org/prd/abstract/10.1103/PhysRevD.77.123514

    <a id="2">[2]</a> Slosar, Hirata et al., Constraints on local primordial non-Gaussianity from large scale structure (2008), Journal of Cosmology and Astroparticle Physics, DOI: 10.1088/1475-7516/2008/08/031, url: https://doi.org/10.1088/1475-7516/2008/08/031

    <a id="3">[3]</a> Castorina, Di Dio, The observed galaxy power spectrum in General Relativity (2022), Journal of Cosmology and Astroparticle Physics, DOI: 10.1088/1475-7516/2022/01/061, url: https://doi.org/10.1088/1475-7516/2022/01/061

    <a id="4">[4]</a> Paul Dierckx, Curve and Surface Fitting with Splines (1993), Oxford University Press

    <a id="5">[5]</a> Gebhardt, Jeong et al, Fast and accurate computation of projected two-point functions (2018), American Physical Society, DOI: 10.1103/PhysRevD.97.023504, url: https://link.aps.org/doi/10.1103/PhysRevD.97.023504

    Contents

    Index

    +Introduction · GaPSE.jl

    GaPSE.jl : a Galaxy Power Spectrum Estimator

    This is the documentation of GaPSE.jl package, an implementation of a Galaxy Power Spectrum Estimator written in Julia.

    Documentation

    The documentation was built using Documenter.jl.

    Documentation built on 2024-02-23T11:02:06.463 using Julia 1.9.4.

    Brief description

    Measurements of the clustering of galaxies in Fourier space, at low wavenumbers, offer a window into the early Universe via the possible presence of scale dependent bias generated by Primordial Non Gaussianities [1] [2]. On such large scales, a Newtonian treatment of density of density perturbations might not be sufficient to describe the measurements, and a fully relativistic calculation should be employed.

    Given the matter Power Spectrum (PS) at redshift $z=0$ and the background quantities for the Universe considered (both read from CLASS outputs), this program can compute:

    • all the 16 TPCFs arising from the Luminosity Distance (LD) perturbations (see Eq.(2.48) of [4]) for an arbitrary multipole order.

    • all the 25 TPCFs concerning the relativistic Galaxy Number Counts (GNC) (see Eq.(2.52) of [4]) for an arbitrary multipole order.

    • all the 20 cross correlations between GNC and LD (and their 20 counterparts LD cross GNC) for an arbitrary multipole order.

    • the PS multipoles of all of them (based on the Yamamoto estimator).

    • the Doppler and matter TPCFs in the plane-parallel approximation.

    All these calculations can be performed both with and without a survey window function. The code implements also a toy-survey with azymuthal symmetry.

    This project, and the analytical expressions used for the TPCFs, are based on the article of Emanuele Castorina and Enea Di Dio [3].

    Installation and Usage

    Currently, this package is not in the Julia package registries. There are two main ways to install and use GaPSE on your local machine:

    • the traditional way: you clone this gitrepo locally and you install the librarires that GaPSE needs in a suited Julia enviroment; it requires a compatible Julia version ≥1.8;
    • using a Docker container (experimental): you pull and run the GaPSE container; it requires a Docker installation.

    traditional way: Installation

    Assuming that you have already installed a coompatible Julia version, the simplest way to install this software is then the following:

    • in the terminal, go to the directory where you want to install this package;

    • clone this repository with Git

      $ git clone https://github.com/foglienimatteo/GaPSE.jl

      or manually download the source code from the url https://github.com/foglienimatteo/GaPSE.jl (Code > Download Zip)

    • go inside the directory of GaPSE ($ cd GaPSE.jl in the shell)

    Inside the directory, there is a file called install_gapse.jl, which is a Julia script conceived for downloading and installing all the dependencies of GaPSE. You can run it by typing in the terminal:

         $ julia install_gapse.jl

    If there are no error messages at the end of the installations, than GaPSE is corretly configured and you can start to use it!

    NOTE: the packages that this script will install are the ones strictly required for GaPSE. The ipynbs we provide need however some more, as Plots, LaTeXStrings and PyPlot (which in turn requires a python kernel with Matplotlib installed); in case you don't have them, run with a terminal in this directory:

    $ pip3 install matplotlib
    +$ julia --activate=. --eval 'using Pkg; for p in ["Plots", "LaTeXStrings", "PyPlot"]; Pkg.add(p); end; Pkg.resolve()'

    NOTE: instead of using the install_gapse.jl script, you can also do the same in a more interactive way, if you prefer:

    • open a Julia REPL session and activate the project; you can achieve that opening the REPL with

      $ julia --activate=.

      or directy inside the REPL entering the Pkg mode (]) and running activate .

    • enter the Pkg mode (if you haven't done in the previous step) typing ] and run instantiate; this command will automatically detect and install all the package dependecies (listed in Project.toml)

    • done! You can exit from the package mode (press the Backspace key on an empty line) and start to use GaPSE

    traditional way: Usage

    There are three ways in order to use this code:

    • you can write whatever instruction inside the file GaPSE-exe.jl and then run in the command line

        $ julia GaPSE-exe.jl
    • you can open a Julia REPL session, include the code with

         include("<path-to-GaPSE.jl-directory>/src/GaPSE.jl")

      and then use interactively the GaPSE functions

    • you can run the same include("<path-to-GaPSE.jl-directory>/src/GaPSE.jl") command in a Jupyter Notebook, and use the code functions inside it. This is by far the most confortable way.

    Some .ipynbs are already provided in the directory ipynbs :

    • we encourage you to follow the ipynbs/TUTORIAL.ipynb file first. The basic structure of the code and the most important functions are there presented
    • ipynbs/Computations_b1p5-sb0-fevo0.ipynb explains the analytical Primordial Non-Gaussianities model we use here, compute its contribution in the redshift bin $1.0 \leq z \leq 1.5$ and compare it with the GNC effects, all using our toy-model window function with angular opening $\theta_{\rm max} = \pi/2$
    • ipynbs/Generic_Window.ipynb explains how to use GaPSE with a generic Window Function of your choice
    • the ipynbs/Computations_b1p5-sb0-fevo0.jl Julia file its the translation into script of ipynbs/Computations_b1p5-sb0-fevo0.ipynb; you can easily run it from the command line with:
        $ julia Computations_b1p5-sb0-fevo0.jl

    The code is well tested and documented: almost each struct/function has a docstring that you can easily access in Julia with ?<name-of-the-struct/function>, and there is an acitive GitHub Pages website with the latest stable documentation.

    Docker container: Installation and Usage

    The Dockerfile we provide in this directory is the one we used to create the container image corresponding to this GaPSE version.

    The images are saved in https://hub.docker.com/repository/docker/matteofoglieni/gapse/general and the tag is the same as the GaPSE version the container refers to + a latin letter (alphabetically orderer), to take into account different version of the Dockerfile which refer to the same GaPSE one. The latest container name is then gapse:0.8.0a.

    These containers have already installed all the Julia packages that GaPSE needs (i.e. the ones listed in Project.toml) + come others for the ipynbs (check the Dockerfile itself).

    Supposing that you have already installed Docker, so as to use GaPSE as a container:

    • download the image:
      $ sudo docker pull matteofoglieni/gapse:0.8.0a
    • choose a free port where to access the JupyterLab of the container; we will use 10000;
    • run the container with that port:
      $ sudo docker run -d -p 10000:8888 matteofoglieni/gapse:0.8.0a
    • get the logs of the container and copy the Jupyter token (in the following output is 531vbeb08567581944e486d47e1tee15683757086205da68):
      $ sudo docker logs $(sudo docker ps -ql)
      +...
      +[I 2023-09-13 12:51:47.960 ServerApp] Jupyter Server 2.7.0 is running at:
      +[I 2023-09-13 12:51:47.960 ServerApp] http://7b1ca9747263:8888/lab?token=531vbeb08567581944e486d47e1tee15683757086205da68
      +[I 2023-09-13 12:51:47.960 ServerApp]     http://127.0.0.1:8888/lab?token=531vbeb08567581944e486d47e1tee15683757086205da68
      +[I 2023-09-13 12:51:47.960 ServerApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
      +[C 2023-09-13 12:51:47.962 ServerApp] 
      +    
      +    To access the server, open this file in a browser:
      +        file:///home/jovyan/.local/share/jupyter/runtime/jpserver-7-open.html
      +    Or copy and paste one of these URLs:
      +        http://7f1ca9847263:8888/lab?token=531vbeb08567581944e486d47e1tee15683757086205da68
      +        http://127.0.0.1:8888/lab?token=531vbeb08567581944e486d47e1tee15683757086205da68
      +[I 2023-09-13 12:51:48.653 ServerApp] Skipped non-installed server(s): bash-language-server, dockerfile-language-server-nodejs, javascript-typescript-langserver, jedi-language-server, julia-language-server, pyright, python-language-server, python-lsp-server, r-languageserver, sql-language-server, texlab, typescript-language-server, unified-language-server, vscode-css-languageserver-bin, vscode-html-languageserver-bin, vscode-json-languageserver-bin, yaml-language-server
      +...
    • open a browser of your choice on your local machine and paste as URL http://127.0.0.1:10000/lab?token=531vbeb08567581944e486d47e1tee15683757086205da68 (essentially, you just have to substitute the port 8888 with the one you choose in the URL showed in the previous logs).
    • now you should see a JupyterLab page containing the GaPSE files.

    Now you can use GaPSE inside the Jupyter interface as normally!

    Quick summary of Docker commands, in case you don't know them:

    • sudo docker ps [-a] : list running containers (all with -a);
    • sudo docker logs <container-name/id> : get the logs of a container;
    • sudo docker start/stop <container-name/id> : start a stopped container/stop a running container;
    • sudo docker rm <container-id/name> : delete a container;
    • sudo docker pull <image> : download a container image;
    • sudo docker run <image> : create a running container from an image;
    • sudo docker image list : list all the local images;
    • sudo docker image rm <image> : delete an image.

    Dependencies

    GaPSE.jl makes extensive use of the following packages:

    Furthermore, the notebooks we provide in ipynbs use:

    • Plots for the pure julian plots;
    • LaTeXStrings for the labels in LaTeX;
    • PyPlot for the julian plots in the python style; this package is based on the Matplotlib Python package, and it requires it in order to run properly.

    How to report bugs, suggest improvements and/or contribute

    As already mentioned above, this is a WIP project used mostly by the authors themselves, and so bugs are behind the corner. If you discover one of them, or if you would like to make a suggestion about a possible new feature that the code might implement, do not hesitate to contact the authors via email (<matteo.foglieni@lrz.de>) or fork the repository and open a pull request like follows:

    • fork the project: on the top of the GaPSE.jl Github page, go to Fork > Create a new Fork
    • download your forked repository from your GitHub profile
    • create your branch: in the terminal, run $ git checkout -b feature/<your-feature-name>
    • make the changes/improvements you want in that branch
    • commit your changes in that branch: in the terminal, run $ git commit -m 'added the feature <your-feature-name>'
    • push: in the terminal, run $ git push origin feature/<your-feature-name>
    • open a Pull Request for that branch

    Using this code

    If you use GaPSE to compute the galaxy power spectrum/correlation function please refer to the two following papers:

    If you also use the code to compute the perturbations in the luminosity distance, please refer also to

    • Pantiri, Foglieni, Di Dio, Castorina, The power spectrum of luminosity distance fluctuations in General Relativity (2023) [in preparation]

    Licence

    This software is under the GNU 3.0 General Public Licence. See the file LICENCE.md in the repository.

    References

    <a id="1">[1]</a> Dalal, Doré et al., Imprints of primordial non-Gaussianities on large-scale structure (2008), American Physical Society, DOI: 10.1103/PhysRevD.77.123514, url: https://journals.aps.org/prd/abstract/10.1103/PhysRevD.77.123514

    <a id="2">[2]</a> Slosar, Hirata et al., Constraints on local primordial non-Gaussianity from large scale structure (2008), Journal of Cosmology and Astroparticle Physics, DOI: 10.1088/1475-7516/2008/08/031, url: https://doi.org/10.1088/1475-7516/2008/08/031

    <a id="3">[3]</a> Castorina, Di Dio, The observed galaxy power spectrum in General Relativity (2022), Journal of Cosmology and Astroparticle Physics, DOI: 10.1088/1475-7516/2022/01/061, url: https://doi.org/10.1088/1475-7516/2022/01/061

    <a id="4">[4]</a> Paul Dierckx, Curve and Surface Fitting with Splines (1993), Oxford University Press

    <a id="5">[5]</a> Gebhardt, Jeong et al, Fast and accurate computation of projected two-point functions (2018), American Physical Society, DOI: 10.1103/PhysRevD.97.023504, url: https://link.aps.org/doi/10.1103/PhysRevD.97.023504

    Contents

    Index

    diff --git a/dev/search/index.html b/dev/search/index.html deleted file mode 100644 index aa9f07aa..00000000 --- a/dev/search/index.html +++ /dev/null @@ -1,2 +0,0 @@ - -Search · GaPSE.jl

    Loading search...

      diff --git a/dev/search_index.js b/dev/search_index.js index d2c2611c..4b48a31c 100644 --- a/dev/search_index.js +++ b/dev/search_index.js @@ -1,3 +1,3 @@ var documenterSearchIndex = {"docs": -[{"location":"Dicts/","page":"Dictionaries and names","title":"Dictionaries and names","text":"DocTestSetup = quote\n using GaPSE\nend","category":"page"},{"location":"Dicts/#Dictionaries-and-other-consts","page":"Dictionaries and names","title":"Dictionaries and other consts","text":"","category":"section"},{"location":"Dicts/","page":"Dictionaries and names","title":"Dictionaries and names","text":"GaPSE.VALID_INTEGRATION_ALGORITHM\n\nGaPSE.GR_EFFECTS_LD\nGaPSE.VEC_ξs_LD\nGaPSE.DICT_GR_ξs_LD\nGaPSE.INDEX_GR_EFFECT_LD\nGaPSE.GR_EFFECT_INDEX_LD\n\nGaPSE.GR_EFFECTS_GNC\nGaPSE.VEC_ξs_GNC\nGaPSE.DICT_GR_ξs_GNC\nGaPSE.DICT_ξs_GR_GNC\nGaPSE.INDEX_GR_EFFECT_GNC\nGaPSE.GR_EFFECT_INDEX_GNC\nGaPSE.EFFECTS_WITH_OBS_VEL\nGaPSE.VALID_OBS_VALUES\n\nGaPSE.GR_EFFECTS_GNCxLD\nGaPSE.GR_EFFECTS_LDxGNC\nGaPSE.VEC_ξs_GNCxLD\nGaPSE.VEC_ξs_LDxGNC\nGaPSE.DICT_GR_ξs_GNCxLD\nGaPSE.DICT_GR_ξs_LDxGNC\nGaPSE.INDEX_GR_EFFECT_GNCxLD\nGaPSE.INDEX_GR_EFFECT_LDxGNC\nGaPSE.GR_EFFECT_INDEX_GNCxLD\nGaPSE.GR_EFFECT_INDEX_LDxGNC","category":"page"},{"location":"Dicts/#GaPSE.VALID_INTEGRATION_ALGORITHM","page":"Dictionaries and names","title":"GaPSE.VALID_INTEGRATION_ALGORITHM","text":" const VALID_INTEGRATION_ALGORITHM = [:lobatto, :quad, :trap]\n\nValid integration lgorithm that can be used in order to perform an integration over the mu angle cosine.\n\n\n\n\n\n","category":"constant"},{"location":"Dicts/#GaPSE.GR_EFFECTS_LD","page":"Dictionaries and names","title":"GaPSE.GR_EFFECTS_LD","text":" const GR_EFFECTS_LD = [\n \"auto_doppler\", \"auto_lensing\",\n \"auto_localgp\", \"auto_integratedgp\", \n \n \"lensing_doppler\", \"doppler_lensing\",\n \"doppler_localgp\", \"localgp_doppler\",\n \"doppler_integratedgp\", \"integratedgp_doppler\",\n \"lensing_localgp\", \"localgp_lensing\",\n \"lensing_integratedgp\", \"integratedgp_lensing\",\n \"localgp_integratedgp\", \"integratedgp_localgp\",\n ]\n\nThe names of the GR effects implemented. Their order is associated with the one in VEC_ξs_LD, so be careful to change it.\n\nSee also: VEC_ξs_LD\n\n\n\n\n\n","category":"constant"},{"location":"Dicts/#GaPSE.VEC_ξs_LD","page":"Dictionaries and names","title":"GaPSE.VEC_ξs_LD","text":" const VEC_ξs_LD = [\n ξ_LD_Doppler, ξ_LD_Lensing, ξ_LD_LocalGP, ξ_LD_IntegratedGP, \n ξ_LD_Lensing_Doppler, ξ_LD_Doppler_Lensing,\n ξ_LD_Doppler_LocalGP, ξ_LD_LocalGP_Doppler,\n ξ_LD_Doppler_IntegratedGP, ξ_LD_IntegratedGP_Doppler,\n ξ_LD_Lensing_LocalGP, ξ_LD_LocalGP_Lensing,\n ξ_LD_Lensing_IntegratedGP, ξ_LD_IntegratedGP_Lensing,\n ξ_LD_LocalGP_IntegratedGP, ξ_LD_IntegratedGP_LocalGP\n ]\n\nThe names of the GR effect TPCFs implemented. Their order is associated with the one in GR_EFFECTS_LD, so be careful to change it.\n\nSee also: GR_EFFECTS_LD\n\n\n\n\n\n","category":"constant"},{"location":"Dicts/#GaPSE.DICT_GR_ξs_LD","page":"Dictionaries and names","title":"GaPSE.DICT_GR_ξs_LD","text":" const DICT_GR_ξs_LD::Dict{String,Function}\n\nFor an input key string effect from GR_EFFECTS_LD, return the associated TPCF DICT_GR_ξs_LD[effect] from VEC_ξs_LD.\n\nExample\n\njulia> GaPSE.DICT_GR_ξs_LD[\"auto_doppler\"]\nξ_LD_Doppler\n\nSee also: GR_EFFECTS_LD, VEC_ξs_LD\n\n\n\n\n\n","category":"constant"},{"location":"Dicts/#GaPSE.INDEX_GR_EFFECT_LD","page":"Dictionaries and names","title":"GaPSE.INDEX_GR_EFFECT_LD","text":" const INDEX_GR_EFFECT_LD::Dict{String,Integer}\n\nFor an input key string effect from GR_EFFECTS_LD, return the associated index position in that vector.\n\nExample\n\njulia> GaPSE.INDEX_GR_EFFECT_LD[\"auto_doppler\"]\n1\n\nSee also: GR_EFFECTS_LD\n\n\n\n\n\n","category":"constant"},{"location":"Dicts/#GaPSE.GR_EFFECT_INDEX_LD","page":"Dictionaries and names","title":"GaPSE.GR_EFFECT_INDEX_LD","text":" const GR_EFFECT_INDEX_LD::Dict{Integer,String}\n\nFor an input index position i of GR_EFFECTS_LD, return the associated key string effect.\n\nExample\n\njulia> GaPSE.DICT_GR_ξs_LD[1]\n\"auto_doppler\"\n\nSee also: GR_EFFECTS_LD\n\n\n\n\n\n","category":"constant"},{"location":"Dicts/#GaPSE.GR_EFFECTS_GNC","page":"Dictionaries and names","title":"GaPSE.GR_EFFECTS_GNC","text":" const GR_EFFECTS_GNC = [\n \"auto_newton\", \"auto_doppler\", \"auto_lensing\",\n \"auto_localgp\", \"auto_integratedgp\", \n \n \"newton_doppler\", \"doppler_newton\",\n \"newton_lensing\", \"lensing_newton\",\n \"newton_localgp\", \"localgp_newton\",\n \"newton_integratedgp\", \"integratedgp_newton\",\n \"lensing_doppler\", \"doppler_lensing\",\n \"doppler_localgp\", \"localgp_doppler\",\n \"doppler_integratedgp\", \"integratedgp_doppler\",\n \"lensing_localgp\", \"localgp_lensing\",\n \"lensing_integratedgp\", \"integratedgp_lensing\",\n \"localgp_integratedgp\", \"integratedgp_localgp\",\n ]\n\nThe names of the GR effects implemented. Their order is associated with the one in VEC_ξs_GNC, so be careful to change it.\n\nSee also: VEC_ξs_GNC\n\n\n\n\n\n","category":"constant"},{"location":"Dicts/#GaPSE.VEC_ξs_GNC","page":"Dictionaries and names","title":"GaPSE.VEC_ξs_GNC","text":" const VEC_ξs_GNC = [\n ξ_GNC_Newtonian, ξ_GNC_Doppler, ξ_GNC_Lensing,\n ξ_GNC_LocalGP, ξ_GNC_IntegratedGP, \n \n ξ_GNC_Newtonian_Doppler, ξ_GNC_Doppler_Newtonian,\n ξ_GNC_Newtonian_Lensing, ξ_GNC_Lensing_Newtonian,\n ξ_GNC_Newtonian_LocalGP, ξ_GNC_LocalGP_Newtonian,\n ξ_GNC_Newtonian_IntegratedGP, ξ_GNC_IntegratedGP_Newtonian,\n ξ_GNC_Lensing_Doppler, ξ_GNC_Doppler_Lensing,\n ξ_GNC_Doppler_LocalGP, ξ_GNC_LocalGP_Doppler,\n ξ_GNC_Doppler_IntegratedGP, ξ_GNC_IntegratedGP_Doppler,\n ξ_GNC_Lensing_LocalGP, ξ_GNC_LocalGP_Lensing,\n ξ_GNC_Lensing_IntegratedGP, ξ_GNC_IntegratedGP_Lensing,\n ξ_GNC_LocalGP_IntegratedGP, ξ_GNC_IntegratedGP_LocalGP\n ]\n\nThe names of the GR effect TPCFs implemented. Their order is associated with the one in GR_EFFECTS_GNC, so be careful to change it.\n\nSee also: GR_EFFECTS_GNC\n\n\n\n\n\n","category":"constant"},{"location":"Dicts/#GaPSE.DICT_GR_ξs_GNC","page":"Dictionaries and names","title":"GaPSE.DICT_GR_ξs_GNC","text":" const DICT_GR_ξs_GNC::Dict{String,Function}\n\nFor an input key string effect from GR_EFFECTS_GNC, return the associated TPCF DICT_GR_ξs_GNC[effect] from VEC_ξs_GNC.\n\nExample\n\njulia> GaPSE.DICT_GR_ξs_GNC[\"auto_doppler\"]\nξ_GNC_Doppler\n\nSee also: GR_EFFECTS_GNC, VEC_ξs_GNC\n\n\n\n\n\n","category":"constant"},{"location":"Dicts/#GaPSE.DICT_ξs_GR_GNC","page":"Dictionaries and names","title":"GaPSE.DICT_ξs_GR_GNC","text":" const DICT_GR_ξs_GNC::Dict{Function,String}\n\nFor an input key TPCF function func from VEC_ξs_GNC, return the associated string DICT_GR_ξs_GNC[func] from GR_EFFECTS_GNC,\n\nExample\n\njulia> GaPSE.DICT_GR_ξs_GNC[ξ_GNC_Doppler]\n\"auto_doppler\"\n\nSee also: GR_EFFECTS_GNC, VEC_ξs_GNC\n\n\n\n\n\n","category":"constant"},{"location":"Dicts/#GaPSE.INDEX_GR_EFFECT_GNC","page":"Dictionaries and names","title":"GaPSE.INDEX_GR_EFFECT_GNC","text":" const INDEX_GR_EFFECT_GNC::Dict{String,Integer}\n\nFor an input key string effect from GR_EFFECTS_GNC, return the associated index position in that vector.\n\nExample\n\njulia> GaPSE.INDEX_GR_EFFECT_GNC[\"auto_doppler\"]\n1\n\nSee also: GR_EFFECTS_GNC\n\n\n\n\n\n","category":"constant"},{"location":"Dicts/#GaPSE.GR_EFFECT_INDEX_GNC","page":"Dictionaries and names","title":"GaPSE.GR_EFFECT_INDEX_GNC","text":" const GR_EFFECT_INDEX_GNC::Dict{Integer,String}\n\nFor an input index position i of GR_EFFECTS_GNC, return the associated key string effect.\n\nExample\n\njulia> GaPSE.DICT_GR_ξs_GNC[1]\n\"auto_doppler\"\n\nSee also: GR_EFFECTS_GNC\n\n\n\n\n\n","category":"constant"},{"location":"Dicts/#GaPSE.EFFECTS_WITH_OBS_VEL","page":"Dictionaries and names","title":"GaPSE.EFFECTS_WITH_OBS_VEL","text":" const EFFECTS_WITH_OBS_VEL = [\n \"auto_doppler\",\n \"newton_doppler\", \"doppler_newton\",\n \"lensing_doppler\", \"doppler_lensing\",\n \"doppler_localgp\", \"localgp_doppler\",\n \"doppler_integratedgp\", \"integratedgp_doppler\",\n ]\n\nContains the names of the GNC effects that have observer terms derived from a non-zero observer velocity.\n\n\n\n\n\n","category":"constant"},{"location":"Dicts/#GaPSE.VALID_OBS_VALUES","page":"Dictionaries and names","title":"GaPSE.VALID_OBS_VALUES","text":" const VALID_OBS_VALUES = [:yes, :no, :noobsvel]\n\nContains the valid Symbols for the variable \"obs\", which refers to the GNC terms related to the observer.\n\n\n\n\n\n","category":"constant"},{"location":"Dicts/#GaPSE.GR_EFFECTS_GNCxLD","page":"Dictionaries and names","title":"GaPSE.GR_EFFECTS_GNCxLD","text":" const GR_EFFECTS_GNCxLD = [\n \"newton_doppler\", \n \"newton_lensing\", \n \"newton_localgp\", \n \"newton_integratedgp\",\n\n \"doppler_doppler\",\n \"doppler_lensing\",\n \"doppler_localgp\", \n \"doppler_integratedgp\",\n\n \"lensing_doppler\",\n \"lensing_lensing\",\n \"lensing_localgp\",\n \"lensing_integratedgp\",\n \n \"localgp_doppler\",\n \"localgp_lensing\",\n \"localgp_localgp\",\n \"localgp_integratedgp\",\n\n \"integratedgp_doppler\",\n \"integratedgp_lensing\",\n \"integratedgp_localgp\",\n \"integratedgp_integratedgp\",\n ]\n\nThe names of the GR effects implemented. Their order is associated with the one in VEC_ξs_GNCxLD, so be careful to change it.\n\nSee also: VEC_ξs_GNCxLD\n\n\n\n\n\n","category":"constant"},{"location":"Dicts/#GaPSE.GR_EFFECTS_LDxGNC","page":"Dictionaries and names","title":"GaPSE.GR_EFFECTS_LDxGNC","text":" const GR_EFFECTS_LDxGNC = [\n \"doppler_newton\", \n \"lensing_newton\", \n \"localgp_newton\", \n \"integratedgp_newton\",\n\n \"doppler_doppler\",\n \"lensing_doppler\",\n \"localgp_doppler\", \n \"integratedgp_doppler\",\n\n \"doppler_lensing\",\n \"lensing_lensing\",\n \"localgp_lensing\",\n \"integratedgp_lensing\",\n \n \"doppler_localgp\",\n \"lensing_localgp\",\n \"localgp_localgp\",\n \"integratedgp_localgp\",\n\n \"doppler_integratedgp\",\n \"lensing_integratedgp\",\n \"localgp_integratedgp\",\n \"integratedgp_integratedgp\",\n ]\n\nThe names of the GR effects implemented. Their order is associated with the one in VEC_ξs_LDxGNC, so be careful to change it.\n\nSee also: VEC_ξs_LDxGNC\n\n\n\n\n\n","category":"constant"},{"location":"Dicts/#GaPSE.VEC_ξs_GNCxLD","page":"Dictionaries and names","title":"GaPSE.VEC_ξs_GNCxLD","text":" const VEC_ξs_GNCxLD = [\n ξ_GNCxLD_Newtonian_Doppler,\n ξ_GNCxLD_Newtonian_Lensing, \n ξ_GNCxLD_Newtonian_LocalGP, \n ξ_GNCxLD_Newtonian_IntegratedGP, \n\n ξ_GNCxLD_Doppler_Doppler,\n ξ_GNCxLD_Doppler_Lensing,\n ξ_GNCxLD_Doppler_LocalGP, \n ξ_GNCxLD_Doppler_IntegratedGP, \n \n ξ_GNCxLD_Lensing_Doppler,\n ξ_GNCxLD_Lensing_Lensing,\n ξ_GNCxLD_Lensing_LocalGP,\n ξ_GNCxLD_Lensing_IntegratedGP,\n\n ξ_GNCxLD_LocalGP_Doppler,\n ξ_GNCxLD_LocalGP_Lensing,\n ξ_GNCxLD_LocalGP_LocalGP,\n ξ_GNCxLD_LocalGP_IntegratedGP,\n\n ξ_GNCxLD_IntegratedGP_Doppler,\n ξ_GNCxLD_IntegratedGP_Lensing,\n ξ_GNCxLD_IntegratedGP_LocalGP,\n ξ_GNCxLD_IntegratedGP_IntegratedGP,\n ]\n\nThe names of the GR effect TPCFs implemented. Their order is associated with the one in GR_EFFECTS_GNCxLD, so be careful to change it.\n\nSee also: GR_EFFECTS_GNCxLD\n\n\n\n\n\n","category":"constant"},{"location":"Dicts/#GaPSE.VEC_ξs_LDxGNC","page":"Dictionaries and names","title":"GaPSE.VEC_ξs_LDxGNC","text":" const VEC_ξs_LDxGNC = [\n ξ_LDxGNC_Doppler_Newtonian,\n ξ_LDxGNC_Lensing_Newtonian,\n ξ_LDxGNC_LocalGP_Newtonian,\n ξ_LDxGNC_IntegratedGP_Newtonian,\n\n ξ_LDxGNC_Doppler_Doppler,\n ξ_LDxGNC_Lensing_Doppler,\n ξ_LDxGNC_LocalGP_Doppler,\n ξ_LDxGNC_IntegratedGP_Doppler,\n\n ξ_LDxGNC_Doppler_Lensing,\n ξ_LDxGNC_Lensing_Lensing,\n ξ_LDxGNC_LocalGP_Lensing,\n ξ_LDxGNC_IntegratedGP_Lensing,\n\n ξ_LDxGNC_Doppler_LocalGP,\n ξ_LDxGNC_Lensing_LocalGP,\n ξ_LDxGNC_LocalGP_LocalGP,\n ξ_LDxGNC_IntegratedGP_LocalGP,\n\n ξ_LDxGNC_Doppler_IntegratedGP,\n ξ_LDxGNC_Lensing_IntegratedGP,\n ξ_LDxGNC_LocalGP_IntegratedGP,\n ξ_LDxGNC_IntegratedGP_IntegratedGP,\n ]\n\nThe names of the GR effect TPCFs implemented. Their order is associated with the one in GR_EFFECTS_LDxGNC, so be careful to change it.\n\nSee also: GR_EFFECTS_LDxGNC\n\n\n\n\n\n","category":"constant"},{"location":"Dicts/#GaPSE.DICT_GR_ξs_GNCxLD","page":"Dictionaries and names","title":"GaPSE.DICT_GR_ξs_GNCxLD","text":" const DICT_GR_ξs_GNCxLD::Dict{String,Function}\n\nFor an input key string effect from GR_EFFECTS_GNCxLD, return the associated TPCF DICT_GR_ξs_GNCxLD[effect] from VEC_ξs_GNCxLD.\n\nExample\n\njulia> GaPSE.DICT_GR_ξs_GNCxLD[\"lensing_doppler\"]\nξ_GNCxLD_Lensing_Doppler\n\nSee also: GR_EFFECTS_GNCxLD, VEC_ξs_GNCxLD\n\n\n\n\n\n","category":"constant"},{"location":"Dicts/#GaPSE.DICT_GR_ξs_LDxGNC","page":"Dictionaries and names","title":"GaPSE.DICT_GR_ξs_LDxGNC","text":" const DICT_GR_ξs_LDxGNC::Dict{String,Function}\n\nFor an input key string effect from GR_EFFECTS_LDxGNC, return the associated TPCF DICT_GR_ξs_LDxGNC[effect] from VEC_ξs_v.\n\nExample\n\njulia> GaPSE.DICT_GR_ξs_LDxGNC[\"lensing_doppler\"]\nξ_LDxGNC_Lensing_Doppler\n\nSee also: GR_EFFECTS_LDxGNC, VEC_ξs_LDxGNC\n\n\n\n\n\n","category":"constant"},{"location":"Dicts/#GaPSE.INDEX_GR_EFFECT_GNCxLD","page":"Dictionaries and names","title":"GaPSE.INDEX_GR_EFFECT_GNCxLD","text":" const INDEX_GR_EFFECT_GNCxLD::Dict{String,Integer}\n\nFor an input key string effect from GR_EFFECTS_GNCxLD, return the associated index position in that vector.\n\nExample\n\njulia> GaPSE.INDEX_GR_EFFECT_GNCxLD[\"newton_lensing\"]\n2\n\nSee also: GR_EFFECTS_GNCxLD\n\n\n\n\n\n","category":"constant"},{"location":"Dicts/#GaPSE.INDEX_GR_EFFECT_LDxGNC","page":"Dictionaries and names","title":"GaPSE.INDEX_GR_EFFECT_LDxGNC","text":" const INDEX_GR_EFFECT_LDxGNC::Dict{String,Integer}\n\nFor an input key string effect from GR_EFFECTS_LDxGNC, return the associated index position in that vector.\n\nExample\n\njulia> GaPSE.INDEX_GR_EFFECT_LDxGNC[\"lensing_newton\"]\n2\n\nSee also: GR_EFFECTS_LDxGNC\n\n\n\n\n\n","category":"constant"},{"location":"Dicts/#GaPSE.GR_EFFECT_INDEX_GNCxLD","page":"Dictionaries and names","title":"GaPSE.GR_EFFECT_INDEX_GNCxLD","text":" const GR_EFFECT_INDEX_GNCxLD::Dict{Integer,String}\n\nFor an input index position i of GR_EFFECTS_GNCxLD, return the associated key string effect.\n\nExample\n\njulia> GaPSE.DICT_GR_ξs_GNCxLD[2]\n\"newton_doppler\"\n\nSee also: GR_EFFECTS_GNCxLD\n\n\n\n\n\n","category":"constant"},{"location":"Dicts/#GaPSE.GR_EFFECT_INDEX_LDxGNC","page":"Dictionaries and names","title":"GaPSE.GR_EFFECT_INDEX_LDxGNC","text":" const GR_EFFECT_INDEX_LDxGNC::Dict{Integer,String}\n\nFor an input index position i of GR_EFFECTS_LDxGNC, return the associated key string effect.\n\nExample\n\njulia> GaPSE.DICT_GR_ξs_LDxGNC[2]\n\"doppler_newton\"\n\nSee also: GR_EFFECTS_LDxGNC\n\n\n\n\n\n","category":"constant"},{"location":"MathUtils/","page":"Mathematical Utilities","title":"Mathematical Utilities","text":"DocTestSetup = quote\n using GaPSE\nend","category":"page"},{"location":"MathUtils/#Mathematical-Utilities-functions","page":"Mathematical Utilities","title":"Mathematical Utilities functions","text":"","category":"section"},{"location":"MathUtils/","page":"Mathematical Utilities","title":"Mathematical Utilities","text":"GaPSE.warning\n\nGaPSE.derivate_point\nGaPSE.derivate_vector\nGaPSE.spectral_index\nGaPSE.mean_spectral_index\nGaPSE.power_law\nGaPSE.two_power_laws\nGaPSE.power_law_from_data\n\nGaPSE.expanded_left_log\nGaPSE.expanded_right_log\nGaPSE.expanded_IPS\nGaPSE.expanded_Iln\nGaPSE.func_I04_tilde\nGaPSE.expanded_I04_tilde\n\nGaPSE.my_interpolation\nGaPSE.EPLs","category":"page"},{"location":"MathUtils/#GaPSE.derivate_point","page":"Mathematical Utilities","title":"GaPSE.derivate_point","text":" derivate_point(xp, yp, x1, y1, x2, y2)\n\nReturn the derivative in (xp, yp), given the neighboor points (x1,y1) and (x2,y2), with x1 < xp < x2. It is not assumed that x2 - xp = xp - x1.\n\n\n\n\n\n","category":"function"},{"location":"MathUtils/#GaPSE.mean_spectral_index","page":"Mathematical Utilities","title":"GaPSE.mean_spectral_index","text":" mean_spectral_index(xs, ys; N::Int = 1, con = false)\n\nAssuming that the input ys follow a power law distribution, return the mean spectral index langle S rangle of them.\n\nThe spectral index S of a generic function f = f(x) is defined as:\n\n S = fracpartial log f(x)partial log x \n = fracxf(x) fracpartial f(x)partial x \n\n\n\n\n\n","category":"function"},{"location":"MathUtils/#GaPSE.power_law","page":"Mathematical Utilities","title":"GaPSE.power_law","text":" power_law(x, si, b, a) ::Float64\n\nReturn the following y = f(x) \"spurious\" power-law value:\n\ny = f(x) = a + b x^s\n\nwhere si is the exponent (s), b the coefficient (b) and a is the added constant (a).\n\n\n\n\n\n","category":"function"},{"location":"MathUtils/#GaPSE.power_law_from_data","page":"Mathematical Utilities","title":"GaPSE.power_law_from_data","text":" power_law_from_data(xs, ys, p0::Vector{Float64},\n fit_min::Number, fit_max::Number; con = false)\n\n power_law_from_data(xs, ys, p0::Vector{Float64}; con = false) = \n power_law_from_data(xs, ys, p0, xs[begin], xs[end]; con = con)\n\nReturns the \"spurious\" power-law coefficients s, b and a obtained from the fitting of the data vectors xs and ys inside the limits fit_min and fit_max.\n\nIf con == false, the returned a is always 0.0, because it is considered the \"pure\" power-law fitting function:\n\n y = f(x) = b x^s\n\nwhile if con == false it is used the spurious one:\n\n y = f(x) = a + b x^s\n\n(and consequently a may be ≠0).\n\nThe fitting is performed through the function curve_fit of the LsqFit Julia package, which is based on the least-squares method.\n\nSee also: power_law\n\n\n\n\n\n","category":"function"},{"location":"MathUtils/#GaPSE.expanded_IPS","page":"Mathematical Utilities","title":"GaPSE.expanded_IPS","text":" expanded_IPS(ks, pks; k_in = 1e-8, k_end = 3e3, con = false)\n\nGiven the ks and pks of a chosen Power Spectrum, returns the same PS with \"longer tails\", i.e. it is prolonged for higher and lower ks than the input ones.\n\n\n\n\n\n","category":"function"},{"location":"MathUtils/#GaPSE.expanded_Iln","page":"Mathematical Utilities","title":"GaPSE.expanded_Iln","text":" expanded_Iln(PK, l, n; N = 1024, kmin = 1e-4, kmax = 1e3, s0 = 1e-3,\n fit_left_min = 2.0, fit_left_max = 10.0, p0 = [-1.0, 1.0, 0.0], con = false)\n\n\n\n\n\n","category":"function"},{"location":"MathUtils/#GaPSE.func_I04_tilde","page":"Mathematical Utilities","title":"GaPSE.func_I04_tilde","text":" func_I04_tilde(PK, s, kmin, kmax; kwargs...)\n\nReturn the following integral:\n\ntildeI^4_0 (s) = int_0^infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(q s) - 1(q s)^4\n\nIt is brute-force calcuated with quadgk.\n\nArguments\n\nPK : function that return the Input Power Spectrum\ns : value of s whre the integral must be evaluated\nkmin, kmax : extremes (min and max) of integration\nkwargs... : keyword argruments that must be passed to quadgk, such as rtol or atol\n\n\n\n\n\n","category":"function"},{"location":"MathUtils/#GaPSE.EPLs","page":"Mathematical Utilities","title":"GaPSE.EPLs","text":" EPLs(\n l_si::Float64\n l_b::Float64\n l_a::Float64\n left::Float64\n\n spline::Dierckx.Spline1D\n\n r_si::Float64\n r_b::Float64\n r_a::Float64\n right::Float64\n )\n\nContains all the information useful in order to return the value of a spline inside the interval left ≤ x ≤ right and the associated power laws for the edges (with the \"left\" coefficients l_si, l_b and l_a for x < left and the \"right\" ones r_si, r_b and r_a for x > right)\n\nArguments\n\nl_si, l_b, l_a :: Float64 : coefficient for the spurious power-law y = f(x) = a + b x^s for the LEFT edge; when an input value x < left is given, the returned one is obtained from power_law with this coefficients ( where, of course, l_si is the exponent, l_b the coefficient and l_a the spurious adding constant). \nleft::Float64 : the break between the left power-law (for x right is given, the returned one is obtained from power_law with this coefficients ( where, of course, r_si is the exponent, r_bthe coefficient andr_athe spurious adding constant). NOTE: for numerical issues, the \"pure\" power-lawy = f(x) = b + x^s` should be used. \n\nConstructors\n\n`EPLs(xs, ys, p0left::Vector{T1}, p0right::Vector{T2}; Nleft::Int = 15, Nright::Int = 15) where {T1<:Real, T2 <:Real}\n\nxs and ys: the input vector of values. \nN_left::Int = 15 : number of points to be used from the left edge for the left power law-fitting. It shouldn't be too low (< 4) or too high (>100).\nN_right::Int = 15 : number of points to be used from the right edge for the right power law-fitting. It shouldn't be too low (< 4) or too high (>100).\np0_left::Vector{T1} where T1 <:Real : vector with the initial values for the left power-law fitting; its length must be 2 (if you want to fit with a pure power-law y = f(x) = b * x^s, so only l_si and l_b are matter of concern) or 3 (if you want to fit with a spurious power-law y = f(x) = a + b * x^s, so you are also interested in l_a); in the first case, the considered l_a will be 0.0. Example: \np0_right::Vector{T1} where T1 <:Real : vector with the initial values for the right power-law fitting; its length must be 2 (if you want to fit with a pure power-law y = f(x) = b * x^s, so only r_si and r_b are matter of concern) or 3 (if you want to fit with a spurious power-law y = f(x) = a + b * x^s, so you are also interested in r_a); in the first case, the considered r_a will be 0.0. It is recommended to \n\nAll the power-law fitting (both \"pure\" and spurious) are made through the local function power_law_from_data.\n\nExamples\n\njulia> xs = 10 .^ range(0, 2, length=100);\n\njulia> ys = [1.34e2 * x ^ 2.43 for x in xs];\n\njulia> A = EPLs(xs, ys, [1.0, 1.0], [1.0, 1.0]; N_left = 10, N_right = 10)\n\nSee also: power_law_from_data\n\n\n\n\n\n","category":"type"},{"location":"IPSTools/","page":"Input Power Spectrum Tools","title":"Input Power Spectrum Tools","text":"DocTestSetup = quote\n using GaPSE\nend","category":"page"},{"location":"IPSTools/#Tool-functions","page":"Input Power Spectrum Tools","title":"Tool functions","text":"","category":"section"},{"location":"IPSTools/","page":"Input Power Spectrum Tools","title":"Input Power Spectrum Tools","text":"GaPSE.InputPS\nGaPSE.IntegralIPS\nGaPSE.IPSTools","category":"page"},{"location":"IPSTools/#GaPSE.InputPS","page":"Input Power Spectrum Tools","title":"GaPSE.InputPS","text":" InputPS(\n l_si::Float64\n l_b::Float64\n l_a::Float64\n left::Float64\n\n spline::Dierckx.Spline1D\n \n r_si::Float64\n r_b::Float64\n r_a::Float64\n right::Float64)\n\nStore the Input Power Spectrum.\n\nArguments\n\nl_si, l_b, l_a :: Float64 : coefficient for the spurious power-law y = f(x) = a + b x^s for the LEFT edge; when an input value x < left is given, the returned one is obtained from power_law with this coefficients ( where, of course, l_si is the exponent, l_b the coefficient and l_a the spurious adding constant). \nleft::Float64 : the break between the left power-law (for x left) and the spline (for x ≤ right); its value is the fit_max of the used constructor.\nr_si, r_b, r_a :: Float64 : coefficient for the spurious power-law y = f(x) = a + b x^s for the RIGHT edge; when an input value x > right is given, the returned one is obtained from power_law with this coefficients ( where, of course, r_si is the exponent, r_b the coefficient and r_a the spurious adding constant). NOTE: for numerical issues, only the \"pure\" power-law y = f(x) = b + x^s can be used. In other words, it always set r_a = 0.0.\n\nConstructors\n\nInputPS(file::String; fit_left_min = 1e-6, fit_left_max = 3e-6, fit_right_min = 1e1, fit_right_max = 2e1) : read the IPS from the given input file; it can contain comments (defined with a starting # on each line), but the file structure must be space-separated in two colums (former for k values, latter for P ones).\nfit_left_min = 1e-6, fit_left_max = 3e-6 : the limits (min and max) where the PS must be fitted with a power law, for small wavenumbers. \nfit_right_min = 1e1, fit_right_max = 2e1 : the limits (min and max) where the PS must be fitted with a power law, for high wavenumbers. \n\nInputPS(ks::AbstractVector{T1}, pks::AbstractVector{T2}; fit_left_min = 1e-6, fit_left_max = 3e-6, fit_right_min = 1e1, fit_right_max = 2e1)\nks::AbstractVector{T1}, pks::AbstractVector{T2} : self-explanatory ks and pks array-like values.\nfit_left_min = 1e-6, fit_left_max = 3e-6 : the limits (min and max) where the PS must be fitted with a power law, for small wavenumbers. \nfit_right_min = 1e1, fit_right_max = 2e1 : the limits (min and max) where the PS must be fitted with a power law, for high wavenumbers. \n\nAll the power-law fitting (both \"pure\" and spurious) are made through the local function power_law_from_data.\n\nSee also: power_law_from_data\n\n\n\n\n\n","category":"type"},{"location":"IPSTools/#GaPSE.IntegralIPS","page":"Input Power Spectrum Tools","title":"GaPSE.IntegralIPS","text":" IntegralIPS(\n l_si::Float64\n l_b::Float64\n l_a::Float64\n left::Float64\n\n spline::Dierckx.Spline1D\n\n r_si::Float64\n r_b::Float64\n r_a::Float64\n right::Float64\n )\n\nContains all the information useful in order to return the value of an integral obtained from the Input Power Spectrum.\n\nArguments\n\nl_si, l_b, l_a ::Float64 : coefficient for the spurious power-law y = f(x) = a + b x^s for the LEFT edge; when an input value x < left is given, the returned one is obtained from power_law with this coefficients ( where, of course, l_si is the exponent, l_b the coefficient and l_a the spurious adding constant). \nleft::Float64 : the break between the left power-law (for x < left) and the spline (for x ≥ left); its value is the fit_min of the used constructor.\nspline::Dierckx.Spline1D : spline that interpolates between the real values of the integral calculated inside the range left ≤ x ≤ right\nright::Float64 : the break between the right power-law (for x > right) and the spline (for x ≤ right); its value is the fit_max of the used constructor.\nr_si, r_b, r_a ::Float64 : coefficient for the spurious power-law y = f(x) = a + b x^s for the RIGHT edge; when an input value x > right is given, the returned one is obtained from power_law with this coefficients ( where, of course, r_si is the exponent, r_b the coefficient and r_a the spurious adding constant). NOTE: for numerical issues, only the \"pure\" power-law y = f(x) = b + x^s can be used. In other words, it always set r_a = 0.0.\n\nConstructors\n\nThere are two type of integrals we are interested in, and so two constructors are here provided:\n\nIntegralIPS(ips, l, n; N::Int = 1024, kmin = 1e-4, kmax = 1e3, s0 = 1e-3, fit_left_min = 2.0, fit_left_max = 10.0, p0_left = nothing, con = false, fit_right_min = nothing, fit_right_max = nothing, p0_right = nothing) This is the one used for the \"classical\" I_ell_n integrals:\nI_ell^n(s) = int_0^infty fracmathrmd q2 pi^2 q^2 P(q) \n fracj_ell(qs)(qs)^n\nwhere, for a generic Iab name, ell is the FIRST number (a) and n the second (b). The integral obtained with this constructor is calculated through xicalc, and expanded with power-laws at the edges.\nips: the function/spline that gives the Input Power Spectrum\nl and n: self-explanatory degree of the integral, with the convenction above mentioned\nkmin = 1e-4, kmax = 1e3, s0 = 1e-3 : values to be passed to xicalc for the integration\nfit_left_min = 2.0, fit_left_max = 10.0 : the limits (min and max) where the integral I_ell^n must be fitted with a power law, for small distances. This operation is necessary, because xicalc, in this context, gives wrong results for too small input distance s; nevertheless, all these I_ell^n integrals have fixed power-law trends for s rightarrow 0, so this approach gives good results.\np0_left = nothing : vector with the initial values for the left power-law fitting; its length must be 2 (if you want to fit with a pure power-law y = f(x) = b * x^s, so only l_si and l_b are matter of concern) or 3 (if you want to fit with a spurious power-law y = f(x) = a + b * x^s, so you are also interested in l_a), depending on the value of con; if nothing, it will be automatically set p0 = [-1.0, 1.0, 0.0] for con==true and p0 = [-1.0, 1.0] for con==false.\ncon::Bool = false : do you want that the fit of all the I_ell^n for the LEFT edge is not a simple power-law y = f(x) = b x^s, but also consider a constant a, such that y = f(x) = a + b x^s? For the LEFT side, there is not a lot of difference empirically. For the RIGHT side, there is not such an option due to numerical problems (it's like is always set con==false).\nfit_right_min = nothing, fit_right_max = nothing : the limits (min and max) where the integral I_ell^n must be fitted with a power law, for high distances. These I_ell^n integrals have fixed power-law trends for s rightarrow infty, so this approach gives good results. If nothing, the last 15 points returned from xicalc are used for this fitting. NOTE: for numerical issues, only the \"pure\" power-law y = f(x) = b + x^s can be used. \np0_right = nothing : vector with the initial values for the left power-law fitting; its length must be 2 (to fit with a pure power-law y = f(x) = b * x^s, so only r_si and r_b are matter of concern); if nothing, it will be automatically set p0 = [-4.0, 1.0, 0.0].\n\nIntegralIPS(ips, func::Function; N::Int = 1024, kmin = 1e-4, kmax = 1e3, fit_left_min = 0.1, fit_left_max = 1.0, p0_left = nothing, con = false, fit_right_min = nothing, fit_right_max = nothing, p0_right = nothing, kwargs...) This is the one used for the \"strange\" tildeI integrals, such as:\ntildeI^4_0 (s) = int fracmathrmdq2pi^2 q^2 \n P(q) fracj_0(qs) - 1(qs)^4 \nThe integral obtained with this constructor is calculated through the input function func, and expanded with power-laws at the edges. For \\tilde{I}^4_0, the function is func_I04_tilde. \nips: the function/spline that gives the Input Power Spectrum\nfunc: function that return the value of this specific integral in a given value\nkmin = 1e-4, kmax = 1e3, s0 = 1e-3 : values to be passed to func as extremes of integration\nfit_left_min = 0.1, fit_left_max = 1.0, : the limits (min and max) where the integral tildeI must be fitted with a power law, for small distances. This operation is necessary, because xicalc, in this context, gives wrong results for too small input distance s; nevertheless, all this tildeI integral have fixed power-law trends for s rightarrow 0, so this approach gives good results.\np0_left = nothing : vector with the initial values for the left power-law fitting; its length must be 2 (if you want to fit with a pure power-law y = f(x) = b * x^s, so only l_si and l_b are matter of concern) or 3 (if you want to fit with a spurious power-law y = f(x) = a + b * x^s, so you are also interested in l_a), depending on the value of con; if nothing, it will be automatically set p0 = [-2.0, -1.0, 0.0] for con==true and p0 = [-2.0, -1.0] for con==false.\ncon::Bool = false : do you want that the fit of all the I_ell^n for the LEFT edge is not a simple power-law y = f(x) = b x^s, but also consider a constant a, such that y = f(x) = a + b x^s? For the LEFT side, there is not a lot of difference empirically. For the RIGHT side, there is not such an option due to numerical problems (it's like is always set con==false).\nfit_right_min = nothing, fit_right_max = nothing : the limits (min and max) where the integral I_ell^n must be fitted with a power law, for high distances. These I_ell^n integrals have fixed power-law trends for s rightarrow infty, so this approach gives good results. If nothing, the last 15 points returned from xicalc are used for this fitting. NOTE: for numerical issues, only the \"pure\" power-law y = f(x) = b + x^s can be used. \np0_right = nothing : vector with the initial values for the left power-law fitting; its length must be 2 (to fit with a pure power-law y = f(x) = b * x^s, so only r_si and r_b are matter of concern); if nothing, it will be automatically set p0 = [-4.0, -1.0].\n\nAll the power-law fitting (both \"pure\" and spurious) are made through the local function power_law_from_data.\n\nSee also: power_law_from_data, power_law, func_I04_tilde\n\n\n\n\n\n","category":"type"},{"location":"IPSTools/#GaPSE.IPSTools","page":"Input Power Spectrum Tools","title":"GaPSE.IPSTools","text":" IPSTools(\n I00::IntegralIPS\n I20::IntegralIPS\n I40::IntegralIPS\n I02::IntegralIPS\n I22::IntegralIPS\n I31::IntegralIPS\n I13::IntegralIPS\n I11::IntegralIPS\n\n I04_tilde::IntegralIPS\n\n σ_0::Float64\n σ_1::Float64\n σ_2::Float64\n σ_3::Float64\n σ_4::Float64\n\n fit_min::Union{Float64,Nothing}\n fit_max::Union{Float64,Nothing}\n k_min::Float64\n k_max::Float64\n s_0::Float64\n )\n\nStruct that contains all the useful functions and values obtained from the Input Power Spectrum.\n\nArguments\n\nI00, I20, I40, I02, I22, I31, I13, I11 ::IntegralIPS: they return the value of the corresponding integral:\nI_ell^n(s) = int_0^infty fracmathrmd q2 pi^2 q^2 P(q) \n fracj_ell(qs)(qs)^n\nwhere, for a generic Iab name, ell is the FIRST number (a) and n the second (b). These integrals are performed through xicalc, with kmin, kmax, s0 = 1e-5, 1e3, 1e-3; at the edges they are fitted with power laws (for s < fit_min and s > max_s_returned_from_xi_calc).\nI04_tilde::IntegralIPS: it returns the value of the integral:\ntildeI^4_0 (s) = int fracmathrmdq2pi^2 q^2 \n P(q) fracj_0(qs) - 1(qs)^4 \nThis integral is calculated brute-force with quadgk, and fitted with power-laws at the edges (for s < 0.1 and s > 1e4).\nσ_0, σ_1, σ_2, σ_3, σ_4 :: Float64: these are the results of the following integral:\nsigma_i = int_k_mathrmmin^k_mathrmmax fracmathrmd q2 pi^2 q^2-i P(q)\nfit_min, fit_max :: Float64: the limits (min and max) where the integral I_ell^n must be fitted with a power law, for small distances. This operation is necessary, because xicalc, in this context, gives wrong results for too small input distance s; nevertheless, all these I_ell^n integrals have fixed power-law trends for s rightarrow 0, so this approach gives good results.\nk_min k_max::Float64 : because some of the sigma_i integrals from q = 0 to q = +infty diverge, it is common practice to cut the integrals at the edges, so they are calculated from q = k_mathrmmin to q = k_mathrmmax\n\nConstructors\n\nIPSTools(ips::InputPS; N::Int = 1024, fit_min::Float64 = 0.05, fit_max::Float64 = 0.5, k_min::Float64 = 1e-6, k_max::Float64 = 10.0 con::Bool = false )\n\nips::InputPS : the Input Power Spectrum to be used in all the calculations.\nN::Int = 1024 : number of points to be used in the xicalc function\nk_min::Float64 = 1e-6, k_max::Float64 = 10.0 : integrations extremes of the sigma_is\ncon::Bool = false : do you want that the fit of all the I_ell^n for the LEFT edge is not a simple power-law y = f(x) = b x^s, but also consider a constant a, such that y = f(x) = a + b x^s? For the LEFT side, there is not a lot of difference empirically. For the RIGHT side, there is not such an option due to numerical problems (it's like is always set con==false).\n\nSee also: IntegralIPS, InputPS\n\n\n\n\n\n","category":"type"},{"location":"WindowF/","page":"Window F","title":"Window F","text":"DocTestSetup = quote\n using GaPSE\nend","category":"page"},{"location":"WindowF/#The-Window-Function-F","page":"Window F","title":"The Window Function F","text":"","category":"section"},{"location":"WindowF/","page":"Window F","title":"Window F","text":"GaPSE.DEFAULT_FMAP_OPTS_hcub\nGaPSE.DEFAULT_FMAP_OPTS_trap\nGaPSE.integrand_F\nGaPSE.F_hcub\nGaPSE.F_trap\nGaPSE.print_map_F\nGaPSE.WindowF\nGaPSE.spline_F","category":"page"},{"location":"WindowF/#GaPSE.DEFAULT_FMAP_OPTS_hcub","page":"Window F","title":"GaPSE.DEFAULT_FMAP_OPTS_hcub","text":" DEFAULT_FMAP_OPTS_hcub = Dict(\n :θ_max => π / 2.0::Float64, \n :tolerance => 1e-10::Float64, \n :rtol => 1e-2::Float64, \n :atol => 1e-3::Float64,\n :pr => true::Bool,\n )\n\nThe default values to be used for the F function when you want to perform the computation with hcubature.\n\nSee also: integrand_F, F_hcub, print_map_F\n\n\n\n\n\n","category":"constant"},{"location":"WindowF/#GaPSE.DEFAULT_FMAP_OPTS_trap","page":"Window F","title":"GaPSE.DEFAULT_FMAP_OPTS_trap","text":" DEFAULT_FMAP_OPTS_trap = Dict(\n :θ_max => π / 2.0::Float64, \n :tolerance => 1e-10::Float64, \n :N => 300::Int64, \n :en => 1.0::Float64,\n :pr => true::Bool,\n )\n\nThe default values to be used for the F function when you want to perform the computation with trap.\n\nSee also: integrand_F, F_trap, print_map_F\n\n\n\n\n\n","category":"constant"},{"location":"WindowF/#GaPSE.integrand_F","page":"Window F","title":"GaPSE.integrand_F","text":"integrand_F(θ_1, θ, x, μ, θ_max; tolerance=1e-8) ::Float64\n\nReturn the integrand of the function F(xmu theta_mathrmmax), i.e the function f(xmu theta theta_1 theta_mathrmmax):\n\nbeginsplit\nf(xmu theta theta_1 theta_mathrmmax) = \n Thetaleft( frac\n x cos theta + cos theta_1sqrtx^1+2+2xmu - \n cos(theta_mathrmmax) \n right) \n times Theta(mu-cos(theta+theta_1)) times \n quad Theta(cos(theta - theta_1)-mu) times \n frac4pi sinthetasintheta_1\n sqrt(sinthetasintheta_1)^2-(costhetacostheta_1-mu)^2\nendsplit\n\nbeginequation\nF(xmu theta_mathrmmax) = int_0^theta_mathrmmax \n mathrmdtheta_1 int_0^pi mathrmd theta \n f(xmu theta theta_1 theta_mathrmmax)\nendequation\n\ntolerance is a parameter needed in case of small negative denominator: the Heaviside theta function mathematically prevent that mathrmden=(sinthetasintheta_1)^2-(costhetacostheta_1-mu)^2 becomes negative, but computationally might happen that mathrmden results as a very small negative number (for instance -1.2368946523-18); in this case tolerance solve the problem, returning 0 if 0-mathrmden mathrmtolerance\n\nSee also: F, print_map_F\n\n\n\n\n\n","category":"function"},{"location":"WindowF/#GaPSE.F_hcub","page":"Window F","title":"GaPSE.F_hcub","text":" F_hcub(x, μ; θ_max = π/2, tolerance = 1e-10, \n atol = 1e-2, rtol = 1e-5, \n kwargs...) ::Tuple{Float64, Float64}\n\nComputes with hcubature the value of F(xmu theta_mathrmmax), defined as follows:\n\nbeginsplit\nF(xmu theta_mathrmmax) = 4pi \n int_0^theta_mathrmmax mathrmdtheta_1 int_0^pi mathrmd theta \n Thetaleft(frac\n x cos theta + cos theta_1sqrtx^1+2+2xmu - \n cos(theta_mathrmmax) \n right) \n Theta(mu-cos(theta+theta_1)) \n Theta(cos(theta - theta_1)-mu) \n fracsinthetasintheta_1\n sqrt(sinthetasintheta_1)^2-(costhetacostheta_1-mu)^2\nendsplit\n\ntolerance is a parameter needed in case of small negative denominator: the Heaviside theta function mathematically prevent that mathrmden=(sinthetasintheta_1)^2-(costhetacostheta_1-mu)^2 becomes negative, but computationally might happen that mathrmden results as a very small negative number (for instance -1.2368946523-18); in this case tolerance solve the problem, returning 0 if 0-mathrmden mathrmtolerance.\n\nThe double integral is performed with hcubature function from the Julia Package HCubature; rtol, atol and all the kwargs insert into F are directly transferred to hcubature. \n\nThe output of this function is a Tuple{Float64, Float64}, containing respectively the value of the integral ad its error.\n\nPAY ATTENTION: do not set too small atol and rtol, or the computation can easily become overwhelming! \n\nNOTE: for computational efficiency and stability, it is highly recommended to use the other functionF_trap, based on the trapezoidal rule, in order to compute this function.\n\nSee also: F_trap, print_map_F, integrand_F, check_compatible_dicts\n\n\n\n\n\n","category":"function"},{"location":"WindowF/#GaPSE.F_trap","page":"Window F","title":"GaPSE.F_trap","text":" F_trap(x, μ; θ_max = π/2, tolerance = 1e-10, \n atol = 1e-2, rtol = 1e-5, \n kwargs...) ::Float64\n\nComputes with trap the value of F(xmu theta_mathrmmax), defined as follows:\n\nbeginsplit\nF(xmu theta_mathrmmax) = 4pi \n int_0^theta_mathrmmax mathrmdtheta_1 int_0^pi mathrmd theta \n Thetaleft(frac\n x cos theta + cos theta_1sqrtx^1+2+2xmu - \n cos(theta_mathrmmax) \n right) \n Theta(mu-cos(theta+theta_1)) \n Theta(cos(theta - theta_1)-mu) \n fracsinthetasintheta_1\n sqrt(sinthetasintheta_1)^2-(costhetacostheta_1-mu)^2\nendsplit\n\ntolerance is a parameter needed in case of small negative denominator: the Heaviside theta function mathematically prevent that mathrmden=(sinthetasintheta_1)^2-(costhetacostheta_1-mu)^2 becomes negative, but computationally might happen that mathrmden results as a very small negative number (for instance -1.2368946523-18); in this case tolerance solve the problem, returning 0 if 0-mathrmden mathrmtolerance.\n\nThe double integral is performed with trapz function from the Julia Package Trapz, that is based on the trapezoidal rule. N is the number of point to be used to sample INDIPENDENTLY θ_1 and θ, so consider that there is a N^2 time dependence. It's recommended to set 100 < N < 1000.\n\nNOTE: there is another function, called F_hcub, that performs this calculus. Nevertheless, for computational efficiency and stability, it is highly recommended to use to use this one.\n\nSee also: F_hcub, print_map_F, integrand_F, check_compatible_dicts\n\n\n\n\n\n","category":"function"},{"location":"WindowF/#GaPSE.print_map_F","page":"Window F","title":"GaPSE.print_map_F","text":" print_map_F(out::String, x_step::Float64 = 0.01, μ_step::Float64 = 0.01;\n alg::Symbol = :trap, x1 = 0, x2 = 3, μ1 = -1, μ2 = 1, \n Fmap_opts::Dict = Dict{Symbol,Any}(), \n kwargs...)\n\n print_map_F(out::String, xs::Vector{Float64}, μs::Vector{Float64};\n alg::Symbol = :trap, Fmap_opts::Dict = Dict{Symbol,Any}(),\n kwargs...)\n\nEvaluate the window function F(xmu theta_mathrmmax) in a rectangual grid of mu and x values, and print the results in the out file.\n\nIn the first method you have to specify manually, both for x and μ, start (x1 and μ1), stop (x2 and μ2), and step (x_step and μ_step). In the second one, you need to pass the values you want to calculate the function in, through the vectors xs and μs.\n\nThe Symbol keyword argument alg tells if you want to perform the computation of F with F_trap (if alg = :trap) or with F_hcub (if alg = :hcub). Other symbols will lead to an AssertionError. Both for computational efficiency and stability, it's highly recommended to use the former (i.e. the default one). \n\nFmap_opts is instead the way you should exploit in order to pass to F_trap/F_hcub other options you are interested in. You may pass only the key and the value you are focused on, and all the other default ones will be considered. A common key to both the algortithm is :pr => true or :pr => false, that tells if you want to se the progress-bar of the computation.\n\nFor example, if you set trap == false and:\n\nFmap_opts = Dict(:tolerance => 1e-5, :θ_max => 2.0)\n\nthen the dictionary with all the options that will be passed to F will be:\n\nFmap_dict = merge(DEFAULT_FMAP_OPTS_hcub, Fmap_opts) = :θ_max => 2.0, # CHANGED VALUE :tolerance => 1e-5, # CHANGED VALUE :rtol => 1e-2, # default :atol => 1e-3, # default :pr => true, # default )\n\nCheck the documentation of DEFAULT_FMAP_OPTS_hcub and DEFAULT_FMAP_OPTS_trap for more information about these default values.\n\nSee also: DEFAULT_FMAP_OPTS_hcub, DEFAULT_FMAP_OPTS_trap F_trap, F_hcub, integrand_F\n\n\n\n\n\n","category":"function"},{"location":"WindowF/#GaPSE.WindowF","page":"Window F","title":"GaPSE.WindowF","text":"WindowF(\n xs::Vector{Float64}\n μs::Vector{Float64}\n Fs::Matrix{Float64}\n )\n\nStruct containing xs, μs and Fs values of the window function F(x μ). xs and μs are 1D vectors containing each value only once, while Fs values are contained in a matrix of size (length(xs), length(μs)), so:\n\nalong a fixed column the changing value is x\nalong a fixed row the changing value is μ\n\nThe analytical definition of the window function is the following (see Eq. A.10 of Castorina, Di Dio, 2021):\n\nbeginsplit\nF(xmu theta_mathrmmax) = 4pi \n int_0^theta_mathrmmax mathrmdtheta_1 int_0^pi mathrmd theta \n Thetaleft(frac\n x cos theta + cos theta_1sqrtx^1+2+2xmu - \n cos(theta_mathrmmax) \n right) \n Theta(mu-cos(theta+theta_1)) \n Theta(cos(theta - theta_1)-mu) \n fracsinthetasintheta_1\n sqrt(sinthetasintheta_1)^2-(costhetacostheta_1-mu)^2\nendsplit\n\nwhere the Thetas are Heaviside theta functions.\n\nConstructors\n\nWindowF(file::String) : read the F map from the file file. Such a file might be produced by print_map_F, check its docstring. \n\nIt does not matter if the pattern is\n\n# xs μs Fs\n0.0 -1.0 ...\n0.0 -0.9 ...\n0.0 -0.8 ...\n... ... ...\n\nor \n\n# xs μs Fs\n0.0 -1.0 ...\n0.1 -1.0 ...\n0.2 -1.0 ...\n... ... ...\n\nbecause the constructor will recognise it. What does matter is the columns order: xs first, then μs and finally Fs.\n\nSee also: print_map_F, F_trap, spline_F\n\n\n\n\n\n","category":"type"},{"location":"WindowF/#GaPSE.spline_F","page":"Window F","title":"GaPSE.spline_F","text":" spline_F(x, μ, str::WindowF)) ::Float64\n\nReturn the 2-dim spline value of F in the given (x,μ), where F is defined in the input WindowF. The spline is obtained through the interpolate function of the GridInterpolations Julia package.\n\nSee also: WindowF\n\n\n\n\n\n","category":"function"},{"location":"Cosmology/","page":"Cosmology Struct","title":"Cosmology Struct","text":"DocTestSetup = quote\n using GaPSE\nend","category":"page"},{"location":"Cosmology/#Cosmology-struct","page":"Cosmology Struct","title":"Cosmology struct","text":"","category":"section"},{"location":"Cosmology/","page":"Cosmology Struct","title":"Cosmology Struct","text":"GaPSE.func_ℛ_LD\nGaPSE.func_ℛ_GNC\nGaPSE.CosmoSplines\nGaPSE.Cosmology\nGaPSE.Point ","category":"page"},{"location":"Cosmology/#GaPSE.func_ℛ_LD","page":"Cosmology Struct","title":"GaPSE.func_ℛ_LD","text":" func_ℛ_LD(s, ℋ; s_lim=0.01, ℋ_0 = ℋ0)\n\nGiven in inpuit a comoving distance s and a comoving Hubble parameter ℋ, this function returns the following value:\n\nmathscrR_mathrmLD(s mathcalH)=\nbegincases\n1 - frac1mathcalH s \n quad s s_mathrmlim\n1 - frac1mathcalH_0 s_mathrmlim \n quad quad 0 leq s leq s_mathrmlim\nendcases\n\nThe 0 leq s leq s_mathrmlim case is used in order to avoid the divergence of the denominator. This function is used inside a Cosmology for the computations concering the Two-Point Correlation Fuctions (TPCFs) relative to the perturbed Luminosity Distance (LD). The default value of the comoving Hubble parameter nowadays is, in natural system (where the speed of light c=1): mathcalH_0 simeq 3335641times10^-4 h_0^-1mathrmMpc\n\nSee also: func_ℛ_GNC, Cosmology, ℋ0\n\n\n\n\n\n","category":"function"},{"location":"Cosmology/#GaPSE.func_ℛ_GNC","page":"Cosmology Struct","title":"GaPSE.func_ℛ_GNC","text":" func_ℛ_GNC(s, ℋ, ℋ_p; s_b = 0.0, 𝑓_evo = 0.0, s_lim=0.01, ℋ_0 = ℋ0)\n\nGiven in input a comoving distance s, a comoving Hubble parameter ℋ and its first derivative value ℋ_p wrt the comoving time tau, this function returns the following value:\n\nmathscrR_mathrmGNC(s mathcalH s_mathrmb)=\nbegincases\n5 s_mathrmb + frac2 - 5 s_mathrmbmathcalH s + \n fracdotmathcalHmathcalH^2 - mathitf_mathrmevo \n quad s s_mathrmlim\n1 - frac1mathcalH_0 s_mathrmlim \n5 s_mathrmb + frac2 - 5 s_mathrmbmathcalH_0 s_mathrmlim + \n fracdotmathcalHmathcalH_0^2 - mathitf_mathrmevo \n quad quad 0 leq s leq s_mathrmlim\nendcases\n\nwhere s_mathrmb is the magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), mathitf_mathrmevo the evolution bias and dotmathcalH = mathrmdmathcalH mathrmdtau.\n\nThe 0 leq s leq s_mathrmlim case is used in order to avoid the divergence of the denominator. This function is used inside a Cosmology for the computations concering the Two-Point Correlation Fuctions (TPCFs) relative to the Galaxy Number Counts (GNC). The default value of the comoving Hubble parameter nowadays is, in natural system (where the speed of light c=1): mathcalH_0 simeq 3335641times10^-4 h_0^-1mathrmMpc\n\nSee also: func_ℛ_GNC, Cosmology, ℋ0\n\n\n\n\n\n","category":"function"},{"location":"Cosmology/#GaPSE.Cosmology","page":"Cosmology Struct","title":"GaPSE.Cosmology","text":" Cosmology(\n IPS::InputPS\n params::CosmoParams\n tools::IPSTools\n windowF::WindowF\n\n z_of_s::Dierckx.Spline1D\n D_of_s::Dierckx.Spline1D\n f_of_s::Dierckx.Spline1D\n ℋ_of_s::Dierckx.Spline1D\n ℋ_p_of_s::Dierckx.Spline1D\n ℛ_LD_of_s::Dierckx.Spline1D\n ℛ_GNC_of_s::Dierckx.Spline1D\n\n s_of_z::Dierckx.Spline1D\n\n z_eff::Float64\n s_min::Float64\n s_max::Float64\n s_eff::Float64\n\n volume::Float64\n\n file_data::String\n file_ips::String\n file_windowF::String\n )\n\nStruct that contains all the information that may be used for the Two-Point Correlation Function (TPCF) computations. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nArguments\n\nIPS::InputPS : the matter Input Power Spectrum at present day of the Universe we are focusiong on.\nparams::CosmoParams : options and parameters decided for this Cosmology; check the documentation of CosmoParams for more information.\ntools::IPSTools : all the functions and integrals depending on the Input Power Spectrum; check the documentation of IPSTools for more information.\nwindowF::WindowF : the window function F, defined as:\n beginsplit\n F(xmu theta_mathrmmax) = 4pi \n int_0^theta_mathrmmax mathrmdtheta_1 int_0^pi mathrmd theta \n Thetaleft(frac\n x cos theta + cos theta_1sqrtx^1+2+2xmu - \n cos(theta_mathrmmax) \n right) \n Theta(mu-cos(theta+theta_1)) \n Theta(cos(theta - theta_1)-mu) \n fracsinthetasintheta_1\n sqrt(sinthetasintheta_1)^2-(costhetacostheta_1-mu)^2\n endsplit\nwindowFint::WindowFIntegrated : the Integrated Window Function mathcalF, defined as:\nmathcalF(s mu) = \nint_0^infty mathrmds_1 phi(s_1) \nphileft(sqrts_1^2 + s^2 + 2 s_1 s muright) \n Fleft(fracss_1 mu right)\nwhere phi is the angular part of the survey window function and F(x μ) is the window function.\nWFI_norm::Float64 : the norm of the Integrate Window Function, obtained from:\nmathrmnorm of mathcalF = frac12 int_-1^1 mathrmdmu \nmathcalFleft(s = 10 h_0^-1 mathrmMpc muright) \nz_of_s, D_of_s, f_of_s, ℋ_of_s, ℋ_p_of_s, ℛ_LD_of_s, ℛ_GNC_of_s ::Dierckx.Spline1D : splines obtained from the data stored by BackgroundData applied to the input background data file. Given an input comoving distance s, they return the corresponding value of, respectively:\nthe redshift z;\nthe linear growth factor D (normalized to 1.0 at present day);\nthe linear growth rate f;\nthe comoving Hubble parameter ℋ;\nthe derivative of the comoving Hubble parameter wrt the comoving time ℋ_p; \nℛ_LD, obtained from func_ℛ_LD and defined as:\n mathfrakR = 1 - frac1mathcalH s\nwhere s is the comoving distance and \\mathcal{H} is comoving Hubble parameter. It's spline is obtained in a sample of point given by 10.0 .^ range(-4, log10(max(comdist...)), length=1000).\nℛ_GNC, obtained from func_ℛ_GNC and defined as:\n mathcalR = 5 s_mathrmb + frac2 - 5 s_mathrmbmathcalH s + \n fracdotmathcalHmathcalH^2 - mathitf_mathrmevo\nwheres is the comoving distance, \\mathcal{H} is comoving Hubble parameter, s_mathrmb is the magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), mathitf_mathrmevo the evolution bias and dotmathcalH = mathrmdmathcalH mathrmdtau the first derivative of the comoving Hubble parameter wrt the comoving time tau. It's spline is obtained in a sample of point given by 10.0 .^ range(-4, log10(max(comdist...)), length=1000).\ns_of_z ::Dierckx.Spline1D : spline that returns the value of the comoving distance s corresponding to an input redshift z. Also this spline is obtained from the data stored by BackgroundData applied to the input background data file.\nz_eff::Float64 : effective redshift of this survey; its value is obtained through the function func_z_eff, with inputs the s_min, s_max and z_of_s here stored.\ns_min::Float64 and s_max::Float64 : the minimum and maximum comoving distances of the survey considered; they are the corresponding comoving distance to the chosen minimum and maximum redshifts z_min and z_max, stored in the input CosmoParams.\ns_eff::Float64 : the corresponding comoving distance to the computed effective redshifts z_eff.\nvolume::Float64 : volume of this survey. It is computed applying the function V_survey with inputs s_min, s_max here stored and the θ_max in the input CosmoParams.\nfile_data, file_ips, file_windowF::String : the file names used for this Cosmology.\n\nConstructors\n\nCosmology(\n params::CosmoParams,\n file_data::String,\n file_ips::String,\n file_windowF::String,\n file_IntwindowF::String;\n names_bg = NAMES_BACKGROUND)\n\nparams::CosmoParams : parameters to be used for this Cosmology. See the docstring of CosmoParams for more information on the possible inputs.\nfile_data::String : file containing all the background data; it is expected that such file is a background output of the CLASS code. It is managed through the struct BackgroundData.\nfile_ips::String : file containing the Input Power Spectrum at present day; it is expected that such file is a Power Spectrum output of the CLASS code. It is managed through the struct InputPS.\nfile_windowF::String : file containing a map of the window function F. This file is managed through the struct WindowF, and can be produced with the function print_map_F; see their docstrings for more information.\nfile_IntwindowF::String : file containing a map of the Integrated Window Function \\mathcal{F}. This file is managed through the struct WindowFIntegrated, and can be produced with the function print_map_IntegartedF; see their docstrings for more information.\nnames = NAMES_BACKGROUND : the column names of the file_data. If the colum order change from the default one NAMES_BACKGROUND, you must set as input the vector of string with the correct one, with the SAME names. They are, with the default order:\n[\"z\", \"proper time [Gyr]\", \"conf. time [Mpc]\", \"H [1/Mpc]\", \"comov. dist.\", \"ang.diam.dist.\", \"lum. dist.\", \"comov.snd.hrz.\", \"(.)rhog\", \"(.)rhob\", \"(.)rhocdm\", \"(.)rholambda\", \"(.)rhour\", \"(.)rhocrit\", \"gr.fac. D\", \"gr.fac. f\"] \n\nSee also: CosmoParams, InputPS, IPSTools, BackgroundData, WindowF, WindowFIntegrated, print_map_F, print_map_IntegratedF, func_z_eff, V_survey, func_ℛ_LD, func_ℛ_GNC, \n\n\n\n\n\n","category":"type"},{"location":"Cosmology/#GaPSE.Point","page":"Cosmology Struct","title":"GaPSE.Point","text":" Point(\n z::Float64\n comdist::Float64\n D::Float64\n f::Float64\n ℋ::Float64\n ℋ_p::Float64\n ℛ_LD::Float64\n ℛ_GNC::Float64\n a::Float64\n )\n\nA point in the Universe, placed at redshift z from us. It contains all the relevant cosmological information at that redshift, respectively:\n\nthe redshift z;\nthe comoving distance s;\nthe linear growth factor D (normalized to 1.0 at present day);\nthe linear growth rate f;\nthe comoving Hubble parameter ℋ;\nthe first derivative ℋ_p of the comoving Hubble parameter ℋ wrt the comoving time tau;\nthe derivative of the comoving Hubble parameter wrt the comoving time ℋ_p; \nℛ_LD, obtained from func_ℛ_LD and defined as:\nmathfrakR = 1 - frac1mathcalH s\nwhere s is the comoving distance and \\mathcal{H} is comoving Hubble parameter.\nℛ_GNC, obtained from func_ℛ_GNC and defined as:\nmathcalR = 5 s_mathrmb + frac2 - 5 s_mathrmbmathcalH s + \nfracdotmathcalHmathcalH^2 - mathitf_mathrmevo\nwheres is the comoving distance, \\mathcal{H} is comoving Hubble parameter, s_mathrmb is the magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), mathitf_mathrmevo the evolution bias and dotmathcalH = mathrmdmathcalH mathrmdtau the first derivative of the comoving Hubble parameter wrt the comoving time tau.\nthe scale factor a (normalized to 1.0 at present day);\n\nWe remember that all the distances are measured in h_0^-1mathrmMpc.\n\nConstructors\n\nPoint(s, cosmo::Cosmology) : given a comoving distance s, it extrapolates all the data from the given input Cosmology.\n\nSee also: Cosmology\n\n\n\n\n\n","category":"type"},{"location":"GNC_Correlations/","page":"GNC","title":"GNC","text":"DocTestSetup = quote\n using GaPSE\nend","category":"page"},{"location":"GNC_Correlations/#GNC-TPCFs","page":"GNC","title":"GNC TPCFs","text":"","category":"section"},{"location":"GNC_Correlations/#Two-Point-Auto-Correlation-Functions","page":"GNC","title":"Two-Point Auto-Correlation Functions","text":"","category":"section"},{"location":"GNC_Correlations/","page":"GNC","title":"GNC","text":"GaPSE.ξ_GNC_Newtonian\nGaPSE.ξ_GNC_Doppler\nGaPSE.ξ_GNC_Lensing\nGaPSE.ξ_GNC_LocalGP\nGaPSE.ξ_GNC_IntegratedGP\n\nGaPSE.integrand_ξ_GNC_Lensing\nGaPSE.integrand_ξ_GNC_IntegratedGP","category":"page"},{"location":"GNC_Correlations/#GaPSE.ξ_GNC_Newtonian","page":"GNC","title":"GaPSE.ξ_GNC_Newtonian","text":" ξ_GNC_Newtonian(P1::Point, P2::Point, y, cosmo::Cosmology; \n obs::Union{Bool, Symbol} = :noobsvel) ::Float64\n\n ξ_GNC_Newtonian(s1, s2, y, cosmo::Cosmology; \n kwargs...) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) of the Newtonian auto-correlation effect arising from the Galaxy Number Counts (GNC).\n\nIn the first method, you should pass the two Point (P1 and P2) where to evaluate the function, while in the second method (that internally recalls the first) you must provide the two corresponding comoving distances s1 and s2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this term is the following:\n\nbeginsplit\n xi^deltadelta ( s_1 s_2 y ) = D_1 D_2 \n left \n J_00^deltadelta I_0^0 (s) + \n J_02^deltadelta I_2^0 (s) + \n J_04^deltadelta I_4^0 (s) \n right \nendsplit\n\nwhere\n\nbeginsplit\n J_00^deltadelta = frac115 \n left\n 15 b_1 b_2 + 5 b_1 f_2 + 5 b_2 f_1 +\n (2 y^2 + 1) f_1 f_2\n right\n \n \n J_02^deltadelta = - frac121 s^2\n left\n s_1^2 left\n 14 b_2 f_1 + \n 7 b_1 f_2 (3 y^2 - 1) + \n (11 y^2 + 1) f_1 f_2 \n right right \n leftqquad qquad \n + s_2^2 left\n 14 b_1 f_2 + \n 7 b_2 f_1 (3 y^2 - 1) + \n (11 y^2 + 1) f_1 f_2 \n right right \n left qquad qquad \n - 4 y s_1 s_2 left\n 7 b_2 f_1 + 7 b_1 f_2 +\n (y^2 + 5) f_1 f_2\n right\n right\n \n \n J_04^deltadelta = fracf_1 f_235 s^4\n left\n 4 (3 y^2 - 1) (s_1^4 + s_2^4) +\n 3 (3 + y^2)^2 s_1^2 s_2^2 - \n 8 y s_1 s_2 (s_1^2 + s_2^2) (3 + y^2)\n right\n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nb_1 = b(s_1), s_mathrmb 1 = s_mathrmb(s_1), mathitf_mathrmevo, ... : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias (the first two evaluated in s_1); they are all stored in cosmo;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nIn this TPCF there are no observer terms. The obs keyword is inserted only for compatibility with the other GNC TPCFs.\n\nInputs\n\nP1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nobs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?\n:yes or true -> all the observer effects will be considered\n:no or false -> no observer term will be taken into account\n:noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations/#GaPSE.ξ_GNC_Doppler","page":"GNC","title":"GaPSE.ξ_GNC_Doppler","text":" ξ_GNC_Doppler(P1::Point, P2::Point, y, cosmo::Cosmology; \n obs::Union{Bool, Symbol} = :noobsvel) ::Float64\n\n ξ_GNC_Doppler(s1, s2, y, cosmo::Cosmology; \n kwargs...) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) of the Doppler auto-correlation effect arising from the Galaxy Number Counts (GNC).\n\nIn the first method, you should pass the two Point (P1 and P2) where to evaluate the function, while in the second method (that internally recalls the first) you must provide the two corresponding comoving distances s1 and s2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this term is the following:\n\nbeginsplit\n xi^v_parallel v_parallel( s_1 s_2 y ) =\n D_1 D_2 J_alpha^v_parallel v_parallel\n left \n J_beta^v_parallel v_parallel\n left( \n frac145 I_0^0(s) +\n frac263 I_2^0 (s) + \n frac1105 I_4^0(s)\n right) +\n J^v_parallel v_parallel_20 I_0^2 (s)\n right \n \n + D_1 left \n J^v_parallel v_parallel_31 ( s_1 s_2) I_1^3 (s_1) + \n J^v_parallel v_parallel_11 ( s_1 s_2) I_1^1 (s_1) + \n J^v_parallel v_parallel_13 ( s_1 s_2) I_3^1 (s_1) \n right \n \n + D_2 left\n J^v_parallel v_parallel_31 ( s_2 s_1) I_1^3 (s_2) + \n J^v_parallel v_parallel_11 ( s_2 s_1) I_1^1 (s_2) +\n J^v_parallel v_parallel_13 ( s_2 s_1) I_3^1 (s_2) \n right\n \n + J^v_parallel v_parallel_sigma2 sigma_2 \nendsplit\n\nwith\n\nbeginsplit\n J_alpha^v_parallel v_parallel = \n f_1 f_2mathcalH_1 mathcalH_2 mathcalR_1 mathcalR_2\n \n \n J_beta^v_parallel v_parallel = \n y^2 s_1 s_2 - 2 y (s_1^2 + s_2^2) + 3 s_1 s_2\n \n \n J_20^v_parallel v_parallel =\n frac13 y s^2\n \n \n J_31^v_parallel v_parallel (s_1 s_2) =\n -y f_0 mathcalH_0 s_1^2 f_1 mathcalR_1 (mathcalR_2 - 5 s_mathrmb 2 + 2)\n \n \n J_11^v_parallel v_parallel (s_1 s_2) =\n frac15 y f_0 mathcalH_0 s_1^2 f_1 mathcalH_1 mathcalR_1 \n (mathcalR_2 - 5 s_mathrmb 2 + 2)\n \n \n J_13^v_parallel v_parallel (s_1 s_2) =\n frac15 y f_0 mathcalH_0 s_1^2 f_1 mathcalH_1 mathcalR_1 \n (mathcalR_2 - 5 s_mathrmb 2 + 2)\n \n \n J_sigma2^v_parallel v_parallel =\n frac13 y f_0^2 mathcalH_0^2 (mathcalR_1 - 5 s_mathrmb 1 + 2) \n (mathcalR_2 - 5 s_mathrmb 2 + 2) \n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nb_1 = b(s_1), s_mathrmb 1 = s_mathrmb(s_1), mathitf_mathrmevo, ... : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias (the first two evaluated in s_1); they are all stored in cosmo;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nIn this TPCF, the only non-observer term is the first one (i.e. the bracket proportional to D(s_1) D(s_2)). The other three ones are all observer terms related to the observer velocity, so if you set obs = :no, obs = false or even obs = :noobsvel they will not be computed.\n\nInputs\n\nP1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nobs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?\n:yes or true -> all the observer effects will be considered\n:no or false -> no observer term will be taken into account\n:noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations/#GaPSE.ξ_GNC_Lensing","page":"GNC","title":"GaPSE.ξ_GNC_Lensing","text":" ξ_GNC_Lensing(P1::Point, P2::Point, y, cosmo::Cosmology;\n obs::Union{Bool, Symbol} = :noobsvel,\n en::Float64 = 1e6, Δχ_min::Float64 = 1e-1,\n N_χs_2::Int = 100) ::Float64\n\n ξ_GNC_Lensing(s1, s2, y, cosmo::Cosmology; \n kwargs...) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) of the Lensing auto-correlation effect arising from the Galaxy Number Counts (GNC).\n\nIn the first method, you should pass the two Point (P1 and P2) where to evaluate the function, while in the second method (that internally recalls the first) you must provide the two corresponding comoving distances s1 and s2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this term is the following:\n\nbeginsplit\n xi^kappakappa (s_1 s_2 y) = \n int_0^s_1 mathrmdchi_1 int_0^s_2 mathrmdchi_2 \n J^kappakappa_alpha\n left\n J^kappakappa_00 I_0^0(Deltachi) + \n J^kappakappa_02 I_2^0(Deltachi) +\n right\n left\n J^kappakappa_31 I_1^3(Deltachi) +\n J^kappakappa_22 I_2^2(Deltachi)\n right \nendsplit\n\nwhere\n\nbeginsplit\n J^kappakappa_alpha = \n frac\n mathcalH_0^4 Omega_mathrmM0^2 D(chi_1) D(chi_2) \n \n s_1 s_2 a(chi_1) a(chi_2)\n (chi_1 - s_1)(chi_2 - s_2)\n (5 s_mathrmb 1 - 2)(5 s_mathrmb 2 - 2) \n \n \n J^kappakappa_00 = \n -frac 3 chi_1^2 chi_2^24 Deltachi^4 (y^2 - 1)\n left\n 8 y (chi_1^2 + chi_2^2) - 9chi_1chi_2y^2 - \n 7chi_1chi_2\n right \n \n \n J^kappakappa_02 = \n -frac 3 chi_1^2 chi_2^22 Deltachi^4(y^2 - 1)\n left\n 4 y (chi_1^2 + chi_2^2) - 3 chi_1 chi_2 y^2 -\n 5 chi_1 chi_2\n right \n \n \n J^kappakappa_31 = 9 y Deltachi^2 \n \n \n J^kappakappa_22 = \n frac9 chi_1 chi_24 Deltachi^4\n left\n 2(chi_1^4 + chi_2^4)(7 y^2 - 3) - \n 16 y chi_1 chi_2 (chi_1^2 + chi_2^2)(y^2 + 1) + \n right\n leftqquadqquadqquad\n chi_1^2 chi_2^2 (11y^4 + 14y^2 + 23) \n right \n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nb_1 = b(s_1), s_mathrmb 1 = s_mathrmb(s_1), mathitf_mathrmevo, ... : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias (the first two evaluated in s_1); they are all stored in cosmo;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nIn this TPCF there are no observer terms. The obs keyword is inserted only for compatibility with the other GNC TPCFs.\n\nThis function is computed integrating integrand_ξ_GNC_Lensing with trapz from the Trapz Julia package.\n\nInputs\n\nP1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nobs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?\n:yes or true -> all the observer effects will be considered\n:no or false -> no observer term will be taken into account\n:noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account\nen::Float64 = 1e6: just a float number used in order to deal better with small numbers;\nΔχ_min::Float64 = 1e-4 : when Deltachi = sqrtchi_1^2 + chi_2^2 - 2 chi_1 chi_2 y to 0^+, some I_ell^n term diverges, but the overall parenthesis has a known limit:\n lim_Deltachi to 0^+ left(\n J_00^kappakappa I^0_0(Deltachi) + \n J_02^kappakappa I^0_2(Deltachi) + \n J_31^kappakappa I^3_1(Deltachi) + \n J_22^kappakappa I^2_2(Deltachi)\n right) = \n 3 sigma_2 + frac65 chi_2^2 sigma_0\nSo, when it happens that Deltachi Deltachi_mathrmmin, the function considers this limit as the result of the parenthesis instead of calculating it in the normal way; it prevents computational divergences.\nN_χs_2::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ1) and (0, s2) (for χ2); it has been checked that with N_χs_2 ≥ 50 the result is stable.\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, integrand_ξ_GNC_Lensing\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations/#GaPSE.ξ_GNC_LocalGP","page":"GNC","title":"GaPSE.ξ_GNC_LocalGP","text":" ξ_GNC_LocalGP(P1::Point, P2::Point, y, cosmo::Cosmology; \n obs::Union{Bool, Symbol} = :noobsvel) ::Float64\n\n ξ_GNC_LocalGP(s1, s2, y, cosmo::Cosmology; \n kwargs...) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) of the Local Gravitational Potential (GP) auto-correlation effect arising from the Galaxy Number Counts (GNC).\n\nIn the first method, you should pass the two Point (P1 and P2) where to evaluate the function, while in the second method (that internally recalls the first) you must provide the two corresponding comoving distances s1 and s2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this term is the following:\n\nbeginsplit\n xi^phiphi( s_1 s_2 y ) = \n D_1 D_2 J_40^phiphi( s_1 s_2 ) tildeI_0^4 (s) \n + D_2 J_40^phi_0 phi(s_1s_2) tildeI_0^4 (s_2)\n \n + D_1 J_40^phi_0 phi(s_2s_1) tildeI_0^4 (s_1)\n + J_sigma4^phiphi (s_1 s_2) sigma_4 \nendsplit\n\nwhere\n\nbeginsplit\n J_40^phiphi (s_1 s_2) = \n fracs^44 a_1 a_2\n left\n 2 a_2 f_2 (mathitf_mathrmevo 2 - 3) mathcalH_2^2 + \n 3 mathcalH_0^2 Omega_mathrmM0 (f_2 + mathcalR_2 + 5 s_mathrmb 2 - 2)\n right times\n \n qquadqquad\n left\n 2 a_1 f_1(mathitf_mathrmevo 1-3) mathcalH_1^2 + \n 3 mathcalH_0^2 Omega_mathrmM0 (f_1 + mathcalR_1 + 5 s_mathrmb 1 - 2)\n right \n \n\n J_40^phi_0 phi(s_1 s_2) = \n fracmathcalH_0 s_2^44 s_1 a_2 \n left\n mathcalH_0 s_1 (2 f_0-3 Omega_mathrmM0) mathcalR_1 + \n 2 f_0 (5 s_mathrmb 1-2) \n right times\n \n qquadqquadleft\n 2 a_2 f_2 (mathitf_mathrmevo 2 - 3) mathcalH_2^2 + \n 3 mathcalH_0^2 Omega_mathrmM0 (f_2 + mathcalR_2 + 5 s_mathrmb 2 - 2)\n right\n \n\n J_sigma 4(s_1 s_2)= \n fracmathcalH_0^2 4 s_1 s_2\n left\n mathcalH_0 s_1 (2 f_0-3 Omega_mathrmM0) mathcalR_1 + \n 2 f_0(5 s_mathrmb 1-2)\n right times\n \n qquadqquadleft\n 3 Omega_mathrmM0 mathcalH_0 s_2 mathcalR_2 + \n 2 f_0 (mathcalH_0 s_2 mathcalR_2 + 5 s_mathrmb 2 - 2)\n right\n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nb_1 = b(s_1), s_mathrmb 1 = s_mathrmb(s_1), mathitf_mathrmevo, ... : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias (the first two evaluated in s_1); they are all stored in cosmo;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nIn this TPCF, the only non-observer term is the first one (i.e. the bracket proportional to D(s_1) D(s_2)), so if you set obs = :no or obs = false that is the only one computed. The other three terms are all observer terms, but not related to the observer velocity, so if you set obs = :noobsvel they will still be computed.\n\nInputs\n\nP1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nobs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?\n:yes or true -> all the observer effects will be considered\n:no or false -> no observer term will be taken into account\n:noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations/#GaPSE.ξ_GNC_IntegratedGP","page":"GNC","title":"GaPSE.ξ_GNC_IntegratedGP","text":" ξ_GNC_IntegratedGP(\n P1::Point, P2::Point, y, cosmo::Cosmology;\n en::Float64=1e10, N_χs_2::Int=100, \n obs::Union{Bool,Symbol}=:noobsvel\n ) ::Float64\n\n ξ_GNC_IntegratedGP(s1, s2, y, cosmo::Cosmology; \n kwargs...) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) of the Integrated Gravitational Potential (GP) auto-correlation effect arising from the Galaxy Number Counts (GNC).\n\nIn the first method, you should pass the two Point (P1 and P2) where to evaluate the function, while in the second method (that internally recalls the first) you must provide the two corresponding comoving distances s1 and s2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this term is the following:\n\nbeginsplit\n xi^intphi int phi ( s_1 s_2 y ) = \n int_0^s_1mathrmd chi_1 int_0^s_2mathrmd chi_2 \n J^int phi int phi_40 \n tildeI_0^4 ( Deltachi) \nendsplit\n\nwhere\n\nbeginsplit\n J^int phiint phi_40 =\n frac\n 9 Deltachi ^4 mathcalH_0^4 Omega_mathrmM 0^2 D(chi_1) D(chi_2)\n \n a(chi_1) a(chi_2) s_1 s_2\n \n left\n s_1 (f(chi_1) - 1) mathcalH(chi_1) mathcalR_1 - 5 s_mathrmb 1 + 2\n right times\n nonumber \n left\n s_2 (f(chi_2) - 1) mathcalH(chi_2) mathcalR_2 - 5 s_mathrmb 2 + 2\n right\n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nb_1 = b(s_1), s_mathrmb 1 = s_mathrmb(s_1), mathitf_mathrmevo, ... : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias (the first two evaluated in s_1); they are all stored in cosmo;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nIn this TPCF there are no observer terms. The obs keyword is inserted only for compatibility with the other GNC TPCFs.\n\nThis function is computed integrating integrand_ξ_GNC_IntegratedGP with trapz from the Trapz Julia package.\n\nInputs\n\nP1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nobs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?\n:yes or true -> all the observer effects will be considered\n:no or false -> no observer term will be taken into account\n:noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account\nen::Float64 = 1e6: just a float number used in order to deal better with small numbers;\nN_χs_2::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ1) and (0, s2) (for χ2); it has been checked that with N_χs_2 ≥ 50 the result is stable.\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, integrand_ξ_GNC_IntegratedGP\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations/#GaPSE.integrand_ξ_GNC_Lensing","page":"GNC","title":"GaPSE.integrand_ξ_GNC_Lensing","text":" integrand_ξ_GNC_Lensing(\n IP1::Point, IP2::Point,\n P1::Point, P2::Point,\n y, cosmo::Cosmology;\n Δχ_min::Float64=1e-1, \n obs::Union{Bool,Symbol}=:noobsvel\n ) ::Float64\n\n integrand_ξ_GNC_Lensing(\n χ1::Float64, χ2::Float64,\n s1::Float64, s2::Float64,\n y, cosmo::Cosmology;\n kwargs... )::Float64\n\nReturn the integrand of the Two-Point Correlation Function (TPCF) of the Lensing auto-correlation effect arising from the Galaxy Number Counts (GNC).\n\nIn the first method, you should pass the two extreme Points (P1 and P2) and the two intermediate integrand Points (IP1 and IP2) where to evaluate the function. In the second method (that internally recalls the first), you must provide the four corresponding comoving distances s1, s2, χ1, χ2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this integrand is the following:\n\nbeginequation\n f^kappakappa (chi_1 chi_2 s_1 s_2 y) = \n J^kappakappa_alpha\n left\n J^kappakappa_00 I_0^0(Deltachi) + \n J^kappakappa_02 I_2^0(Deltachi) +\n J^kappakappa_31 I_1^3(Deltachi) +\n J^kappakappa_22 I_2^2(Deltachi)\n right \nendequation\n\nwhere\n\nbeginsplit\n J^kappakappa_alpha = \n frac\n mathcalH_0^4 Omega_mathrmM0^2 D(chi_1) D(chi_2) \n \n s_1 s_2 a(chi_1) a(chi_2)\n (chi_1 - s_1)(chi_2 - s_2)\n (5 s_mathrmb 1 - 2)(5 s_mathrmb 2 - 2) \n \n \n J^kappakappa_00 = \n -frac 3 chi_1^2 chi_2^24 Deltachi^4 (y^2 - 1)\n left\n 8 y (chi_1^2 + chi_2^2) - 9chi_1chi_2y^2 - \n 7chi_1chi_2\n right \n \n \n J^kappakappa_02 = \n -frac 3 chi_1^2 chi_2^22 Deltachi^4(y^2 - 1)\n left\n 4 y (chi_1^2 + chi_2^2) - 3 chi_1 chi_2 y^2 -\n 5 chi_1 chi_2\n right \n \n \n J^kappakappa_31 = 9 y Deltachi^2 \n \n \n J^kappakappa_22 = \n frac9 chi_1 chi_24 Deltachi^4\n left\n 2(chi_1^4 + chi_2^4)(7 y^2 - 3) - \n 16 y chi_1 chi_2 (chi_1^2 + chi_2^2)(y^2 + 1) + \n right\n leftqquadqquadqquad\n chi_1^2 chi_2^2 (11y^4 + 14y^2 + 23) \n right \n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nb_1 = b(s_1), s_mathrmb 1 = s_mathrmb(s_1), mathitf_mathrmevo, ... : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias (the first two evaluated in s_1); they are all stored in cosmo;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nIn this TPCF there are no observer terms. The obs keyword is inserted only for compatibility with the other GNC TPCFs.\n\nThis function is used inside ξ_GNC_Lensing with trapz from the Trapz Julia package.\n\nInputs\n\nIP1::Point, IP2::Point, P1::Point, P2::Point or χ1, χ2, s1, s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nobs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?\n:yes or true -> all the observer effects will be considered\n:no or false -> no observer term will be taken into account\n:noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account\nΔχ_min::Float64 = 1e-4 : when Deltachi = sqrtchi_1^2 + chi_2^2 - 2 chi_1 chi_2 y to 0^+, some I_ell^n term diverges, but the overall parenthesis has a known limit:\n lim_Deltachi to 0^+ left(\n J_00^kappakappa I^0_0(Deltachi) + \n J_02^kappakappa I^0_2(Deltachi) + \n J_31^kappakappa I^3_1(Deltachi) + \n J_22^kappakappa I^2_2(Deltachi)\n right) = \n 3 sigma_2 + frac65 chi_2^2 sigma_0\nSo, when it happens that Deltachi Deltachi_mathrmmin, the function considers this limit as the result of the parenthesis instead of calculating it in the normal way; it prevents computational divergences.\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_Lensing\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations/#GaPSE.integrand_ξ_GNC_IntegratedGP","page":"GNC","title":"GaPSE.integrand_ξ_GNC_IntegratedGP","text":" integrand_ξ_GNC_IntegratedGP(\n IP1::Point, IP2::Point,\n P1::Point, P2::Point,\n y, cosmo::Cosmology; \n obs::Union{Bool,Symbol}=:noobsvel\n ) ::Float64\n\n integrand_ξ_GNC_IntegratedGP(\n χ1::Float64, χ2::Float64,\n s1::Float64, s2::Float64,\n y, cosmo::Cosmology;\n kwargs...) ::Float64\n\nReturn the integrand of the Two-Point Correlation Function (TPCF) of the Integrated Gravitational Potential (GP) auto-correlation effect arising from the Galaxy Number Counts (GNC).\n\nIn the first method, you should pass the two extreme Points (P1 and P2) and the two intermediate integrand Points (IP1 and IP2) where to evaluate the function. In the second method (that internally recalls the first), you must provide the four corresponding comoving distances s1, s2, χ1, χ2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this integrand is the following:\n\nbeginequation\n f^int phiint phi (chi_1 chi_2 s_1 s_2 y) = \n J^int phi int phi_40 \n tildeI_0^4 ( Deltachi) \nendequation\n\nwhere\n\nbeginsplit\n J^int phiint phi_40 =\n frac\n 9 Deltachi ^4 mathcalH_0^4 Omega_mathrmM0^2 D(chi_1) D(chi_2)\n \n a(chi_1) a(chi_2) s_1 s_2\n \n left\n s_1 (f(chi_1) - 1) mathcalH(chi_1) mathcalR_1 - 5 s_mathrmb 1 + 2\n right times\n nonumber \n left\n s_2 (f(chi_2) - 1) mathcalH(chi_2) mathcalR_2 - 5 s_mathrmb 2 + 2\n right\n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nb_1 = b(s_1), s_mathrmb 1 = s_mathrmb(s_1), mathitf_mathrmevo, ... : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias (the first two evaluated in s_1); they are all stored in cosmo;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nIn this TPCF there are no observer terms. The obs keyword is inserted only for compatibility with the other GNC TPCFs.\n\nThis function is used inside ξ_GNC_IntegratedGP with trapz from the Trapz Julia package.\n\nInputs\n\nIP1::Point, IP2::Point, P1::Point, P2::Point or χ1, χ2, s1, s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nobs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?\n:yes or true -> all the observer effects will be considered\n:no or false -> no observer term will be taken into account\n:noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_IntegratedGP\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations/#Two-Point-Cross-Correlation-Functions","page":"GNC","title":"Two-Point Cross-Correlation Functions","text":"","category":"section"},{"location":"GNC_Correlations/","page":"GNC","title":"GNC","text":"GaPSE.ξ_GNC_Newtonian_Doppler\nGaPSE.ξ_GNC_Doppler_Newtonian\nGaPSE.ξ_GNC_Newtonian_Lensing\nGaPSE.ξ_GNC_Lensing_Newtonian\nGaPSE.ξ_GNC_Newtonian_LocalGP\nGaPSE.ξ_GNC_LocalGP_Newtonian\nGaPSE.ξ_GNC_Newtonian_IntegratedGP\nGaPSE.ξ_GNC_IntegratedGP_Newtonian\nGaPSE.ξ_GNC_Doppler_Lensing\nGaPSE.ξ_GNC_Lensing_Doppler\nGaPSE.ξ_GNC_Doppler_LocalGP\nGaPSE.ξ_GNC_LocalGP_Doppler\nGaPSE.ξ_GNC_Doppler_IntegratedGP\nGaPSE.ξ_GNC_IntegratedGP_Doppler\nGaPSE.ξ_GNC_Lensing_LocalGP\nGaPSE.ξ_GNC_LocalGP_Lensing\nGaPSE.ξ_GNC_Lensing_IntegratedGP\nGaPSE.ξ_GNC_IntegratedGP_Lensing\nGaPSE.ξ_GNC_LocalGP_IntegratedGP\nGaPSE.ξ_GNC_IntegratedGP_LocalGP\n\nGaPSE.integrand_ξ_GNC_Newtonian_Lensing\nGaPSE.integrand_ξ_GNC_Newtonian_IntegratedGP\nGaPSE.integrand_ξ_GNC_Doppler_IntegratedGP\nGaPSE.integrand_ξ_GNC_Lensing_Doppler\nGaPSE.integrand_ξ_GNC_Lensing_LocalGP\nGaPSE.integrand_ξ_GNC_Lensing_IntegratedGP\nGaPSE.integrand_ξ_GNC_LocalGP_IntegratedGP","category":"page"},{"location":"GNC_Correlations/#GaPSE.ξ_GNC_Newtonian_Doppler","page":"GNC","title":"GaPSE.ξ_GNC_Newtonian_Doppler","text":" ξ_GNC_Newtonian_Doppler(\n P1::Point, P2::Point, y, cosmo::Cosmology; \n obs::Union{Bool, Symbol} = :noobsvel\n ) ::Float64\n\n ξ_GNC_Newtonian_Doppler(s1, s2, y, cosmo::Cosmology;\n kwargs...) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Newtonian and the Doppler effects arising from the Galaxy Number Counts (GNC).\n\nIn the first method, you should pass the two Point (P1 and P2) where to evaluate the function, while in the second method (that internally recalls the first) you must provide the two corresponding comoving distances s1 and s2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this term is the following:\n\nbeginsplit\n xi^delta v_parallel( s_1 s_2 y ) = \n D_1 D_2 J^delta v_parallel_alpha left \n J^delta v_parallel_00 I^0_0 (s) + \n J^delta v_parallel_02 I^0_2 (s) +\n J^delta v_parallel_04 I^0_4 (s) \n rightnonumber \n + D_1 J^delta v_parallel_beta left \n J^delta v_parallel_11 I^1_1 (s_1) + \n J^delta v_parallel_13 I^1_3 (s_1) \n right\nendsplit\n\nwhere\n\nbeginsplit\n J^delta v_parallel_alpha = f_2 mathcalH_2 mathcalR_2\n \n \n J^delta v_parallel_beta = \n y f_0 mathcalH_0 s_1 (mathcalR_2 - 5s_mathrmb 2 + 2)\n \n \n J^delta v_parallel_00 =\n frac115 left\n s_2 left 5 b_1 + (2 y^2 + 1) f_1 right -\n y s_1 left 3 f_1 + 5 b_1 right\n right \n \n \n J^delta v_parallel_02 =\n frac121 s^2 \n left \n left\n (y^2 + 1) f_1 + 7 b_1\n right s_2^3 -\n y left\n 21 b_1 + (5 y^2 + 4) f_1 \n right s_1 s_2^2 +\n rightnonumber \n left qquad qquad\n left\n 7 (2 y^2 + 1) b_1 + (10 y^2 - 1) f_1\n right s_1^2 s_2 -\n y left\n 7 b_1 + 3 f_1\n right s_1^3\n right\n \n \n J^delta v_parallel_04 =\n fracf_135 s^2 \n left\n 2 y s_1 ^3\n - 2 (y^2 + 2) s_1 ^2 s_2 +\n y (y^2 + 5) s_1 s_2^2 +\n (1 - 3 y^2) s_2 ^3\n right \n \n \n J^delta v_parallel_11 = frac15 (5b_1+3 f_1 ) \n \n \n J^delta v_parallel_13 = -frac25 f_1 \n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nb_1 = b(s_1), s_mathrmb 1 = s_mathrmb(s_1), mathitf_mathrmevo, ... : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias (the first two evaluated in s_1); they are all stored in cosmo;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nIn this TPCF, the term proportional to onlyD(s_1) is an observer term (while the term proportional to D(s_1) D(s_2) is not) and it does depend on the observer velocity. Consequently, if you set obs = :yes or obs = true both of them will computed, while for obs = :no, obs = false or even obs = :noobsvel only the first one will be taken into account.\n\nInputs\n\nP1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nobs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?\n:yes or true -> all the observer effects will be considered\n:no or false -> no observer term will be taken into account\n:noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations/#GaPSE.ξ_GNC_Doppler_Newtonian","page":"GNC","title":"GaPSE.ξ_GNC_Doppler_Newtonian","text":" ξ_GNC_Doppler_Newtonian(s1, s2, y, cosmo::Cosmology; kwargs...) = \n ξ_GNC_Newtonian_Doppler(s2, s1, y, cosmo; kwargs...)\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Doppler and the Newtonian effects arising from the Galaxy Number Counts (GNC).\n\nIt's computed through the symmetric function ξ_GNC_Newtonian_Doppler; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nInputs\n\ns1 and s2: comoving distances where the TPCF has to be calculated;\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nkwargs... : Keyword arguments to be passed to the symmetric TPCF\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_Newtonian_Doppler\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations/#GaPSE.ξ_GNC_Newtonian_Lensing","page":"GNC","title":"GaPSE.ξ_GNC_Newtonian_Lensing","text":" ξ_GNC_Newtonian_Lensing(s1, s2, y, cosmo::Cosmology;\n en::Float64=1e6, N_χs::Int=100, Δχ_min::Float64=1e-1,\n obs::Union{Bool,Symbol}=:noobsvel, suit_sampling::Bool = true)\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Newtonian and the Lensing effects arising from the Galaxy Number Counts (GNC).\n\nYou must provide the two comoving distances s1 and s2 where to evaluate the function. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this term is the following:\n\nbeginequation\n xi^delta kappa ( s_1 s_2 y ) =\n D_1 int_0^s_2mathrmd chi_2\n J^delta kappa_alpha\n left \n J^delta kappa_00 I_0^0 ( Deltachi_2 ) + \n J^delta kappa_02 I_2^0 ( Delta chi_2 ) + \n J^delta kappa_04 I_4^0 ( Delta chi_2 ) \n right \nendequation\n\nwhere\n\nbeginsplit\n J^delta kappa_alpha =\n frac\n mathcalH_0 ^2 Omega_mathrmM0 D (chi_2)\n \n a(chi_2 ) s_2\n \n (chi_2 - s_2 ) (5s_mathrmb 2 - 2) \n \n \n J^delta kappa_00 =\n frac15\n left\n (3 y^2 - 1) chi_2 f_1 - y s_1(3 f_1 + 5 b_1) \n right \n \n \n J^delta kappa_02 =\n frac114 Deltachi_2^2 \n left\n 4 f_1 (3 y^2 - 1) chi_2^3 - \n 2 y \n left\n (3 y^2 + 8) f_1 + 7 b_1\n right s_1 chi_2^2 +\n right nonumber \n leftqquad qquadqquad\n left\n (9 y^2 + 11) f_1 - 7 (y^2 + 3) b_1\n right s_1^2 chi_2 -\n 2 y left7 b_1 + 3 f_1 right s_1^3\n right \n \n \n J^delta kappa_04 =\n fracf_170 Deltachi_2^4 \n left\n (6 y^2 - 2) chi_2^5 +\n 6 y (y^2 - 3) s_1 chi_2^4 -\n (y^4 + 12 y^2 - 21) s_1^2 chi_2^3 +\n rightnonumber \n leftqquadqquadqquad\n 2 y (y^2 + 3) s_1^3 chi_2^2 -\n 12 chi_2 s_1^4 + \n 4 y s_1 ^5\n right \n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nb_1 = b(s_1), s_mathrmb 1 = s_mathrmb(s_1), mathitf_mathrmevo, ... : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias (the first two evaluated in s_1); they are all stored in cosmo;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nIn this TPCF there are no observer terms. The obs keyword is inserted only for compatibility with the other GNC TPCFs.\n\nThis function is computed integrating integrand_ξ_GNC_Newtonian_Lensing with trapz from the Trapz Julia package.\n\nInputs\n\ns1 and s2: comoving distances where the TPCF has to be calculated.\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nen::Float64 = 1e6: just a float number used in order to deal better with small numbers;\nΔχ_min::Float64 = 1e-4 : when Deltachi_2 = sqrts_1^2 + chi_2^2 - 2 s_1 chi_2 y to 0^+, some I_ell^n term diverges, but the overall parenthesis has a known limit:\n lim_Delta chi_2 to 0^+ \n left(\n J_00^delta kappa I^0_0(Delta chi_2 ) + \n J_02^delta kappa I^0_2(Delta chi_2 ) + \n J_04^delta kappa I^4_0(Delta chi_2 ) \n right) = \n - frac15 s_1 left(f_1 + 5 b_1right) sigma_0\nSo, when it happens that Delta chi_2 Deltachi_mathrmmin, the function considers this limit as the result of the parenthesis instead of calculating it in the normal way; it prevents computational divergences.\nN_χs::Int = 100: number of points to be used for sampling the integral along the range (0, s2) (for χ2); it has been checked that with N_χs ≥ 100 the result is stable.\nsuit_sampling::Bool = true : \n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, integrand_ξ_GNC_Newtonian_Lensing\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations/#GaPSE.ξ_GNC_Lensing_Newtonian","page":"GNC","title":"GaPSE.ξ_GNC_Lensing_Newtonian","text":" ξ_GNC_Lensing_Newtonian(s1, s2, y, cosmo::Cosmology; kwargs...) = \n ξ_GNC_Newtonian_Lensing(s2, s1, y, cosmo; kwargs...)\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Lensing and the Newtonian effects arising from the Galaxy Number Counts (GNC).\n\nIt's computed through the symmetric function ξ_GNC_Newtonian_Lensing; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nInputs\n\ns1 and s2: comoving distances where the TPCF has to be calculated;\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nkwargs... : Keyword arguments to be passed to the symmetric TPCF\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_Newtonian_Lensing\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations/#GaPSE.ξ_GNC_Newtonian_LocalGP","page":"GNC","title":"GaPSE.ξ_GNC_Newtonian_LocalGP","text":" ξ_GNC_Newtonian_LocalGP(\n P1::Point, P2::Point, y, cosmo::Cosmology; \n obs::Union{Bool, Symbol} = :noobsvel\n ) ::Float64\n\n ξ_GNC_Newtonian_LocalGP(s1, s2, y, cosmo::Cosmology;\n kwargs...) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Newtonian and the Local Gravitational Potential (GP) effects arising from the Galaxy Number Counts (GNC).\n\nIn the first method, you should pass the two Point (P1 and P2) where to evaluate the function, while in the second method (that internally recalls the first) you must provide the two corresponding comoving distances s1 and s2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this term is the following:\n\nbeginsplit\n xi^delta phi( s_1 s_2 y ) = \n D_1 D_2 J^delta phi_alpha left \n J^delta phi_beta \n left(\n frac130 I_0^0 (s) + \n frac121 I_2^0 (s) +\n frac170 I_4^0 (s) \n right) +\n J^delta phi_20 I_0^2 (s)\n right nonumber \n + D_1 J^delta phi_gamma left \n J^delta phi_31 I^3_1 (s_1) +\n J^delta phi_11 I^1_1 (s_1) + \n J^delta phi_13 I^1_3 (s_1) \n right \nendsplit\n\nwhere\n\nbeginsplit\n J^delta phi_alpha =\n frac13 a_2 left \n 2 f_2 a_2 mathcalH_2^2 (mathitf_mathrmevo 2 - 3) +\n 3 mathcalH_0^2 Omega_mathrmM0 (f_2 + mathcalR_2 + 5 s_mathrmb 2 - 2)\n right \n \n \n J^delta phi_beta =\n f_1 left \n (3 y^2 - 1) s_2^2 - 4 y s_1 s_2 + 2 s_1^2\n right \n \n \n J^delta phi_gamma =\n fracmathcalH_0 s_1^22 s_2 left \n 2 f_0 (mathcalH_0 s_2 mathcalR_2 + 5 s_mathrmb 2 - 2) - \n 3 mathcalH_0 s_2 mathcalR_2\n right \n \n \n J^delta phi_20 = \n - frac12(3 b_1 + f_1) (s_1^2 + s_2^2 - 2 y s_1 s_2)\n \n \n J^delta phi_31 = - (3 b_1 + f_1) \n \n \n J^delta phi_11 =\n J^delta phi_13 = frac15(b_1 + f_1) \n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nb_1 = b(s_1), s_mathrmb 1 = s_mathrmb(s_1), mathitf_mathrmevo, ... : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias (the first two evaluated in s_1); they are all stored in cosmo;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nIn this TPCF, the term proportional to onlyD(s_1) is an observer term (while the term proportional to D(s_1) D(s_2) is not), but does not depend on the observer velocitz. Consequently, if you set obs = :yes, obs = true or even obs = :noobsvel both of them will computed, while for obs = :no or obs = false only the first one will be taken into account.\n\nInputs\n\nP1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nobs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?\n:yes or true -> all the observer effects will be considered\n:no or false -> no observer term will be taken into account\n:noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations/#GaPSE.ξ_GNC_LocalGP_Newtonian","page":"GNC","title":"GaPSE.ξ_GNC_LocalGP_Newtonian","text":" ξ_GNC_LocalGP_Newtonian(s1, s2, y, cosmo::Cosmology; kwargs...) = \n ξ_GNC_Newtonian_LocalGP(s2, s1, y, cosmo; kwargs...)\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Local Gravitational Potential (GP) and the Newtonian effects arising from the Galaxy Number Counts (GNC).\n\nIt's computed through the symmetric function ξ_GNC_Newtonian_LocalGP; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nInputs\n\ns1 and s2: comoving distances where the TPCF has to be calculated;\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nkwargs... : Keyword arguments to be passed to the symmetric TPCF\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_Newtonian_LocalGP\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations/#GaPSE.ξ_GNC_Newtonian_IntegratedGP","page":"GNC","title":"GaPSE.ξ_GNC_Newtonian_IntegratedGP","text":"ξ_GNC_Newtonian_IntegratedGP(\n s1, s2, y, cosmo::Cosmology;\n en::Float64=1e6, N_χs::Int=100, \n obs::Union{Bool,Symbol}=:noobsvel\n ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Newtonian and the Integrated Gravitational Potential (GP) effects arising from the Galaxy Number Counts (GNC).\n\nYou must provide the two comoving distances s1 and s2 where to evaluate the function. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this integrand is the following:\n\nbeginsplit\n xi^delta intphi( s_1 s_2 y ) =\n D_1 int_0^s_2mathrmd chi_2 \n J^delta intphi_alpha\n left \n J^delta intphi_20 I_0^2 ( Deltachi_2 ) +\n right \n left \n J^delta intphi_beta\n left(\n frac115 I_0^0 ( Deltachi_2 ) + \n frac121 I_2^0 ( Deltachi_2 ) +\n frac135 I_4^0 ( Deltachi_2 )\n right) \n right nonumber\nendsplit\n\nwhere\n\nbeginsplit\n J^delta intphi_alpha =\n fracmathcalH_0^2 Omega_mathrmM0 D(chi_2)3 a(chi_2) s_2 \n left \n s_2 mathcalR_2 mathcalH(chi_2) ( f(chi_2) - 1) - 5 s_mathrmb 2 + 2\n right \n \n \n J^delta intphi_beta =\n f_1 left \n (3 y^2 - 1) chi_2^2 - 4 y s_1 chi_2 + 2 s_1^2\n right \n \n \n J^delta intphi_20 =\n - Deltachi_2^2 ( 3 b_1 + f_1)\n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nb_1 = b(s_1), s_mathrmb 1 = s_mathrmb(s_1), mathitf_mathrmevo, ... : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias (the first two evaluated in s_1); they are all stored in cosmo;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nIn this TPCF there are no observer terms. The obs keyword is inserted only for compatibility with the other GNC TPCFs.\n\nThis function is computed integrating integrand_ξ_GNC_Newtonian_IntegratedGP with trapz from the Trapz Julia package.\n\nInputs\n\nP1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nobs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?\n:yes or true -> all the observer effects will be considered\n:no or false -> no observer term will be taken into account\n:noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account\nen::Float64 = 1e6: just a float number used in order to deal better with small numbers;\nN_χs::Int = 100: number of points to be used for sampling the integral along the range (0, s2) (for χ2); it has been checked that with N_χs ≥ 100 the result is stable.\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, integrand_ξ_GNC_Newtonian_IntegratedGP\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations/#GaPSE.ξ_GNC_IntegratedGP_Newtonian","page":"GNC","title":"GaPSE.ξ_GNC_IntegratedGP_Newtonian","text":" ξ_GNC_IntegratedGP_Newtonian(s1, s2, y, cosmo::Cosmology; kwargs...) = \n ξ_GNC_Newtonian_IntegratedGP(s2, s1, y, cosmo; kwargs...)\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Integrated Gravitational Potential (GP) and the Newtonian effects arising from the Galaxy Number Counts (GNC).\n\nIt's computed through the symmetric function ξ_GNC_Newtonian_IntegratedGP; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nInputs\n\ns1 and s2: comoving distances where the TPCF has to be calculated;\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nkwargs... : Keyword arguments to be passed to the symmetric TPCF\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_Newtonian_IntegratedGP\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations/#GaPSE.ξ_GNC_Doppler_Lensing","page":"GNC","title":"GaPSE.ξ_GNC_Doppler_Lensing","text":" ξ_GNC_Doppler_Lensing(s1, s2, y, cosmo::Cosmology; kwargs...) = \n ξ_GNC_Lensing_Doppler(s2, s1, y, cosmo; kwargs...)\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Doppler and the Lensing effects arising from the Galaxy Number Counts (GNC).\n\nIt's computed through the symmetric function ξ_GNC_Lensing_Doppler; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nInputs\n\ns1 and s2: comoving distances where the TPCF has to be calculated;\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nkwargs... : Keyword arguments to be passed to the symmetric TPCF\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_Lensing_Doppler\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations/#GaPSE.ξ_GNC_Lensing_Doppler","page":"GNC","title":"GaPSE.ξ_GNC_Lensing_Doppler","text":" ξ_GNC_Lensing_Doppler(\n s1, s2, y, cosmo::Cosmology;\n en::Float64=1e6, N_χs::Int=100, \n obs::Union{Bool,Symbol}=:noobsvel,\n Δχ_min::Float64=1e-1\n ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Lensing and the Doppler effects arising from the Galaxy Number Counts (GNC).\n\nYou must provide the two comoving distances s1 and s2 where to evaluate the function. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this integrand is the following:\n\nbeginsplit\n xi^kappa v_parallel ( s_1 s_2 y ) = \n D_2 int_0^s_1dd chi_1 \n J^kappa v_parallel_alpha left\n J^kappa v_parallel_00 I_0^0 ( Delta chi_1 ) +\n J^kappa v_parallel_02 I_2^0 ( Delta chi_1 ) \n right nonumber \n left\n + J^kappa v_parallel_04 I_4^0 ( Delta chi_1 ) \n + J^kappa v_parallel_20 I_0^2 ( Delta chi_1 ) \n right\n + int_0^s_1dd chi_1 \n J^kappa v_parallel_31 I_1^3 ( chi_1 ) \nendsplit\n\nwhere\n\nbeginsplit\n J^kappa v_parallel_alpha = \n fracmathcalH_0^2 Omega_mathrmM0 D(chi_1)a(chi_1) s_1\n f_2 mathcalH_2 mathcalR_2 (chi_1 - s_1) (5 s_mathrmb 1 - 2)\n \n \n J^kappa v_parallel_00 = \n frac115\n left\n chi_1^2 y + chi_1 s_2 (4 y^2 - 3) - 2 y s_2^2\n right \n \n \n J^kappa v_parallel_02 = \n frac142 Deltachi_1^2 left\n 4 y chi_1^4 + 4 (2 y^2 - 3) s_2 chi_1^3 + \n y (11 - 23 y^2) s_2^2 chi_1^2 +\n right\n leftqquadqquadqquad\n (23 y^2 - 3) s_2^3 chi_1 - 8 y s_2^4\n right nonumber\n \n \n J^kappa v_parallel_04 = \n frac170 Deltachi_1^2 \n left\n 2 y chi_1^4 + 2 (2 y^2 - 3) s_2 chi_1^3 - \n y (y^2 + 5) s_2^2 chi_1^2 + \n (y^2 + 9) s_2^3 chi_1 - 4 y s_2^4\n right \n \n \n J^kappa v_parallel_20 = y Deltachi_1^2 \n \n \n J^kappa v_parallel_31 =\n -frac\n 3 chi_1^2 y f_0 mathcalH_0^3 Omega_mathrmM0 D(chi_1) \n \n a(chi_1)s_1\n (chi_1 - s_1) (5 s_mathrmb 1 - 2) (mathcalR_2 - 5 s_mathrmb 2 + 2) \n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nb_1 = b(s_1), s_mathrmb 1 = s_mathrmb(s_1), mathitf_mathrmevo, ... : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias (the first two evaluated in s_1); they are all stored in cosmo;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nIn this TPCF, the term proportional to D(s_1) is not an observer term. The other one instead is and it does depend on the observer velocity. Consequently, if you set obs = :yes or obs = true both of them will computed, while for obs = :no, obs = false or even obs = :noobsvel only the first one will be taken into account.\n\nThis function is computed from integrand_ξ_GNC_Lensing_Doppler with trapz from the Trapz Julia package.\n\nInputs\n\nP1::Point, P2::Point or s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nobs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?\n:yes or true -> all the observer effects will be considered\n:no or false -> no observer term will be taken into account\n:noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account\nΔχ_min::Float64 = 1e-1 : when Deltachi_1 = sqrtchi_1^2 + s_2^2 - 2 chi_1 s_2 y to 0^+, some I_ell^n term diverges, but the overall parenthesis has a known limit:\n lim_Deltachi_1 to 0^+\n left\n J^kappa v_parallel_00 I_0^0 ( Delta chi_1 ) +\n J^kappa v_parallel_02 I_2^0 ( Delta chi_1 ) +\n J^kappa v_parallel_04 I_4^0 ( Delta chi_1 ) +\n J^kappa v_parallel_20 I_0^2 ( Delta chi_1 ) \n right = sigma_2\nSo, when it happens that Deltachi_1 Deltachi_mathrmmin, the function considers this limit as the result of the parenthesis instead of calculating it in the normal way; it prevents computational divergences.\nen::Float64 = 1e6: just a float number used in order to deal better with small numbers;\nN_χs::Int = 100: number of points to be used for sampling the integral along the range (0, s1) (for χ1); it has been checked that with N_χs ≥ 100 the result is stable.\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, integrand_ξ_GNC_Lensing_Doppler\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations/#GaPSE.ξ_GNC_Doppler_LocalGP","page":"GNC","title":"GaPSE.ξ_GNC_Doppler_LocalGP","text":" ξ_GNC_Doppler_LocalGP(\n P1::Point, P2::Point, y, cosmo::Cosmology; \n obs::Union{Bool,Symbol}=:noobsvel\n ) ::Float64\n\n ξ_GNC_Doppler_LocalGP(\n s1, s2, y, cosmo::Cosmology; \n kwargs...) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Doppler and the Local Gravitational Potential (GP) effects arising from the Galaxy Number Counts (GNC).\n\nIn the first method, you should pass the two Point (P1 and P2) where to evaluate the function, while in the second method (that internally recalls the first) you must provide the two corresponding comoving distances s1 and s2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this term is the following:\n\nbeginsplit\n xi^v_parallel phi ( s_1 s_2 y ) = \n D_1 D_2 J^v_parallel phi_alpha\n left \n frac190 I_0^0 (s) +\n frac163 I_2^0 (s) + \n frac1210 I_4^0 (s) +\n frac16 I_0^2 (s) \n right\n nonumber \n +\n D_1 J^v_parallel phi_0 _31 I^3_1 (s_1) +\n D_2 J^v_parallel 0 phi _31 I^3_1 (s_2) \nendsplit\n\nwhere\n\nbeginsplit\n J^v_parallel phi_alpha =\n fracf_1 mathcalH_1 mathcalR_1 s^2a_2 (y s_2 - s_1) \n times\n qquadqquadqquad\n left \n 2 f_2 a_2 mathcalH_2^2 (mathitf_mathrmevo 2 - 3) + \n 3 mathcalH_0^2 Omega_mathrmM0 (f_2 + mathcalR_2 + 5 s_mathrmb 2 - 2)\n right\n nonumber \n \n J^v_parallel phi_0 _31 =\n frac f_1 mathcalH_1 mathcalR_12 s_2 mathcalH_0 s_1^3 \n left \n 3 mathcalH_0 Omega_mathrmM0 s_2 mathcalR_2 -\n 2 f_0 left( mathcalH_0 s_2 mathcalR_2 + 5 s_mathrmb 2 - 2 right)\n right\n \n \n J^v_parallel 0 phi _31 =\n -fracy f_0 mathcalH_0 s_2^32 a_2 (mathcalR_1 - 5 s_mathrmb 1 + 2) \n times \n qquadqquadqquad\n left \n 2 a_2 f_2 mathcalH_2^2 (mathitf_mathrmevo 2 - 3) +\n 3 mathcalH_0^2 Omega_mathrmM0 (f_2 + mathcalR_2 + 5 s_mathrmb 2 - 2)\n right\n nonumber \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nb_1 = b(s_1), s_mathrmb 1 = s_mathrmb(s_1), mathitf_mathrmevo, ... : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias (the first two evaluated in s_1); they are all stored in cosmo;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nIn this TPCF, the terms proportional to D(s_1) and D(s_2) are observer terms (while the term proportional to D(s_1) D(s_2) is not), but only the propto D(s_2) one depends on the observer velocity. Consequently, if you set:\n\nobs = :yes or obs = true all of them will be computed\nobs = :noobsvel then the propto D(s_2) term will be neglected\nobs = :no or obs = false only the first one propto D(s_1) D(s_2) will be taken into account.\n\nInputs\n\nP1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nobs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?\n:yes or true -> all the observer effects will be considered\n:no or false -> no observer term will be taken into account\n:noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations/#GaPSE.ξ_GNC_LocalGP_Doppler","page":"GNC","title":"GaPSE.ξ_GNC_LocalGP_Doppler","text":" ξ_GNC_LocalGP_Doppler(s1, s2, y, cosmo::Cosmology; kwargs...) = \n ξ_GNC_Doppler_LocalGP(s2, s1, y, cosmo; kwargs...)\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Local Gravitational Potential (GP) and the Doppler effects arising from the Galaxy Number Counts (GNC).\n\nIt's computed through the symmetric function ξ_GNC_Doppler_LocalGP; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nInputs\n\ns1 and s2: comoving distances where the TPCF has to be calculated;\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nkwargs... : Keyword arguments to be passed to the symmetric TPCF\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_Doppler_LocalGP\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations/#GaPSE.ξ_GNC_Doppler_IntegratedGP","page":"GNC","title":"GaPSE.ξ_GNC_Doppler_IntegratedGP","text":" ξ_GNC_Doppler_IntegratedGP(\n s1, s2, y, cosmo::Cosmology;\n en::Float64=1e6, N_χs::Int=100, \n obs::Union{Bool,Symbol}=:noobsvel\n ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Doppler and the Integrated Gravitational Potential (GP) effects arising from the Galaxy Number Counts (GNC).\n\nYou must provide the two comoving distances s1 and s2 where to evaluate the function. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this integrand is the following:\n\nbeginsplit\n xi^v_parallel intphi left( s_1 s_2 y right) = D_1 int_0^s_2mathrmd chi_2 \n J^v_parallel intphi_alpha \n left\n frac115 I_0^0 ( Deltachi_2 ) +\n frac221 I_2^0 ( Deltachi_2 ) +\n right \n left\n frac135 I_4^0 ( Deltachi_2 ) +\n I^2_0 ( Deltachi_2) \n right\n + int_0^s_2mathrmd chi_2 \n J^v_parallel intphi_31 I^3_1 (chi_2) \n nonumber\nendsplit\n\nwhere\n\nbeginsplit\n J^v_parallel intphi_alpha =\n fracf_1 mathcalH_1 mathcalR_1s_2 a(chi_2) \n D(chi_2) mathcalH_0^2 Omega_mathrmM0 Deltachi_2^2 \n (chi_2 y - s_1) \n left\n s_2 mathcalH(chi_2) mathcalR_2 (f(chi_2) - 1) - 5 s_mathrmb 2 + 2\n right\n \n \n J^v_parallel intphi_31 =\n -frac\n 3 chi_2^3 y f_0 mathcalH_0^3 Omega_mathrmM0 D(chi_2)\n \n s_2 a(chi_2)\n (mathcalR_1 - 5 s_mathrmb 1 + 2)\n left\n s_2 mathcalH(chi_2) mathcalR_2 (f(chi_2) - 1) - 5 s_mathrmb 2 + 2)\n right \n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nb_1 = b(s_1), s_mathrmb 1 = s_mathrmb(s_1), mathitf_mathrmevo, ... : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias (the first two evaluated in s_1); they are all stored in cosmo;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nIn this TPCF, the term proportional to D(s_1) is not an observer term. The other one instead is and it does depend on the observer velocity. Consequently, if you set obs = :yes or obs = true both of them will computed, while for obs = :no, obs = false or even obs = :noobsvel only the propto D(s_1) one will be taken into account.\n\nThis function is computed integrating integrand_ξ_GNC_Doppler_IntegratedGP with trapz from the Trapz Julia package.\n\nInputs\n\nP1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nobs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?\n:yes or true -> all the observer effects will be considered\n:no or false -> no observer term will be taken into account\n:noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account\nen::Float64 = 1e6: just a float number used in order to deal better with small numbers;\nN_χs::Int = 100: number of points to be used for sampling the integral along the range (0, s2) (for χ2); it has been checked that with N_χs ≥ 100 the result is stable.\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, integrand_ξ_GNC_Doppler_IntegratedGP\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations/#GaPSE.ξ_GNC_IntegratedGP_Doppler","page":"GNC","title":"GaPSE.ξ_GNC_IntegratedGP_Doppler","text":" ξ_GNC_IntegratedGP_Doppler(s1, s2, y, cosmo::Cosmology; kwargs...) = \n ξ_GNC_Doppler_IntegratedGP(s2, s1, y, cosmo; kwargs...)\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Integrated Gravitational Potential (GP) and the Doppler effects arising from the Galaxy Number Counts (GNC).\n\nIt's computed through the symmetric function ξ_GNC_Doppler_IntegratedGP; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nInputs\n\ns1 and s2: comoving distances where the TPCF has to be calculated;\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nkwargs... : Keyword arguments to be passed to the symmetric TPCF\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_Doppler_IntegratedGP\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations/#GaPSE.ξ_GNC_Lensing_LocalGP","page":"GNC","title":"GaPSE.ξ_GNC_Lensing_LocalGP","text":" ξ_GNC_Lensing_LocalGP(\n s1, s2, y, cosmo::Cosmology;\n en::Float64=1e6, N_χs::Int=100, \n obs::Union{Bool,Symbol}=:noobsvel\n ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Lensing and the Local Gravitational Potential (GP) effects arising from the Galaxy Number Counts (GNC).\n\nYou must provide the two comoving distances s1 and s2 where to evaluate the function. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this integrand is the following:\n\nbeginsplit\n xi^kappa phi ( s_1 s_2 y ) = \n D_2 int_0^s_1mathrmd chi_1 \n J^kappa phi_alphaleft \n J^kappa phi_20 I_0^2 ( Delta chi_1 ) +\n rightnonumber \n leftqquad\n J^kappa phi_beta\n left(\n frac160 I_0^0 ( Delta chi_1 ) +\n frac142 I_2^0 ( Delta chi_1 ) +\n frac1140 I_4^0 ( Delta chi_1 ) \n right)\n right \nendsplit\n\nwhere\n\nbeginsplit\n J^kappa phi_alpha = \n fracmathcalH_0^2 Omega_mathrmM0 s_2 D(chi_1)a(chi_1) a_2 s_1\n (chi_1 - s_1) (5s_mathrmb 1 - 2) \n times\n qquadqquad\n left\n 2 f_2 a_2 mathcalH_2^2 (mathitf_mathrmevo 2 - 3) + \n 3 mathcalH_0^2 Omega_mathrmM0 (f_2 + mathcalR_2 + 5s_mathrmb 2 - 2)\n right nonumber\n \n \n J^kappa phi_beta =\n 2 y chi_1^2 - chi_1 s_2 (y^2 + 3) + 2 y s_2^2\n \n \n J^kappa phi_20 = frac12 y Deltachi_1^2 \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nb_1 = b(s_1), s_mathrmb 1 = s_mathrmb(s_1), mathitf_mathrmevo, ... : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias (the first two evaluated in s_1); they are all stored in cosmo;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nIn this TPCF there are no observer terms. The obs keyword is inserted only for compatibility with the other GNC TPCFs.\n\nThis function is computed from integrand_ξ_GNC_Lensing_LocalGP with trapz from the Trapz Julia package.\n\nInputs\n\nP1::Point, P2::Point or s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nobs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?\n:yes or true -> all the observer effects will be considered\n:no or false -> no observer term will be taken into account\n:noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account\nen::Float64 = 1e6: just a float number used in order to deal better with small numbers;\nN_χs::Int = 100: number of points to be used for sampling the integral along the range (0, s1) (for χ1); it has been checked that with N_χs ≥ 100 the result is stable.\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, integrand_ξ_GNC_Lensing_LocalGP\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations/#GaPSE.ξ_GNC_LocalGP_Lensing","page":"GNC","title":"GaPSE.ξ_GNC_LocalGP_Lensing","text":" ξ_GNC_LocalGP_Lensing(s1, s2, y, cosmo::Cosmology; kwargs...) = \n ξ_GNC_Lensing_LocalGP(s2, s1, y, cosmo; kwargs...)\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Local Gravitational Potential (GP) and the Lensing effects arising from the Galaxy Number Counts (GNC).\n\nIt's computed through the symmetric function ξ_GNC_Lensing_LocalGP; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nInputs\n\ns1 and s2: comoving distances where the TPCF has to be calculated;\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nkwargs... : Keyword arguments to be passed to the symmetric TPCF\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_Lensing_LocalGP\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations/#GaPSE.ξ_GNC_Lensing_IntegratedGP","page":"GNC","title":"GaPSE.ξ_GNC_Lensing_IntegratedGP","text":" ξ_GNC_Lensing_IntegratedGP(\n P1::Point, P2::Point, y, cosmo::Cosmology;\n en::Float64=1e6, N_χs_2::Int=100, \n obs::Union{Bool,Symbol}=:noobsvel\n ) ::Float64\n\n ξ_GNC_Lensing_IntegratedGP(\n s1, s2, y, cosmo::Cosmology; \n kwargs...) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Lensing and the Integrated Gravitational Potential (GP) effects arising from the Galaxy Number Counts (GNC).\n\nIn the first method, you should pass the two Point (P1 and P2) where to evaluate the function, while in the second method (that internally recalls the first) you must provide the two corresponding comoving distances s1 and s2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this integrand is the following:\n\nbeginsplit\n xi^kappa intphi ( s_1 s_2 y ) = \n int_0^s_1mathrmd chi_1 int_0^s_2mathrmd chi_2 \n J_alpha^kappa intphi \n left \n J_31^kappa intphi I_1^3 ( Delta chi ) +\n J_22^kappa intphi I_2^2 ( Delta chi ) \n right \nendsplit\n\nwhere\n\nbeginsplit\n J_alpha^kappa intphi =\n frac\n 9 chi_2 mathcalH_0^4 Omega_mathrmM0^2 D(chi_1) D(chi_2) \n \n a(chi_1) a(chi_2) s_1 s_2\n \n (chi_1 - s_1) (5 s_mathrmb 1 - 2) times\n qquadqquadqquadqquadqquadqquad\n left\n mathcalH(chi_2) mathcalR_2 s_1 (f(chi_2) - 1) - 5 s_mathrmb 1 + 2\n right nonumber\n \n \n J_31^kappa intphi = y Deltachi^2\n \n \n J_22^kappa intphi = \n frac12 (y^2 - 1) chi_1 chi_2 \n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nb_1 = b(s_1), s_mathrmb 1 = s_mathrmb(s_1), mathitf_mathrmevo, ... : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias (the first two evaluated in s_1); they are all stored in cosmo;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nIn this TPCF there are no observer terms. The obs keyword is inserted only for compatibility with the other GNC TPCFs.\n\nThis function is computed from integrand_ξ_GNC_Lensing_IntegratedGP with trapz from the Trapz Julia package.\n\nInputs\n\nP1::Point, P2::Point or s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nobs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?\n:yes or true -> all the observer effects will be considered\n:no or false -> no observer term will be taken into account\n:noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning IntegratedGP) will be neglected, the other ones will be taken into account\nen::Float64 = 1e6: just a float number used in order to deal better with small numbers;\nN_χs_2::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ1) and (0, s2) (for χ2); it has been checked that with N_χs_2 ≥ 50 the result is stable.\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, integrand_ξ_GNC_Lensing_IntegratedGP\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations/#GaPSE.ξ_GNC_IntegratedGP_Lensing","page":"GNC","title":"GaPSE.ξ_GNC_IntegratedGP_Lensing","text":" ξ_GNC_IntegratedGP_Lensing(s1, s2, y, cosmo::Cosmology; kwargs...) = \n ξ_GNC_Lensing_IntegratedGP(s2, s1, y, cosmo; kwargs...)\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Integrated Gravitational Potential (GP) and the Lensing effects arising from the Galaxy Number Counts (GNC).\n\nIt's computed through the symmetric function ξ_GNC_Lensing_IntegratedGP; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nInputs\n\ns1 and s2: comoving distances where the TPCF has to be calculated;\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nkwargs... : Keyword arguments to be passed to the symmetric TPCF\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_Lensing_IntegratedGP\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations/#GaPSE.ξ_GNC_LocalGP_IntegratedGP","page":"GNC","title":"GaPSE.ξ_GNC_LocalGP_IntegratedGP","text":" ξ_GNC_LocalGP_IntegratedGP(\n s1, s2, y, cosmo::Cosmology;\n en::Float64=1e6, N_χs::Int=100, \n obs::Union{Bool,Symbol}=:noobsvel\n ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Local Gravitational Potential (GP) and the Integrated Gravitational Potential (GP) effects arising from the Galaxy Number Counts (GNC).\n\nYou must provide the two comoving distances s1 and s2 where to evaluate the function. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this integrand is the following:\n\nbeginsplit\n xi^phi intphi (chi_2 s_1 s_2 y ) = \n D_1 int_0^s_2mathrmd chi_2\n J^phi intphi_40 tildeI_0^4 ( Deltachi_2 ) + \n int_0^s_2mathrmd chi_2 \n J^phi_0 intphi_04 tildeI_0^4 ( chi_2 ) \nendsplit\n\nwhere\n\nbeginsplit\n J^phi intphi_40 =\n frac\n 3 Deltachi_2^4 mathcalH_0^2 Omega_mathrmM0 D(chi_2) \n \n 2 s_2 a(chi_2) a_1\n left\n s_2 mathcalH(chi_2) mathcalR_2(f(chi_2)-1) -5 s_mathrmb 2+2\n right \n times\n qquadqquadqquad\n left\n 2 a_1 f_1 mathcalH_1^2 (mathitf_mathrmevo 1 - 3) +\n 3 mathcalH_0^2 Omega_mathrmM0 (f_1 + mathcalR_1 + 5 s_mathrmb 1 - 2)\n right\n nonumber \n \n J^phi_0 intphi_40 =\n frac\n 3 chi_2^4 mathcalH_0^3 Omega_mathrmM0 D(chi_2)\n \n 2 s_1 s_2 a(chi_2)\n left\n s_2 mathcalH(chi_2) mathcalR_2 (f(chi_2) - 1) - 5 s_mathrmb 2 + 2\n righttimes\n nonumber \n qquadqquadqquad\n left\n - 3 Omega_mathrmM0 mathcalH_0 s_1 mathcalR_1 +\n 2 f_0 (mathcalH_0 s_1 mathcalR_1 + 5 s_mathrmb 1 - 2)\n right \n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nb_1 = b(s_1), s_mathrmb 1 = s_mathrmb(s_1), mathitf_mathrmevo, ... : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias (the first two evaluated in s_1); they are all stored in cosmo;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nIn this TPCF, the term proportional to D(s_1) is not an observer term. The other one instead is, and it does also depend on the observer velocity. Consequently, if you set obs = :yes or obs = true both of them will computed, while for obs = :no, obs = false or even obs = :noobsvel only the first one will be taken into account.\n\nThis function is computed from integrand_ξ_GNC_LocalGP_IntegratedGP with trapz from the Trapz Julia package.\n\nInputs\n\nP1::Point, P2::Point or s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nobs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?\n:yes or true -> all the observer effects will be considered\n:no or false -> no observer term will be taken into account\n:noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account\nen::Float64 = 1e6: just a float number used in order to deal better with small numbers;\nN_χs::Int = 100: number of points to be used for sampling the integral along the range (0, s2) (for χ2); it has been checked that with N_χs ≥ 100 the result is stable.\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, integrand_ξ_GNC_LocalGP_IntegratedGP\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations/#GaPSE.ξ_GNC_IntegratedGP_LocalGP","page":"GNC","title":"GaPSE.ξ_GNC_IntegratedGP_LocalGP","text":" ξ_GNC_IntegratedGP_LocalGP(s1, s2, y, cosmo::Cosmology; kwargs...) = \n ξ_GNC_LocalGP_IntegratedGP(s2, s1, y, cosmo; kwargs...)\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Integrated Gravitational Potential (GP) and the Local Gravitational Potential (GP) effects arising from the Galaxy Number Counts (GNC).\n\nIt's computed through the symmetric function ξ_GNC_LocalGP_IntegratedGP; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nInputs\n\ns1 and s2: comoving distances where the TPCF has to be calculated;\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nkwargs... : Keyword arguments to be passed to the symmetric TPCF\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_LocalGP_IntegratedGP\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations/#GaPSE.integrand_ξ_GNC_Newtonian_Lensing","page":"GNC","title":"GaPSE.integrand_ξ_GNC_Newtonian_Lensing","text":" integrand_ξ_GNC_Newtonian_Lensing(\n IP::Point, P1::Point, P2::Point,\n y, cosmo::Cosmology;\n Δχ_min::Float64=1e-1, \n obs::Union{Bool,Symbol}=:noobsvel\n ) ::Float64\n\n integrand_ξ_GNC_Newtonian_Lensing(\n χ2::Float64, s1::Float64, s2::Float64,\n y, cosmo::Cosmology;\n kwargs... )::Float64\n\nReturn the integrand of the Two-Point Correlation Function (TPCF) given by the cross correlation between the Newtonian and the Lensing effects arising from the Galaxy Number Counts (GNC).\n\nIn the first method, you should pass the two extreme Points (P1 and P2) and the intermediate integrand Point (IP) where to evaluate the function. In the second method (that internally recalls the first), you must provide the three corresponding comoving distances s1, s2, χ2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this integrand is the following:\n\nbeginequation\n f^deltakappa (chi_2 s_1 s_2 y) =\n D_1 J^delta kappa_alpha\n left \n J^delta kappa_00 I_0^0 ( Deltachi_2 ) + \n J^delta kappa_02 I_2^0 ( Delta chi_2 ) + \n J^delta kappa_04 I_4^0 ( Delta chi_2 ) \n right \nendequation\n\nwhere\n\nbeginsplit\n J^delta kappa_alpha =\n frac\n mathcalH_0 ^2 Omega_mathrmM0 D (chi_2)\n \n a(chi_2 ) s_2\n \n (chi_2 - s_2 ) (5s_mathrmb 2 - 2) \n \n \n J^delta kappa_00 =\n frac15\n left\n (3 y^2 - 1) chi_2 f_1 - y s_1(3 f_1 + 5 b_1) \n right \n \n \n J^delta kappa_02 =\n frac114 Deltachi_2^2 \n left\n 4 f_1 (3 y^2 - 1) chi_2^3 - \n 2 y \n left\n (3 y^2 + 8) f_1 + 7 b_1\n right s_1 chi_2^2 +\n right nonumber \n leftqquad qquadqquad\n left\n (9 y^2 + 11) f_1 - 7 (y^2 + 3) b_1\n right s_1^2 chi_2 -\n 2 y left7 b_1 + 3 f_1 right s_1^3\n right \n \n \n J^delta kappa_04 =\n fracf_170 Deltachi_2^4 \n left\n (6 y^2 - 2) chi_2^5 +\n 6 y (y^2 - 3) s_1 chi_2^4 -\n (y^4 + 12 y^2 - 21) s_1^2 chi_2^3 +\n rightnonumber \n leftqquadqquadqquad\n 2 y (y^2 + 3) s_1^3 chi_2^2 -\n 12 chi_2 s_1^4 + \n 4 y s_1 ^5\n right \n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nb_1 = b(s_1), s_mathrmb 1 = s_mathrmb(s_1), mathitf_mathrmevo, ... : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias (the first two evaluated in s_1); they are all stored in cosmo;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nIn this TPCF there are no observer terms. The obs keyword is inserted only for compatibility with the other GNC TPCFs.\n\nThis function is used inside ξ_GNC_Newton_Lensing with the trapz from the Trapz Julia package.\n\nInputs\n\nIP::Point, P1::Point, P2::Point or χ2,s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nobs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?\n:yes or true -> all the observer effects will be considered\n:no or false -> no observer term will be taken into account\n:noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account\nΔχ_min::Float64 = 1e-4 : when Deltachi_2 = sqrts_1^2 + chi_2^2 - 2 s_1 chi_2 y to 0^+, some I_ell^n term diverges, but the overall parenthesis has a known limit:\n lim_Delta chi_2 to 0^+ \n left(\n J_00^delta kappa I^0_0(Delta chi_2 ) + \n J_02^delta kappa I^0_2(Delta chi_2 ) + \n J_04^delta kappa I^4_0(Delta chi_2 ) \n right) = \n - frac15 s_1 left(f_1 + 5 b_1right) sigma_0\nSo, when it happens that Delta chi_2 Deltachi_mathrmmin, the function considers this limit as the result of the parenthesis instead of calculating it in the normal way; it prevents computational divergences.\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_Newton_Lensing\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations/#GaPSE.integrand_ξ_GNC_Newtonian_IntegratedGP","page":"GNC","title":"GaPSE.integrand_ξ_GNC_Newtonian_IntegratedGP","text":" integrand_ξ_GNC_Newtonian_IntegratedGP(\n IP::Point, P1::Point, P2::Point,\n y, cosmo::Cosmology; \n obs::Union{Bool,Symbol}=:noobsvel\n ) ::Float64\n\n integrand_ξ_GNC_Newtonian_IntegratedGP(\n χ2::Float64, s1::Float64, s2::Float64,\n y, cosmo::Cosmology;\n kwargs... )::Float64\n\nReturn the integrand of the Two-Point Correlation Function (TPCF) given by the cross correlation between the Newtonian and the Integrated Gravitational Potential (GP) effects arising from the Galaxy Number Counts (GNC).\n\nIn the first method, you should pass the two extreme Points (P1 and P2) and the intermediate integrand Point (IP) where to evaluate the function. In the second method (that internally recalls the first), you must provide the three corresponding comoving distances s1, s2, χ2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this integrand is the following:\n\nbeginsplit\n f^delta intphi(chi_2 s_1 s_2 y ) =\n D_1 \n J^delta intphi_alpha\n left \n J^delta intphi_20 I_0^2 ( Deltachi_2 ) +\n right \n left \n J^delta intphi_beta\n left(\n frac115 I_0^0 ( Deltachi_2 ) + \n frac121 I_2^0 ( Deltachi_2 ) +\n frac135 I_4^0 ( Deltachi_2 )\n right) \n right nonumber\nendsplit\n\nwhere\n\nbeginsplit\n J^delta intphi_alpha =\n fracmathcalH_0^2 Omega_mathrmM0 D(chi_2)3 a(chi_2) s_2 \n left \n s_2 mathcalR_2 mathcalH(chi_2) ( f(chi_2) - 1) - 5 s_mathrmb 2 + 2\n right \n \n \n J^delta intphi_beta =\n f_1 left \n (3 y^2 - 1) chi_2^2 - 4 y s_1 chi_2 + 2 s_1^2\n right \n \n \n J^delta intphi_20 =\n - Deltachi_2^2 ( 3 b_1 + f_1)\n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nb_1 = b(s_1), s_mathrmb 1 = s_mathrmb(s_1), mathitf_mathrmevo, ... : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias (the first two evaluated in s_1); they are all stored in cosmo;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nIn this TPCF there are no observer terms. The obs keyword is inserted only for compatibility with the other GNC TPCFs.\n\nThis function is used inside ξ_GNC_Newtonian_IntegratedGP with trapz from the Trapz Julia package.\n\nInputs\n\nIP::Point, P1::Point, P2::Point or χ2,s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nobs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?\n:yes or true -> all the observer effects will be considered\n:no or false -> no observer term will be taken into account\n:noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_Newtonian_IntegratedGP\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations/#GaPSE.integrand_ξ_GNC_Doppler_IntegratedGP","page":"GNC","title":"GaPSE.integrand_ξ_GNC_Doppler_IntegratedGP","text":" integrand_ξ_GNC_Doppler_IntegratedGP(\n IP::Point, P1::Point, P2::Point,\n y, cosmo::Cosmology; \n obs::Union{Bool,Symbol}=:noobsvel\n ) ::Float64\n\n integrand_ξ_GNC_Doppler_IntegratedGP(\n χ2::Float64, s1::Float64, s2::Float64,\n y, cosmo::Cosmology; \n kwargs...) ::Float64\n\nReturn the integrand of the Two-Point Correlation Function (TPCF) given by the cross correlation between the Doppler and the Integrated Gravitational Potential (GP) effects arising from the Galaxy Number Counts (GNC).\n\nIn the first method, you should pass the two extreme Points (P1 and P2) and the intermediate integrand Point (IP) where to evaluate the function. In the second method (that internally recalls the first), you must provide the three corresponding comoving distances s1, s2, χ2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this integrand is the following:\n\nbeginsplit\n f^v_parallel intphi left(chi_2 s_1 s_2 y right) = \n D_1 \n J^v_parallel intphi_alpha \n left\n frac115 I_0^0 ( Deltachi_2 ) +\n frac221 I_2^0 ( Deltachi_2 ) +\n right \n left\n frac135 I_4^0 ( Deltachi_2 ) +\n I^2_0 ( Deltachi_2) \n right\n + \n J^v_parallel intphi_31 I^3_1 (chi_2) \n nonumber\nendsplit\n\nwhere\n\nbeginsplit\n J^v_parallel intphi_alpha =\n fracf_1 mathcalH_1 mathcalR_1s_2 a(chi_2) \n D(chi_2) mathcalH_0^2 Omega_mathrmM0 Deltachi_2^2 \n (chi_2 y - s_1) \n left\n s_2 mathcalH(chi_2) mathcalR_2 (f(chi_2) - 1) - 5 s_mathrmb 2 + 2\n right\n \n \n J^v_parallel intphi_31 =\n -frac\n 3 chi_2^3 y f_0 mathcalH_0^3 Omega_mathrmM0 D(chi_2)\n \n s_2 a(chi_2)\n (mathcalR_1 - 5 s_mathrmb 1 + 2)\n left\n s_2 mathcalH(chi_2) mathcalR_2 (f(chi_2) - 1) - 5 s_mathrmb 2 + 2)\n right \n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nb_1 = b(s_1), s_mathrmb 1 = s_mathrmb(s_1), mathitf_mathrmevo, ... : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias (the first two evaluated in s_1); they are all stored in cosmo;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nIn this TPCF, the term proportional to D(s_1) is not an observer term. The other one instead is and it does depend on the observer velocity. Consequently, if you set obs = :yes or obs = true both of them will computed, while for obs = :no, obs = false or even obs = :noobsvel only the propto D(s_1) one will be taken into account.\n\nThis function is used inside ξ_GNC_Doppler_IntegratedGP with trapz from the Trapz Julia package.\n\nInputs\n\nIP::Point, P1::Point and P2::Point, or χ2,s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nobs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?\n:yes or true -> all the observer effects will be considered\n:no or false -> no observer term will be taken into account\n:noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_Doppler_IntegratedGP\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations/#GaPSE.integrand_ξ_GNC_Lensing_Doppler","page":"GNC","title":"GaPSE.integrand_ξ_GNC_Lensing_Doppler","text":" integrand_ξ_GNC_Lensing_Doppler(\n IP::Point, P1::Point, P2::Point,\n y, cosmo::Cosmology;\n Δχ_min::Float64=1e-1, \n obs::Union{Bool,Symbol}=:noobsvel\n ) ::Float64\n\n integrand_ξ_GNC_Lensing_Doppler(\n χ1::Float64, s1::Float64, s2::Float64,\n y, cosmo::Cosmology;\n kwargs... )::Float64\n\nReturn the integrand of the Two-Point Correlation Function (TPCF) given by the cross correlation between the Lensing and the Doppler effects arising from the Galaxy Number Counts (GNC).\n\nIn the first method, you should pass the two extreme Points (P1 and P2) and the intermediate integrand Point (IP) where to evaluate the function. In the second method (that internally recalls the first), you must provide the three corresponding comoving distances s1, s2, χ1. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this integrand is the following:\n\nbeginsplit\n f^kappa phi (chi_1 s_1 s_2 y ) = \n D_2 \n J^kappa v_parallel_alpha left\n J^kappa v_parallel_00 I_0^0 ( Delta chi_1 ) +\n J^kappa v_parallel_02 I_2^0 ( Delta chi_1 ) \n right nonumber \n left\n + J^kappa v_parallel_04 I_4^0 ( Delta chi_1 ) \n + J^kappa v_parallel_20 I_0^2 ( Delta chi_1 ) \n right\n +\n J^kappa v_parallel_31 I_1^3 ( chi_1 ) \nendsplit\n\nwhere\n\nbeginsplit\n J^kappa v_parallel_alpha = \n fracmathcalH_0^2 Omega_mathrmM0 D(chi_1)a(chi_1) s_1\n f_2 mathcalH_2 mathcalR_2 (chi_1 - s_1) (5 s_mathrmb 1 - 2)\n \n \n J^kappa v_parallel_00 = \n frac115\n left\n chi_1^2 y + chi_1 s_2 (4 y^2 - 3) - 2 y s_2^2\n right \n \n \n J^kappa v_parallel_02 = \n frac142 Deltachi_1^2 left\n 4 y chi_1^4 + 4 (2 y^2 - 3) s_2 chi_1^3 + \n y (11 - 23 y^2) s_2^2 chi_1^2 +\n right\n leftqquadqquadqquad\n (23 y^2 - 3) s_2^3 chi_1 - 8 y s_2^4\n right nonumber\n \n \n J^kappa v_parallel_04 = \n frac170 Deltachi_1^2 \n left\n 2 y chi_1^4 + 2 (2 y^2 - 3) s_2 chi_1^3 - \n y (y^2 + 5) s_2^2 chi_1^2 + \n (y^2 + 9) s_2^3 chi_1 - 4 y s_2^4\n right \n \n \n J^kappa v_parallel_20 = y Deltachi_1^2 \n \n \n J^kappa v_parallel_31 =\n -frac\n 3 chi_1^2 y f_0 mathcalH_0^3 Omega_mathrmM0 D(chi_1) \n \n a(chi_1)s_1\n (chi_1 - s_1) (5 s_mathrmb 1 - 2) (mathcalR_2 - 5 s_mathrmb 2 + 2) \n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nb_1 = b(s_1), s_mathrmb 1 = s_mathrmb(s_1), mathitf_mathrmevo, ... : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias (the first two evaluated in s_1); they are all stored in cosmo;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nIn this TPCF, the term proportional to D(s_1) is not an observer term. The other one instead is and it does depend on the observer velocity. Consequently, if you set obs = :yes or obs = true both of them will computed, while for obs = :no, obs = false or even obs = :noobsvel only the first one will be taken into account.\n\nThis function is used inside ξ_GNC_Lensing_Doppler with trapz from the Trapz Julia package.\n\nInputs\n\nIP::Point, P1::Point, P2::Point or χ1,s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nobs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?\n:yes or true -> all the observer effects will be considered\n:no or false -> no observer term will be taken into account\n:noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account\nΔχ_min::Float64 = 1e-1 : when Deltachi_1 = sqrtchi_1^2 + s_2^2 - 2 chi_1 s_2 y to 0^+, some I_ell^n term diverges, but the overall parenthesis has a known limit:\n lim_Deltachi_1 to 0^+\n left\n J^kappa v_parallel_00 I_0^0 ( Delta chi_1 ) +\n J^kappa v_parallel_02 I_2^0 ( Delta chi_1 ) +\n J^kappa v_parallel_04 I_4^0 ( Delta chi_1 ) +\n J^kappa v_parallel_20 I_0^2 ( Delta chi_1 ) \n right = sigma_2\nSo, when it happens that Deltachi_1 Deltachi_mathrmmin, the function considers this limit as the result of the parenthesis instead of calculating it in the normal way; it prevents computational divergences.\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_Lensing_Doppler\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations/#GaPSE.integrand_ξ_GNC_Lensing_LocalGP","page":"GNC","title":"GaPSE.integrand_ξ_GNC_Lensing_LocalGP","text":" integrand_ξ_GNC_Lensing_LocalGP(\n IP::Point, P1::Point, P2::Point,\n y, cosmo::Cosmology;\n obs::Union{Bool,Symbol}=:noobsvel\n ) ::Float64\n\n integrand_ξ_GNC_Lensing_LocalGP(\n χ1::Float64, s1::Float64, s2::Float64,\n y, cosmo::Cosmology;\n kwargs... )::Float64\n\nReturn the integrand of the Two-Point Correlation Function (TPCF) given by the cross correlation between the Lensing and the Local Gravitational Potential (GP) effects arising from the Galaxy Number Counts (GNC).\n\nIn the first method, you should pass the two extreme Points (P1 and P2) and the intermediate integrand Point (IP) where to evaluate the function. In the second method (that internally recalls the first), you must provide the three corresponding comoving distances s1, s2, χ1. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this integrand is the following:\n\nbeginsplit\n f^kappa phi (chi_1 s_1 s_2 y ) = \n D_2 \n J^kappa phi_alphaleft \n J^kappa phi_20 I_0^2 ( Delta chi_1 ) +\n rightnonumber \n leftqquad\n J^kappa phi_beta\n left(\n frac160 I_0^0 ( Delta chi_1 ) +\n frac142 I_2^0 ( Delta chi_1 ) +\n frac1140 I_4^0 ( Delta chi_1 ) \n right)\n right \nendsplit\n\nwhere\n\nbeginsplit\n J^kappa phi_alpha = \n fracmathcalH_0^2 Omega_mathrmM0 s_2 D(chi_1)a(chi_1) a_2 s_1\n (chi_1 - s_1) (5s_mathrmb 1 - 2) \n times\n qquadqquad\n left\n 2 f_2 a_2 mathcalH_2^2 (mathitf_mathrmevo 2 - 3) + \n 3 mathcalH_0^2 Omega_mathrmM0 (f_2 + mathcalR_2 + 5s_mathrmb 2 - 2)\n right nonumber\n \n \n J^kappa phi_beta =\n 2 y chi_1^2 - chi_1 s_2 (y^2 + 3) + 2 y s_2^2\n \n \n J^kappa phi_20 = frac12 y Deltachi_1^2 \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nb_1 = b(s_1), s_mathrmb 1 = s_mathrmb(s_1), mathitf_mathrmevo, ... : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias (the first two evaluated in s_1); they are all stored in cosmo;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nIn this TPCF there are no observer terms. The obs keyword is inserted only for compatibility with the other GNC TPCFs.\n\nThis function is used inside ξ_GNC_Lensing_LocalGP with trapz from the Trapz Julia package.\n\nInputs\n\nIP::Point, P1::Point, P2::Point or χ1,s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nobs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?\n:yes or true -> all the observer effects will be considered\n:no or false -> no observer term will be taken into account\n:noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_Lensing_LocalGP\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations/#GaPSE.integrand_ξ_GNC_Lensing_IntegratedGP","page":"GNC","title":"GaPSE.integrand_ξ_GNC_Lensing_IntegratedGP","text":" integrand_ξ_GNC_Lensing_IntegratedGP(\n IP1::Point, IP2::Point,\n P1::Point, P2::Point,\n y, cosmo::Cosmology; \n obs::Union{Bool,Symbol}=:noobsvel\n ) ::Float64\n\n integrand_ξ_GNC_Lensing_IntegratedGP(\n χ1::Float64, χ2::Float64,\n s1::Float64, s2::Float64,\n y, cosmo::Cosmology;\n kwargs...) ::Float64\n\nReturn the integrand of the Two-Point Correlation Function (TPCF) given by the cross correlation between the Lensing and the Integrated Gravitational Potential (GP) effects arising from the Galaxy Number Counts (GNC).\n\nIn the first method, you should pass the two extreme Points (P1 and P2) and the two intermediate integrand Points (IP1 and IP2) where to evaluate the function. In the second method (that internally recalls the first), you must provide the four corresponding comoving distances s1, s2, χ1, χ2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this integrand is the following:\n\nbeginsplit\n f^kappa intphi (chi_1 chi_2 s_1 s_2 y ) = \n J_alpha^kappa intphi \n left \n J_31^kappa intphi I_1^3 ( Delta chi ) +\n J_22^kappa intphi I_2^2 ( Delta chi ) \n right \nendsplit\n\nwhere\n\nbeginsplit\n J_alpha^kappa intphi =\n frac\n 9 chi_2 mathcalH_0^4 Omega_mathrmM0^2 D(chi_1) D(chi_2) \n \n a(chi_1) a(chi_2) s_1 s_2\n \n (chi_1 - s_1) (5 s_mathrmb 1 - 2) times\n qquadqquadqquadqquadqquadqquad\n left\n mathcalH(chi_2) mathcalR_2 s_1 (f(chi_2) - 1) - 5 s_mathrmb 1 + 2\n right nonumber\n \n \n J_31^kappa intphi = y Deltachi^2\n \n \n J_22^kappa intphi = \n frac12 (y^2 - 1) chi_1 chi_2 \n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nb_1 = b(s_1), s_mathrmb 1 = s_mathrmb(s_1), mathitf_mathrmevo, ... : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias (the first two evaluated in s_1); they are all stored in cosmo;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nIn this TPCF there are no observer terms. The obs keyword is inserted only for compatibility with the other GNC TPCFs.\n\nThis function is used inside ξ_GNC_Lensing_IntegratedGP with trapz from the Trapz Julia package.\n\nInputs\n\nIP1::Point, IP2::Point, P1::Point, P2::Point or χ1, χ2, s1, s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nobs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?\n:yes or true -> all the observer effects will be considered\n:no or false -> no observer term will be taken into account\n:noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning IntegratedGP) will be neglected, the other ones will be taken into account\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_Lensing_IntegratedGP\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations/#GaPSE.integrand_ξ_GNC_LocalGP_IntegratedGP","page":"GNC","title":"GaPSE.integrand_ξ_GNC_LocalGP_IntegratedGP","text":" integrand_ξ_GNC_LocalGP_IntegratedGP(\n IP::Point, P1::Point, P2::Point,\n y, cosmo::Cosmology; \n obs::Union{Bool,Symbol}=:noobsvel\n ) ::Float64\n\n integrand_ξ_GNC_LocalGP_IntegratedGP(\n χ2::Float64, s1::Float64, s2::Float64,\n y, cosmo::Cosmology;\n kwargs... )::Float64\n\nReturn the integrand of the Two-Point Correlation Function (TPCF) given by the cross correlation between the Local Gravitational Potential (GP) and the Integrated Gravitational Potential (GP) effects arising from the Galaxy Number Counts (GNC).\n\nIn the first method, you should pass the two extreme Points (P1 and P2) and the intermediate integrand Point (IP) where to evaluate the function. In the second method (that internally recalls the first), you must provide the three corresponding comoving distances s1, s2, χ2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this integrand is the following:\n\nbeginsplit\n f^phi intphi (chi_2 s_1 s_2 y ) = \n D_1 J^phi intphi_40 tildeI_0^4 ( Deltachi_2 ) + \n J^phi_0 intphi_04 tildeI_0^4 ( chi_2 ) \nendsplit\n\nwhere\n\nbeginsplit\n J^phi intphi_40 =\n frac\n 3 Deltachi_2^4 mathcalH_0^2 Omega_mathrmM0 D(chi_2) \n \n 2 s_2 a(chi_2) a_1\n left\n s_2 mathcalH(chi_2) mathcalR_2(f(chi_2)-1) -5 s_mathrmb 2+2\n right \n times\n qquadqquadqquad\n left\n 2 a_1 f_1 mathcalH_1^2 (mathitf_mathrmevo 1 - 3) +\n 3 mathcalH_0^2 Omega_mathrmM0 (f_1 + mathcalR_1 + 5 s_mathrmb 1 - 2)\n right\n nonumber \n \n J^phi_0 intphi_40 =\n frac\n 3 chi_2^4 mathcalH_0^3 Omega_mathrmM0 D(chi_2)\n \n 2 s_1 s_2 a(chi_2)\n left\n s_2 mathcalH(chi_2) mathcalR_2 (f(chi_2) - 1) - 5 s_mathrmb 2 + 2\n righttimes\n nonumber \n qquadqquadqquad\n left\n - 3 Omega_mathrmM0 mathcalH_0 s_1 mathcalR_1 +\n 2 f_0 (mathcalH_0 s_1 mathcalR_1 + 5 s_mathrmb 1 - 2)\n right \n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nb_1 = b(s_1), s_mathrmb 1 = s_mathrmb(s_1), mathitf_mathrmevo, ... : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias (the first two evaluated in s_1); they are all stored in cosmo;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nIn this TPCF, the term proportional to D(s_1) is not an observer term. The other one instead is, and it does also depend on the observer velocity. Consequently, if you set obs = :yes or obs = true both of them will computed, while for obs = :no, obs = false or even obs = :noobsvel only the first one will be taken into account.\n\nThis function is used inside ξ_GNC_LocalGP_IntegratedGP with trapz from the Trapz Julia package.\n\nInputs\n\nIP::Point, P1::Point, P2::Point or χ2,s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nobs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?\n:yes or true -> all the observer effects will be considered\n:no or false -> no observer term will be taken into account\n:noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_LocalGP_IntegratedGP\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations/#Two-Point-Cross-Correlation-Function-multipoles","page":"GNC","title":"Two-Point Cross-Correlation Function multipoles","text":"","category":"section"},{"location":"GNC_Correlations/","page":"GNC","title":"GNC","text":"GaPSE.integrand_ξ_GNC_multipole\nGaPSE.ξ_GNC_multipole\nGaPSE.map_ξ_GNC_multipole\nGaPSE.print_map_ξ_GNC_multipole","category":"page"},{"location":"GNC_Correlations/#GaPSE.integrand_ξ_GNC_multipole","page":"GNC","title":"GaPSE.integrand_ξ_GNC_multipole","text":" integrand_ξ_GNC_multipole(s1, s, μ, effect::Function, cosmo::Cosmology;\n L::Int = 0, use_windows::Bool = true, kwargs...)\n\n integrand_ξ_GNC_multipole(s1, s, μ, effect::String, cosmo::Cosmology; kwargs...)\n\nReturn the integrand on mu = hatmathbfs_1 cdot hatmathbfs of the of the chosen Galaxy Number Counts (GNC) Two-Point Correlation Function (TPCF) term, i.e. the following function f(s_1 s mu):\n\n f_L(s_1 s mu) = xi left(s_1 s_2 yright) \n mathcalL_L(mu) times \n begincases \n frac1mathcalNmathcalF(s mu) quad mathrmuse_windows == true \n 1 quadquad mathrmuse_windows == false\n endcases\n\nwhere:\n\ns_2 = s_2(s_1 s mu) = sqrts_1^2 + s^2 + 2 s_1 s mu \ny = costheta = hatmathbfs_1 cdot hatmathbfs_2 = fracmu s + s_1s_2(s_1 s mu)\nxi is the corresponding GNC TPCF effect\nmathcalL_L(mu) is the Legendre polynomial of order L\nmathcalF(s mu) is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)\nmathcalN is the integrated window function norm (check the documentation of WindowFIntegrated)\n\nIn the former method you have to pass as an input the GNC effect function you want to integrate, while in the (recommended) latter one it's necessary to specify the name of the GNC TPCF term among the following:\n\nauto_newton , auto_doppler , auto_lensing , auto_localgp , auto_integratedgp , newton_doppler , doppler_newton , newton_lensing , lensing_newton , newton_localgp , localgp_newton , newton_integratedgp , integratedgp_newton , lensing_doppler , doppler_lensing , doppler_localgp , localgp_doppler , doppler_integratedgp , integratedgp_doppler , lensing_localgp , localgp_lensing , lensing_integratedgp , integratedgp_lensing , localgp_integratedgp , integratedgp_localgp ,\n\nto which correspond the following functions, respectively:\n\nξ_GNC_Newtonian , ξ_GNC_Doppler , ξ_GNC_Lensing , ξ_GNC_LocalGP , ξ_GNC_IntegratedGP , ξ_GNC_Newtonian_Doppler , ξ_GNC_Doppler_Newtonian , ξ_GNC_Newtonian_Lensing , ξ_GNC_Lensing_Newtonian , ξ_GNC_Newtonian_LocalGP , ξ_GNC_LocalGP_Newtonian , ξ_GNC_Newtonian_IntegratedGP , ξ_GNC_IntegratedGP_Newtonian , ξ_GNC_Lensing_Doppler , ξ_GNC_Doppler_Lensing , ξ_GNC_Doppler_LocalGP , ξ_GNC_LocalGP_Doppler , ξ_GNC_Doppler_IntegratedGP , ξ_GNC_IntegratedGP_Doppler , ξ_GNC_Lensing_LocalGP , ξ_GNC_LocalGP_Lensing , ξ_GNC_Lensing_IntegratedGP , ξ_GNC_IntegratedGP_Lensing , ξ_GNC_LocalGP_IntegratedGP , ξ_GNC_IntegratedGP_LocalGP ,\n\nInternally, the second method recall the first, so all the keyword arguments are in common.\n\nNote that these is an internal conversion of coordiate sistems from (s1, s, μ) to (s1, s2, y) thorugh the functions y and s2. The inverse relations are:\n\ns = s(s_1 s_2 y) = sqrts_1^2 + s_2^2 - 2 s_1 s_2 y\nmu = costheta = hatmathbfs_1 cdot hatmathbfs = fracy s_2 - s_1s(s_1 s_2 y).\n\nInputs\n\ns1: the comoving distance where must be evaluated the integral\ns: the comoving distance from s1 where must be evaluated the integral\nμ: the cosine between s1 and s where must be evaluated the integral\neffect::Function or effect::String : name/function you want to consider, among the ones inside GaPSE.GR_EFFECTS_GNC/GaPSE.VEC_ξs_GNC respectively.\ncosmo::Cosmology: cosmology to be used in this computation\n\nOptional arguments\n\nL::Int = 0: order of the Legendre polynomial to be used\nuse_windows::Bool = false: tells if the integrand must consider the two window function phi and mathcalF\nkwargs... : other keyword arguments that will be passed to the selected GR TPCF effect (ξ_GNC_Doppler, ξ_GNC_Lensing, ...)\n\nSee also: ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, WindowFIntegrated, ϕ, Cosmology, y, s2, GR_EFFECTS_GNC, GaPSE.VEC_ξs_GNC\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations/#GaPSE.ξ_GNC_multipole","page":"GNC","title":"GaPSE.ξ_GNC_multipole","text":" ξ_GNC_multipole(\n s1, s, effect::Function, cosmo::Cosmology;\n L::Int = 0, alg::Symbol = :lobatto, \n use_windows::Bool = true, \n obs::Union{Bool,Symbol} = :noobsvel,\n N_lob::Int = 100, N_trap::Int = 200, \n atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,\n enhancer::Float64 = 1e6, \n kwargs...) ::Float64\n\n ξ_GNC_multipole(s1, s, effect::String, cosmo::Cosmology; \n kwargs...) ::Float64\n\nEvaluate the multipole of order L of the chosen Galaxy Number Counts (GNC) Two-Point Correlation Function (TPCF) term i.e. the following function xi_L(s_1 s):\n\n xi_L(s_1 s) = frac2 L + 12 int_-1^+1 mathrmdmu \n xi (s_1 s_2 costheta) mathcalL_L(mu) times\n begincases \n frac1mathcalNmathcalF(s mu) quad mathrmuse_windows == true \n 1 quadquad mathrmuse_windows == false\n endcases\n\nwhere:\n\ns_2 = s_2(s_1 s mu) = sqrts_1^2 + s^2 + 2 s_1 s mu \ny = costheta = hatmathbfs_1 cdot hatmathbfs_2 = fracmu s + s_1s_2(s_1 s mu)\nxi is the corresponding GNC TPCF effect\nmathcalL_L(mu) is the Legendre polynomial of order L\nmathcalF(s mu) is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)\nmathcalN is the integrated window function norm (check the documentation of WindowFIntegrated) \n\nIn the former method you have to pass as an input the GNC effect function you want to integrate, while in the (recommended) latter one it's necessary to specify the name of the GNC TPCF term among the following:\n\nauto_newton , auto_doppler , auto_lensing , auto_localgp , auto_integratedgp , newton_doppler , doppler_newton , newton_lensing , lensing_newton , newton_localgp , localgp_newton , newton_integratedgp , integratedgp_newton , lensing_doppler , doppler_lensing , doppler_localgp , localgp_doppler , doppler_integratedgp , integratedgp_doppler , lensing_localgp , localgp_lensing , lensing_integratedgp , integratedgp_lensing , localgp_integratedgp , integratedgp_localgp ,\n\nto which correspond the following functions:\n\nξ_GNC_Newtonian , ξ_GNC_Doppler , ξ_GNC_Lensing , ξ_GNC_LocalGP , ξ_GNC_IntegratedGP , ξ_GNC_Newtonian_Doppler , ξ_GNC_Doppler_Newtonian , ξ_GNC_Newtonian_Lensing , ξ_GNC_Lensing_Newtonian , ξ_GNC_Newtonian_LocalGP , ξ_GNC_LocalGP_Newtonian , ξ_GNC_Newtonian_IntegratedGP , ξ_GNC_IntegratedGP_Newtonian , ξ_GNC_Lensing_Doppler , ξ_GNC_Doppler_Lensing , ξ_GNC_Doppler_LocalGP , ξ_GNC_LocalGP_Doppler , ξ_GNC_Doppler_IntegratedGP , ξ_GNC_IntegratedGP_Doppler , ξ_GNC_Lensing_LocalGP , ξ_GNC_LocalGP_Lensing , ξ_GNC_Lensing_IntegratedGP , ξ_GNC_IntegratedGP_Lensing , ξ_GNC_LocalGP_IntegratedGP , ξ_GNC_IntegratedGP_LocalGP ,\n\nInternally, the second method recall the first, so all the keyword arguments are in common.\n\nNote that these is an internal conversion of coordiate sistems from (s1, s, μ) to (s1, s2, y) thorugh the functions y and s2. The inverse relations are:\n\ns = s(s_1 s_2 y) = sqrts_1^2 + s_2^2 - 2 s_1 s_2 y\nmu = costheta = hatmathbfs_1 cdot hatmathbfs = fracy s_2 - s_1s(s_1 s_2 y).\n\nInputs\n\ns1: the comoving distance where must be evaluated the integral\ns: the comoving distance from s1 where must be evaluated the integral\neffect::Function or effect::String : name/function you want to consider, among the ones inside GaPSE.GR_EFFECTS_GNC/GaPSE.VEC_ξs_GNC respectively.\ncosmo::Cosmology: cosmology to be used in this computation\n\nOptional arguments\n\nL::Int = 0: order of the Legendre polynomial to be used\nalg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):\n:quad -> the integration over mu will be preformed through the Julia function quadgk \nfrom the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n:trap -> the integration over mu will be preformed through the Julia function trapz \nfrom the Trapz.jl Julia package, that uses the simple trapezoidal rulae.\n:lobatto -> the integration over mu will be preformed through the Julia function gausslobatto \nfrom the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!\nuse_windows::Bool = false: tells if the integrand must consider the two window function phi and mathcalF\nobs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?\n:yes or true -> all the observer effects will be considered\n:no or false -> no observer term will be taken into account\n:noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account\nN_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\nN_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\nkwargs... : other keyword arguments that will be passed to the selected GNC TPCF effect (ξ_GNC_Doppler, ξ_GNC_Lensing, ...)\n\nSee also: integrand_ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole WindowFIntegrated, Cosmology, y, s2, GR_EFFECTS_GNC, VEC_ξs_GNC\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations/#GaPSE.map_ξ_GNC_multipole","page":"GNC","title":"GaPSE.map_ξ_GNC_multipole","text":" map_ξ_GNC_multipole(cosmo::Cosmology,\n effect::Union{String,Function}, ss = nothing;\n s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,\n obs::Union{Bool,Symbol} = :noobsvel,\n N_lob::Int = 100, N_trap::Int = 50,\n atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,\n enhancer::Float64=1e6, N_log::Int = 1000, \n pr::Bool = true,\n kwargs...) ::Tuple{Vector{Float64}, Vector{Float64}}\n\nEvaluate the multipole of order L of the chosen Galaxy Number Counts (GNC) Two-Point Correlation Function (TPCF) term for all the comoving distance values stored inside ss. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). If s1 = nothing, it is set s1 = cosmo.s_eff.\n\nThe function evaluated is then the following xi_L(s_1 s):\n\n xi_L(s_1 s) = frac2 L + 12 int_-1^+1 mathrmdmu \n xi (s_1 s_2 costheta) mathcalL_L(mu) times\n begincases \n frac1mathcalNmathcalF(s mu) quad mathrmuse_windows == true \n 1 quadquad mathrmuse_windows == false\n endcases\n\nwhere:\n\ns_2 = s_2(s_1 s mu) = sqrts_1^2 + s^2 + 2 s_1 s mu \ny = costheta = hatmathbfs_1 cdot hatmathbfs_2 = fracmu s + s_1s_2(s_1 s mu)\nxi is the corresponding GNC TPCF effect\nmathcalL_L(mu) is the Legendre polynomial of order L\nmathcalF(s mu) is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)\nmathcalN is the integrated window function norm (check the documentation of WindowFIntegrated) \n\nNote that these is an internal conversion of coordiate sistems from (s1, s, μ) to (s1, s2, y) thorugh the functions y and s2. The inverse relations are:\n\ns = s(s_1 s_2 y) = sqrts_1^2 + s_2^2 - 2 s_1 s_2 y\nmu = costheta = hatmathbfs_1 cdot hatmathbfs = fracy s_2 - s_1s(s_1 s_2 y).\n\nInputs\n\ncosmo::Cosmology : cosmology to be used in this computation\neffect::Union{String,Function} : the GR effect TPCF you want to consider; you may specify the name of the effect as one of the following strings (recommended):\nauto_newton , auto_doppler , auto_lensing , auto_localgp , auto_integratedgp , newton_doppler , doppler_newton , newton_lensing , lensing_newton , newton_localgp , localgp_newton , newton_integratedgp , integratedgp_newton , lensing_doppler , doppler_lensing , doppler_localgp , localgp_doppler , doppler_integratedgp , integratedgp_doppler , lensing_localgp , localgp_lensing , lensing_integratedgp , integratedgp_lensing , localgp_integratedgp , integratedgp_localgp ,\nor directly the name of the function among the following: \nξ_GNC_Newtonian , ξ_GNC_Doppler , ξ_GNC_Lensing , ξ_GNC_LocalGP , ξ_GNC_IntegratedGP , ξ_GNC_Newtonian_Doppler , ξ_GNC_Doppler_Newtonian , ξ_GNC_Newtonian_Lensing , ξ_GNC_Lensing_Newtonian , ξ_GNC_Newtonian_LocalGP , ξ_GNC_LocalGP_Newtonian , ξ_GNC_Newtonian_IntegratedGP , ξ_GNC_IntegratedGP_Newtonian , ξ_GNC_Lensing_Doppler , ξ_GNC_Doppler_Lensing , ξ_GNC_Doppler_LocalGP , ξ_GNC_LocalGP_Doppler , ξ_GNC_Doppler_IntegratedGP , ξ_GNC_IntegratedGP_Doppler , ξ_GNC_Lensing_LocalGP , ξ_GNC_LocalGP_Lensing , ξ_GNC_Lensing_IntegratedGP , ξ_GNC_IntegratedGP_Lensing , ξ_GNC_LocalGP_IntegratedGP , ξ_GNC_IntegratedGP_LocalGP ,\nss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). This is why it is returned also the vector of the \"input\" values.\n\nOptional arguments\n\ns1 = nothing : comoving distance from the observer where the TPCF should be evaluated; if s1 = nothing, it is automatically set s1 = cosmo.s_eff from the given input cosmo::Cosmology.\nL::Int = 0: order of the Legendre polynomial to be used\nalg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):\n:quad -> the integration over mu will be preformed through the Julia function quadgk \nfrom the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n:trap -> the integration over mu will be preformed through the Julia function trapz \nfrom the Trapz.jl Julia package, that uses the simple trapezoidal rulae.\n:lobatto -> the integration over mu will be preformed through the Julia function gausslobatto \nfrom the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!\nuse_windows::Bool = false: tells if the integrand must consider the two window function phi and mathcalF\nobs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?\n:yes or true -> all the observer effects will be considered\n:no or false -> no observer term will be taken into account\n:noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account\nN_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\nN_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\nN_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing \npr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)\nkwargs... : other keyword arguments that will be passed to the selected GNC TPCF effect (ξ_GNC_Doppler, ξ_GNC_Lensing, ...)\n\nReturns\n\nA Tuple{Vector{Float64}, Vector{Float64}}, which has as first element the ss vector and as second one the corresponding ξ value evaluated.\n\nSee also: integrand_ξ_GNC_multipole, ξ_GNC_multipole, print_map_ξ_GNC_multipole, WindowFIntegrated, Cosmology, y, s2, GR_EFFECTS_GNC, GaPSE.VEC_ξs_GNC\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations/#GaPSE.print_map_ξ_GNC_multipole","page":"GNC","title":"GaPSE.print_map_ξ_GNC_multipole","text":" print_map_ξ_GNC_multipole(\n cosmo::Cosmology, out::String,\n effect::Union{String,Function},\n ss = nothing;\n s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,\n obs::Union{Bool,Symbol} = :noobsvel,\n N_lob::Int = 100, N_trap::Int = 50,\n atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,\n enhancer::Float64=1e6, N_log::Int = 1000, \n pr::Bool = true,\n kwargs...)\n\nEvaluate the multipole of order L of the chosen Galaxy Number Counts (GNC) Two-Point Correlation Function (TPCF) term for all the comoving distance values stored inside ss, and print the results (with all the options used) in a file named out. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). If s1 = nothing, it is set s1 = cosmo.s_eff.\n\nThe function evaluated is then the following xi_L(s_1 s):\n\n xi_L(s_1 s) = frac2 L + 12 int_-1^+1 mathrmdmu \n xi (s_1 s_2 costheta) mathcalL_L(mu) times\n begincases \n frac1mathcalNmathcalF(s mu) quad mathrmuse_windows == true \n 1 quadquad mathrmuse_windows == false\n endcases\n\nwhere:\n\ns_2 = s_2(s_1 s mu) = sqrts_1^2 + s^2 + 2 s_1 s mu \ny = costheta = hatmathbfs_1 cdot hatmathbfs_2 = fracmu s + s_1s_2(s_1 s mu)\nxi is the corresponding GNC TPCF effect\nmathcalL_L(mu) is the Legendre polynomial of order L\nmathcalF(s mu) is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)\nmathcalN is the integrated window function norm (check the documentation of WindowFIntegrated) \n\nNote that these is an internal conversion of coordiate sistems from (s1, s, μ) to (s1, s2, y) thorugh the functions y and s2. The inverse relations are:\n\ns = s(s_1 s_2 y) = sqrts_1^2 + s_2^2 - 2 s_1 s_2 y\nmu = costheta = hatmathbfs_1 cdot hatmathbfs = fracy s_2 - s_1s(s_1 s_2 y).\n\nInputs\n\ncosmo::Cosmology : cosmology to be used in this computation\neffect::Union{String,Function} : the GR effect TPCF you want to consider; you may specify the name of the effect as one of the following strings (recommended):\nauto_newton , auto_doppler , auto_lensing , auto_localgp , auto_integratedgp , newton_doppler , doppler_newton , newton_lensing , lensing_newton , newton_localgp , localgp_newton , newton_integratedgp , integratedgp_newton , lensing_doppler , doppler_lensing , doppler_localgp , localgp_doppler , doppler_integratedgp , integratedgp_doppler , lensing_localgp , localgp_lensing , lensing_integratedgp , integratedgp_lensing , localgp_integratedgp , integratedgp_localgp ,\nor directly the name of the function among the following: \nξ_GNC_Newtonian , ξ_GNC_Doppler , ξ_GNC_Lensing , ξ_GNC_LocalGP , ξ_GNC_IntegratedGP , ξ_GNC_Newtonian_Doppler , ξ_GNC_Doppler_Newtonian , ξ_GNC_Newtonian_Lensing , ξ_GNC_Lensing_Newtonian , ξ_GNC_Newtonian_LocalGP , ξ_GNC_LocalGP_Newtonian , ξ_GNC_Newtonian_IntegratedGP , ξ_GNC_IntegratedGP_Newtonian , ξ_GNC_Lensing_Doppler , ξ_GNC_Doppler_Lensing , ξ_GNC_Doppler_LocalGP , ξ_GNC_LocalGP_Doppler , ξ_GNC_Doppler_IntegratedGP , ξ_GNC_IntegratedGP_Doppler , ξ_GNC_Lensing_LocalGP , ξ_GNC_LocalGP_Lensing , ξ_GNC_Lensing_IntegratedGP , ξ_GNC_IntegratedGP_Lensing , ξ_GNC_LocalGP_IntegratedGP , ξ_GNC_IntegratedGP_LocalGP ,\nout::String : name of the file where the results must be stored.\nss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log).\n\nOptional arguments\n\nThis function recall internally map_ξ_GNC_multipole, so the kwargs are the same; we report them for comfortness:\n\ns1 = nothing : comoving distance from the observer where the TPCF should be evaluated; if s1 = nothing, it is automatically set s1 = cosmo.s_eff from the given input cosmo::Cosmology.\nL::Int = 0: order of the Legendre polynomial to be used\nalg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):\n:quad -> the integration over mu will be preformed through the Julia function quadgk \nfrom the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n:trap -> the integration over mu will be preformed through the Julia function trapz \nfrom the Trapz.jl Julia package, that uses the simple trapezoidal rulae.\n:lobatto -> the integration over mu will be preformed through the Julia function gausslobatto \nfrom the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!\nuse_windows::Bool = false: tells if the integrand must consider the two window function phi and mathcalF\nobs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?\n:yes or true -> all the observer effects will be considered\n:no or false -> no observer term will be taken into account\n:noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account\nN_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\nN_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\nN_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing \npr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)\nkwargs... : other keyword arguments that will be passed to the selected GNC TPCF effect (ξ_GNC_Doppler, ξ_GNC_Lensing, ...)\n\nSee also: integrand_ξ_GNC_multipole, ξ_GNC_multipole, print_map_ξ_GNC_multipole, WindowFIntegrated, Cosmology, y, s2, GR_EFFECTS_GNC, GaPSE.VEC_ξs_GNC\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations/#Two-Point-Cross-Correlation-Function-Sum-multipoles","page":"GNC","title":"Two-Point Cross-Correlation Function Sum multipoles","text":"","category":"section"},{"location":"GNC_Correlations/","page":"GNC","title":"GNC","text":"GaPSE.sum_ξ_GNC_multipole\nGaPSE.map_sum_ξ_GNC_multipole\nGaPSE.print_map_sum_ξ_GNC_multipole","category":"page"},{"location":"GNC_Correlations/#GaPSE.sum_ξ_GNC_multipole","page":"GNC","title":"GaPSE.sum_ξ_GNC_multipole","text":" sum_ξ_GNC_multipole(s1, s, cosmo::Cosmology;\n s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,\n obs::Union{Bool,Symbol} = :noobsvel,\n N_lob::Int = 100, N_trap::Int = 50,\n atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,\n enhancer::Float64=1e6, N_log::Int = 1000, \n pr::Bool = true,\n kwargs...) ::Tuple{Float64, Vector{Float64}}\n\nEvaluate the multipole of order L of all the Galaxy Number Counts (GNC) Two-Point Correlation Function (TPCF) multipoles and their sum in the comoving distance s1 and a comoving distance s from it for the input cosmo::Cosmology. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThis function makes a for-loop on the GaPSE.GR_EFFECTS_GNC strings, calling ξ_GNC_multipole for each of them. To each string corresponds pretty intuitively one of the 25 GNC effects. They are currently, in order:\n\nauto_newton , auto_doppler , auto_lensing , auto_localgp , auto_integratedgp , newton_doppler , doppler_newton , newton_lensing , lensing_newton , newton_localgp , localgp_newton , newton_integratedgp , integratedgp_newton , lensing_doppler , doppler_lensing , doppler_localgp , localgp_doppler , doppler_integratedgp , integratedgp_doppler , lensing_localgp , localgp_lensing , lensing_integratedgp , integratedgp_lensing , localgp_integratedgp , integratedgp_localgp ,\n\nInputs\n\ns1: the comoving distance where must be evaluated the integral\ns: the comoving distance from s1 where must be evaluated the integral\ncosmo::Cosmology: cosmology to be used in this computation\n\nOptional arguments\n\nThis function recall internally ξ_GNC_multipole, so the kwargs are the same; we report them for comfortness:\n\nL::Int = 0: order of the Legendre polynomial to be used\nalg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):\n:quad -> the integration over mu will be preformed through the Julia function quadgk \nfrom the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n:trap -> the integration over mu will be preformed through the Julia function trapz \nfrom the Trapz.jl Julia package, that uses the simple trapezoidal rulae.\n:lobatto -> the integration over mu will be preformed through the Julia function gausslobatto \nfrom the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!\nuse_windows::Bool = false: tells if the integrand must consider the two window function phi and mathcalF\nobs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?\n:yes or true -> all the observer effects will be considered\n:no or false -> no observer term will be taken into account\n:noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account\nN_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\nN_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\nkwargs... : other keyword arguments that will be passed to ALL the GNC TPCF effect (ξ_GNC_Doppler, ξ_GNC_Lensing, ...); if one of them has that keyword argument, it will use the given value, otherwise it will be unaffected.\n\nReturns\n\nA tuple containing:\n\nthe sum of all the ξ multipoles as first element\na Vector{Float64} with all the values of each ξ; they are ordered following GR_EFFECTS_GNC\n\nSee also: integrand_ξ_GNC_multipole, ξ_GNC_multipole, map_sum_ξ_GNC_multipole, print_map_sum_ξ_GNC_multipole, Cosmology, GR_EFFECTS_GNC\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations/#GaPSE.map_sum_ξ_GNC_multipole","page":"GNC","title":"GaPSE.map_sum_ξ_GNC_multipole","text":" map_sum_ξ_GNC_multipole(\n effect::Union{String,Function}, ss = nothing;\n s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,\n obs::Union{Bool,Symbol} = :noobsvel,\n N_lob::Int = 100, N_trap::Int = 50,\n atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,\n enhancer::Float64=1e6, N_log::Int = 1000, \n pr::Bool = true,\n kwargs...) ::Tuple{Vector{Float64}, Vector{Float64}, Vector{Vector{Float64}}}\n\nEvaluate the multipole of order L of all the Galaxy Number Counts (GNC) Two-Point Correlation Function (TPCF) multipoles and their sum in the comoving distance s1, for all the comoving distances stored inside ss (representing the comoving distance from s1) for the input cosmo::Cosmology. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). If s1 = nothing, it is set s1 = cosmo.s_eff. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThis function makes a for-loop on the GaPSE.GR_EFFECTS_GNC strings, calling map_ξ_GNC_multipole for each of them. To each string corresponds pretty intuitively one of the 25 GNC effects. They are currently, in order:\n\nauto_newton , auto_doppler , auto_lensing , auto_localgp , auto_integratedgp , newton_doppler , doppler_newton , newton_lensing , lensing_newton , newton_localgp , localgp_newton , newton_integratedgp , integratedgp_newton , lensing_doppler , doppler_lensing , doppler_localgp , localgp_doppler , doppler_integratedgp , integratedgp_doppler , lensing_localgp , localgp_lensing , lensing_integratedgp , integratedgp_lensing , localgp_integratedgp , integratedgp_localgp ,\n\nInputs\n\ncosmo::Cosmology : cosmology to be used in this computation\nss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). This is why it is returned also the vector of the \"input\" values.\n\nOptional arguments\n\nThis function recall internally map_ξ_GNC_multipole, so the kwargs are the same; we report them for comfortness:\n\ns1 = nothing : comoving distance from the observer where the TPCF should be evaluated; if s1 = nothing, it is automatically set s1 = cosmo.s_eff from the given input cosmo::Cosmology.\nL::Int = 0: order of the Legendre polynomial to be used\nalg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):\n:quad -> the integration over mu will be preformed through the Julia function quadgk \nfrom the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n:trap -> the integration over mu will be preformed through the Julia function trapz \nfrom the Trapz.jl Julia package, that uses the simple trapezoidal rulae.\n:lobatto -> the integration over mu will be preformed through the Julia function gausslobatto \nfrom the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!\nuse_windows::Bool = false: tells if the integrand must consider the two window function phi and mathcalF\nobs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?\n:yes or true -> all the observer effects will be considered\n:no or false -> no observer term will be taken into account\n:noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account\nN_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\nN_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\nN_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing \npr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)\nkwargs... : other keyword arguments that will be passed to ALL the GNC TPCF effect (ξ_GNC_Doppler, ξ_GNC_Lensing, ...); if one of them has that keyword argument, it will use the given value, otherwise it will be unaffected.\n\nReturns\n\nA tuple containing:\n\nas first element, the vector ss itself;\nas second one, the Vector{Float64} of the sum of all the ξ multipoles;\nas third one, a Vector{Vector{Float64}} with all the values of each ξ; they are ordered following GR_EFFECTS_GNC\n\nSee also: map_ξ_GNC_multipole, sum_ξ_GNC_multipole, print_map_sum_ξ_GNC_multipole, Cosmology, GR_EFFECTS_GNC\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations/#GaPSE.print_map_sum_ξ_GNC_multipole","page":"GNC","title":"GaPSE.print_map_sum_ξ_GNC_multipole","text":" print_map_sum_ξ_GNC_multipole(\n cosmo::Cosmology, out::String, ss = nothing;\n s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,\n obs::Union{Bool,Symbol} = :noobsvel,\n N_lob::Int = 100, N_trap::Int = 50,\n atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,\n enhancer::Float64=1e6, N_log::Int = 1000, \n pr::Bool = true,\n single::Bool = true,\n kwargs...)\n\nEvaluate the multipole of order L of all the Galaxy Number Counts (GNC) Two-Point Correlation Function (TPCF) multipoles and their sum in the comoving distance s1, for all the comoving distances stored inside ss (representing the comoving distance from s1) for the input cosmo::Cosmology; finally, it saves the results inside the file out. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). If s1 = nothing, it is set s1 = cosmo.s_eff. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThis function makes a for-loop on the GaPSE.GR_EFFECTS_GNC strings, calling map_ξ_GNC_multipole for each of them. To each string corresponds pretty intuitively one of the 25 GNC effects. They are currently, in order:\n\nauto_newton , auto_doppler , auto_lensing , auto_localgp , auto_integratedgp , newton_doppler , doppler_newton , newton_lensing , lensing_newton , newton_localgp , localgp_newton , newton_integratedgp , integratedgp_newton , lensing_doppler , doppler_lensing , doppler_localgp , localgp_doppler , doppler_integratedgp , integratedgp_doppler , lensing_localgp , localgp_lensing , lensing_integratedgp , integratedgp_lensing , localgp_integratedgp , integratedgp_localgp ,\n\nInputs\n\ncosmo::Cosmology : cosmology to be used in this computation\nout::String : name of the file where the results must be stored.\nss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log).\n\nOptional arguments\n\nThis function recall internally map_ξ_GNC_multipole, so the kwargs are the same; we report them for comfortness:\n\ns1 = nothing : comoving distance from the observer where the TPCF should be evaluated; if s1 = nothing, it is automatically set s1 = cosmo.s_eff from the given input cosmo::Cosmology.\nL::Int = 0: order of the Legendre polynomial to be used\nalg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):\n:quad -> the integration over mu will be preformed through the Julia function quadgk \nfrom the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n:trap -> the integration over mu will be preformed through the Julia function trapz \nfrom the Trapz.jl Julia package, that uses the simple trapezoidal rulae.\n:lobatto -> the integration over mu will be preformed through the Julia function gausslobatto \nfrom the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!\nuse_windows::Bool = false: tells if the integrand must consider the two window function phi and mathcalF\nobs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?\n:yes or true -> all the observer effects will be considered\n:no or false -> no observer term will be taken into account\n:noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account\nN_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\nN_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\nN_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing \npr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)\nsingle::Bool = true : if true, all the CFs are printed inside the file of the sum, in a table with 18 columns (first one for ss, second for their sum an the next 16 for each effect). Otherwise, a new directory \"allstandalonesCFs\" is created (in the same path given in out) and they are separately saved in files there placed.\nkwargs... : other keyword arguments that will be passed to ALL the GNC TPCF effect (ξ_GNC_Doppler, ξ_GNC_Lensing, ...); if one of them has that keyword argument, it will use the given value, otherwise it will be unaffected.\n\nSee also: map_ξ_GNC_multipole, sum_ξ_GNC_multipole, map_sum_ξ_GNC_multipole, Cosmology, GR_EFFECTS_GNC\n\n\n\n\n\n","category":"function"},{"location":"CosmoParams/","page":"Cosmology Parameters","title":"Cosmology Parameters","text":"DocTestSetup = quote\n using GaPSE\nend","category":"page"},{"location":"CosmoParams/#The-Cosmology-Parameters","page":"Cosmology Parameters","title":"The Cosmology Parameters","text":"","category":"section"},{"location":"CosmoParams/","page":"Cosmology Parameters","title":"Cosmology Parameters","text":"GaPSE.DEFAULT_IPS_OPTS\nGaPSE.DEFAULT_IPSTOOLS_OPTS\nGaPSE.CosmoParams","category":"page"},{"location":"CosmoParams/#GaPSE.DEFAULT_IPS_OPTS","page":"Cosmology Parameters","title":"GaPSE.DEFAULT_IPS_OPTS","text":" const DEFAULT_IPS_OPTS = Dict(\n :fit_left_min => 1e-6::Float64, \n :fit_left_max => 3e-6::Float64,\n :fit_right_min => 1e1::Float64, \n :fit_right_max => 2e1::Float64,\n )\n\nThe default values to be stored in CosmoParams concerning the Input Power Spectrum. In the Cosmology that will have such CosmoParams as input, they will be used in its InputPS.\n\nSee also: CosmoParams, Cosmology, InputPS\n\n\n\n\n\n","category":"constant"},{"location":"CosmoParams/#GaPSE.DEFAULT_IPSTOOLS_OPTS","page":"Cosmology Parameters","title":"GaPSE.DEFAULT_IPSTOOLS_OPTS","text":" const DEFAULT_IPSTOOLS_OPTS = Dict(\n :N => 1024::Int,\n :fit_min => 0.05::Float64,\n :fit_max => 0.5::Float64,\n :con => true::Bool,\n :k_min => 1e-6::Float64,\n :k_max => 10.0::Float64,\n )\n\nThe default values to be stored in CosmoParams concerning the Input Power Spectrum Tools. In the Cosmology that will have such CosmoParams as input, they will be used in its IPSTools.\n\nSee also: CosmoParams, Cosmology, IPSTools\n\n\n\n\n\n","category":"constant"},{"location":"CosmoParams/#GaPSE.CosmoParams","page":"Cosmology Parameters","title":"GaPSE.CosmoParams","text":" CosmoParams(\n z_min::Float64\n z_max::Float64\n θ_max::Float64\n\n Ω_b::Float64\n Ω_cdm::Float64\n Ω_M0::Float64\n h_0::Float64\n\n b::Float64\n s_b::Float64\n 𝑓_evo::Float64\n\n s_lim::Float64\n\n IPS::Dict{Symbol,T1} where {T1}\n IPSTools::Dict{Symbol,T2} where {T2}\n )\n\nStruct that contains all the parameters and options that are matter of concerns for the Cosmology we are interested in.\n\nArguments\n\nz_min::Float64 and z_max::Float64 : the minimum and maximum redshifts of the survey we want to study.\nθ_max::Float64 : Angular maximum value of the survey. It must be 0 < θ_max ≤ π/2.0. It is implicitly assumed an azimutal simmetry of the survey. \nΩ_b::Float64, Ω_cdm::Float64 and Ω_M0::Float64 : barionic, cold-dark-matter and total matter density parameters.\nh_0::Float64 : today's Hubble adimensional parameter (H_0 = h_0 * 100 km/(s * Mpc)).\nb::Float64 : galaxy bias.\ns_b::Float64 : magnification bias, i.e. the slope of the luminosity function at the luminosity threshold.\n𝑓_evo::Float64 : evolution bias.\ns_lim::Float64 : the lower-bound value for the functions func_ℛ_LD and func_ℛ_GNC; it is necessary, because ℛ_LD and ℛ_GNC blows up for s rightarrow 0^+. Consequently, if the func_ℛ_LD/func_ℛ_GNC input value is 0 ≤ s < s_lim, the returned value is always func_ℛ_LD(s_lim)/func_ℛ_GNC(s_lim).\nIPS::Dict{Symbol,T1} where {T1} : dictionary concerning all the options that should be passed to InputPS in the contruction of a Cosmology. The allowed keys, with their default values, are stored in DEFAULT_IPS_OPTS, and are the following:\n:fit_left_min => 1e-6 and :fit_left_max => 3e-6 : the limits (min and max) where the PS must be fitted with a (pure) power law, for small wavenumbers. \n:fit_right_min => 1e1 and :fit_right_max => 2e1 : the limits (min and max) where the PS must be fitted with a (pure) power law, for high wavenumbers. \nIPSTools::Dict{Symbol,T2} where {T2} : dictionary concerning all the options that should be passed to IPSTools in the contruction of a Cosmology. The allowed keys, with their default values, are stored in DEFAULT_IPSTOOLS_OPTS, and are the following:\n:fit_min => 0.05 and :fit_max => 0.5 : the limits (min and max) where the integral I_ell^n in Cosmology must be fitted with a power law, for small distances. This operation is necessary, because xicalc, in this context, gives wrong results for too small input distance s; nevertheless, all these I_ell^n integrals have fixed power-law trends for s rightarrow 0, so this approach gives good results.\n:N => 1024 : number of points to be used in the Sperical Bessel Fourier Transform made by xicalc in IPSTools.\n:k_min => 1e-6 and :k_max => 10.0 : extremes of integration for the σ_i integrals in IPSTools.\n:con => true : do you want that the fit of all the I_ell^n in IPSTools for the LEFT edge is not a simple power-law y = f(x) = b x^s, but also consider a constant a, such that y = f(x) = a + b x^s?\n\nConstructors\n\n CosmoParams(z_min, z_max, θ_max;\n Ω_b = 0.0489, Ω_cdm = 0.251020, h_0 = 0.70, s_lim = 1e-2,\n IPS_opts::Dict = Dict{Symbol,Any}(),\n IPSTools_opts::Dict = Dict{Symbol,Any}()\n )\n\nThe associations are trivials, with Ω_M0 = Ω_cdm + Ω_b. For the two dictionary, you may pass only the key and the value you are interested in, and all the other default ones will be considered. For example, if you set:\n\nIPSTools_opts = Dict(:N => 150, :con => false, :k_max => 30.0)\n\nthen the dictionary with all the options that will be passed to IPSTools will be:\n\nIPSTools = merge(DEFAULT_IPSTOOLS_OPTS, IPSTools_opts) = :fit_min => 0.05, # default :fit_max => 0.5, # default :N => 150, # CHANGED VALUE :con => false, # CHANGED VALUE :k_min => 1e-6, # default :k_max => 30.0, # CHANGED VALUE )\n\nand similar for IPS_opts.\n\nSee also: Cosmology, IPSTools, InputPS, func_ℛ_LD, DEFAULT_IPSTOOLS_OPTS, DEFAULT_IPS_OPTS, DEFAULT_WFI_OPTS, check_compatible_dicts\n\n\n\n\n\n","category":"type"},{"location":"PlaneParallelApprox/","page":"Calculating TPCFs with the PP Approximation","title":"Calculating TPCFs with the PP Approximation","text":"DocTestSetup = quote\n using GaPSE\nend","category":"page"},{"location":"PlaneParallelApprox/#The-Plane-Parallel-Approximation","page":"Calculating TPCFs with the PP Approximation","title":"The Plane Parallel Approximation","text":"","category":"section"},{"location":"PlaneParallelApprox/#The-GNC-Doppler-TPCF-in-the-Plane-Parallel-Approximation","page":"Calculating TPCFs with the PP Approximation","title":"The GNC Doppler TPCF in the Plane Parallel Approximation","text":"","category":"section"},{"location":"PlaneParallelApprox/","page":"Calculating TPCFs with the PP Approximation","title":"Calculating TPCFs with the PP Approximation","text":"GaPSE.ξ_PPDoppler_L0\nGaPSE.ξ_PPDoppler_L2\nGaPSE.ξ_PPDoppler\nGaPSE.integrand_ξ_PPDoppler_multipole\nGaPSE.ξ_PPDoppler_multipole\nGaPSE.map_ξ_PPDoppler_multipole\nGaPSE.print_map_ξ_PPDoppler_multipole","category":"page"},{"location":"PlaneParallelApprox/#GaPSE.ξ_PPDoppler_L0","page":"Calculating TPCFs with the PP Approximation","title":"GaPSE.ξ_PPDoppler_L0","text":" ξ_PPDoppler_L0(P::Point, cosmo::Cosmology)\n ξ_PPDoppler_L0(s, cosmo::Cosmology)\n\nReturn the value of the Two-Point Correlation Function (TPCF) monopole of the Doppler effect in the Plane-Parallel approximation. In the first method, you should pass the Point where to evaluate that function, while in the second (that internally recalls the first) you must provide the comoving distance s. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of such TPCF monopole is the following:\n\nxi^mathrmpp v_parallel_0(s) = \n frac13 f^2(s_mathrmeff) mathscrH^2(s_mathrmeff) \n mathscrR^2_mathrmLD(s_mathrmeff)\n D^2(s_mathrmeff) s^2 I_0^2(s)\n\nwhere:\n\ns_mathrmeff is the effective comoving distance stored in cosmo::Cosmology\nD the linear growth factor and f the linear growth rate\nmathscrH(z) is the comoving Hubble parameter\nmathscrR_mathrmLD is defined as : mathscrR_mathrmLD(z)= 1 - frac1mathscrH(z) s(z)\nI_ell^n is defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n\nwith P(q) as the matter Power Spectrum at z=0 and j_ell as spherical Bessel function of order ell.\n\nAll the cosmological data needed for this computation are taken from the input struct cosmo::Cosmology.\n\nSee also: Point, Cosmology, func_ℛ_LD, ξ_PPDoppler_L2, ξ_PPDoppler, integrand_ξ_PPDoppler_multipole, ξ_PPDoppler_multipole map_ξ_PPDoppler_multipole, print_map_ξ_PPDoppler_multipole\n\n\n\n\n\n","category":"function"},{"location":"PlaneParallelApprox/#GaPSE.ξ_PPDoppler_L2","page":"Calculating TPCFs with the PP Approximation","title":"GaPSE.ξ_PPDoppler_L2","text":"ξ_PPDoppler_L0(P::Point, cosmo::Cosmology)\nξ_PPDoppler_L0(s, cosmo::Cosmology)\n\nReturn the value of the Two-Point Correlation Function (TPCF) quadrupole of the Doppler effect in the Plane-Parallel approximation. In the first method, you should pass the Point where to evaluate that function, while in the second (that internally recalls the first) you must provide the comoving distance s. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of such TPCF monopole is the following:\n\nxi^mathrmpp v_parallel_2(s) = \n -frac23 f^2(z_mathrmeff) mathscrH^2(z_mathrmeff) \n mathscrR^2_mathrmLD(z_mathrmeff)\n D^2(z_mathrmeff) s^2 I_2^2(s)\n\nwhere:\n\nz_mathrmeff is the effective redshift stored in cosmo::Cosmology ( and z_mathrmeff is the effective comoving distance associated in this cosmology)\nD the linear growth factor and f the linear growth rate\nmathscrH(z) is the comoving Hubble parameter\nmathscrR_mathrmLD(z) is defined as : mathscrR_mathrmLD(z)= 1 - frac1mathscrH(z) s(z)\nI_ell^n is defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n\nwith P(q) as the matter Power Spectrum at z=0 and j_ell as spherical Bessel function of order ell.\n\nAll the cosmological data needed for this computation are taken from the input struct cosmo::Cosmology.\n\nSee also: Point, Cosmology, func_ℛ_LD, ξ_PPDoppler_L0, ξ_PPDoppler, integrand_ξ_PPDoppler_multipole, ξ_PPDoppler_multipole map_ξ_PPDoppler_multipole, print_map_ξ_PPDoppler_multipole\n\n\n\n\n\n","category":"function"},{"location":"PlaneParallelApprox/#GaPSE.ξ_PPDoppler","page":"Calculating TPCFs with the PP Approximation","title":"GaPSE.ξ_PPDoppler","text":" ξ_PPDoppler(s, μ, cosmo::Cosmology)\n\nReturn the value of the Two-Point Correlation Function (TPCF) of the Doppler effect in the Plane-Parallel approximation in the given comoving distance s and cosine value for the Legendre polynomials μ (for the given cosmo::Cosmology).\n\nThe analytical expression of such TPCF is the following:\n\nbeginsplit\nxi^mathrmpp v_parallel(szmu) = xi^mathrmpp v_parallel_0(sz) + \n xi^mathrmpp v_parallel_2(s) mathcalL_2(mu) \nxi^mathrmpp v_parallel_0(s) = \n frac13 f^2(s_mathrmeff) mathscrH^2(s_mathrmeff) \n mathscrR^2_mathrmLD(s_mathrmeff)\n D^2(s_mathrmeff) s^2 I_0^2(s) \nxi^mathrmpp v_parallel_2(s) = \n -frac23 f^2(z_mathrmeff) mathscrH^2(z_mathrmeff) \n mathscrR^2_mathrmLD(z_mathrmeff)\n D^2(z_mathrmeff) s^2 I_2^2(s) \nendsplit\n\nwhere: \n\nz is the redshift associated to the comoving distance s in this cosmology\nD the linear growth factor and f the linear growth rate\nmathcalL_ell the Legendre polynomial of order ell\nmathscrH(z) is the comoving Hubble parameter\nmathscrR_mathrmLD(z) is defined as : mathscrR_mathrmLD(z)= 1 - frac1mathscrH(z) s(z)\nI_ell^n is defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n\nwith P(q) as the matter Power Spectrum at z=0 and j_ell as spherical Bessel function of order ell.\n\nAll the cosmological data needed for this computation are taken from the input struct cosmo::Cosmology.\n\nSee also: Point, Cosmology, integrand_ξ_PPDoppler_multipole, ξ_PPDoppler_multipole map_ξ_PPDoppler_multipole, print_map_ξ_PPDoppler_multipole\n\n\n\n\n\n","category":"function"},{"location":"PlaneParallelApprox/#GaPSE.integrand_ξ_PPDoppler_multipole","page":"Calculating TPCFs with the PP Approximation","title":"GaPSE.integrand_ξ_PPDoppler_multipole","text":" integrand_ξ_PPDoppler_multipole(s, μ, cosmo::Cosmology;\n L::Int=0, use_windows::Bool=true)\n\nReturn the integrand on mu = hatmathbfs_1 cdot hatmathbfs of the Doppler effect Two-Point Correlation Function (TPCF) in the Plane Parallel (PP) approximation, i.e. the following function f(s mu):\n\n f_L(s mu) = xi^mathrmpp v_parallel left(s muright) \n mathcalL_L(mu) times \n begincases \n frac1mathcalNmathcalF(s mu) quad mathrmuse_windows == true \n 1 quadquad mathrmuse_windows == false\n endcases\n\nwhere:\n\nxi^mathrmpp v_parallel(smu) is the TPCF of the Doppler term in the PP approximation with the angular dependence, computed from ξ_PPDoppler.\nmathcalL_L(mu) is the Legendre polynomial of order L\nmathcalF(s mu) is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)\nmathcalN is the integrated window function norm (check the documentation of WindowFIntegrated)\n\nInputs\n\ns: the comoving distance where must be evaluated the integral\nμ: the cosine between s1 and s where must be evaluated the integral\ncosmo::Cosmology: cosmology to be used in this computation\n\nOptional arguments\n\nL::Int = 0: order of the Legendre polynomial to be used\nuse_windows::Bool = false: tells if the integrand must consider mathcalF or not.\n\nSee also:ξ_PPDoppler, ξ_PPDoppler_multipole, map_ξ_PPDoppler_multipole, print_map_ξ_PPDoppler_multipole WindowFIntegrated, Cosmology, \n\n\n\n\n\n","category":"function"},{"location":"PlaneParallelApprox/#GaPSE.ξ_PPDoppler_multipole","page":"Calculating TPCFs with the PP Approximation","title":"GaPSE.ξ_PPDoppler_multipole","text":" ξ_PPDoppler_multipole(\n s, cosmo::Cosmology;\n L::Int = 0, use_windows::Bool = true,\n atol_quad::Float64 = 0.0,\n rtol_quad::Float64 = 1e-2,\n enhancer::Float64 = 1e6 ) ::Float64\n\nEvaluate the multipole of order L of the Doppler effect Two-Point Correlation Function (TPCF) in the Plane Parallel (PP) term i.e. the following function xi^mathrmpp v_parallel (s):\n\n xi^mathrmpp v_parallel (s) = frac2 L + 12 int_-1^+1 mathrmdmu \n xi^mathrmpp v_parallel left(s muright) \n mathcalL_L(mu) times \n begincases \n frac1mathcalNmathcalF(s mu) quad mathrmuse_windows == true \n 1 quadquad mathrmuse_windows == false\n endcases\n\nwhere:\n\nxi^mathrmpp v_parallel(smu) is the TPCF of the Doppler term in the PP approximation with the angular dependence, computed from ξ_PPDoppler.\nmathcalL_L(mu) is the Legendre polynomial of order L\nmathcalF(s mu) is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)\nmathcalN is the integrated window function norm (check the documentation of WindowFIntegrated)\n\nThe integration over mu is preformed through the Julia function quadgk from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n\nInputs\n\ns: the comoving distance where must be evaluated the integral\ncosmo::Cosmology: cosmology to be used in this computation\n\nOptional arguments\n\nL::Int = 0: order of the Legendre polynomial to be used\nuse_windows::Bool = false: tells if the integrand must consider mathcalF or not.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\n\nSee also: ξ_PPDoppler, integrand_ξ_PPDoppler_multipole, map_ξ_PPDoppler_multipole, print_map_ξ_PPDoppler_multipole WindowFIntegrated, Cosmology, \n\n\n\n\n\n","category":"function"},{"location":"PlaneParallelApprox/#GaPSE.map_ξ_PPDoppler_multipole","page":"Calculating TPCFs with the PP Approximation","title":"GaPSE.map_ξ_PPDoppler_multipole","text":" map_ξ_PPDoppler_multipole(\n cosmo::Cosmology, ss = nothing;\n L::Int = 0, use_windows::Bool = true,\n atol_quad::Float64 = 0.0,\n rtol_quad::Float64 = 1e-2,\n enhancer::Float64 = 1e6,\n pr::Bool = true,\n N_log::Int = 1000,\n kwargs...) ::Tuple{Vector{Float64}, Vector{Float64}}\n\nEvaluate the multipole of order L of the Doppler effect Two-Point Correlation Function (TPCF) in the Plane Parallel (PP) term for all the comoving distance values stored inside ss. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log).\n\nThe function evaluated is then the following xi^mathrmpp g (s):\n\n xi^mathrmpp v_parallel (s) = frac2 L + 12 int_-1^+1 mathrmdmu \n xi^mathrmpp v_parallel left(s muright) \n mathcalL_L(mu) times \n begincases \n frac1mathcalNmathcalF(s mu) quad mathrmuse_windows == true \n 1 quadquad mathrmuse_windows == false\n endcases\n\nwhere:\n\nxi^mathrmpp v_parallel(smu) is the TPCF of the Doppler term in the PP approximation with the angular dependence, computed from ξ_PPDoppler.\nmathcalL_L(mu) is the Legendre polynomial of order L\nmathcalF(s mu) is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)\nmathcalN is the integrated window function norm (check the documentation of WindowFIntegrated)\n\nThe integration over mu is preformed through the Julia function quadgk from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n\nInputs\n\ncosmo::Cosmology: cosmology to be used in this computation\nss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). This is why it is returned also the vector of the \"input\" values.\n\nOptional arguments\n\nThis function recall internally ξ_PPDoppler_multipole, so the kwargs of the latter are valid also for the former; we report them for comfortness:\n\nL::Int = 0: order of the Legendre polynomial to be used\nuse_windows::Bool = false: tells if the integrand must consider mathcalF or not.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\nN_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing \npr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)\n\nReturns\n\nA Tuple{Vector{Float64}, Vector{Float64}}, which has as first element the ss vector and as second one the corresponding ξ value evaluated.\n\nSee also: ξ_PPDoppler, integrand_ξ_PPDoppler_multipole, ξ_PPDoppler_multipole, print_map_ξ_PPDoppler_multipole WindowFIntegrated, Cosmology, \n\n\n\n\n\n","category":"function"},{"location":"PlaneParallelApprox/#GaPSE.print_map_ξ_PPDoppler_multipole","page":"Calculating TPCFs with the PP Approximation","title":"GaPSE.print_map_ξ_PPDoppler_multipole","text":" print_map_ξ_PPDoppler_multipole(\n cosmo::Cosmology, out::String,\n ss = nothing;\n L::Int = 0, use_windows::Bool = true,\n atol_quad::Float64 = 0.0,\n rtol_quad::Float64 = 1e-2,\n enhancer::Float64 = 1e6,\n pr::Bool = true,\n N_log::Int = 1000,\n kwargs...)\n\nEvaluate the multipole of order L of the Doppler effect Two-Point Correlation Function (TPCF) in the Plane Parallel (PP) term for all the comoving distance values stored inside ss, and print the results (with all the options used) in a file named out. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log).\n\nThe function evaluated is then the following xi^mathrmpp v_parallel (s):\n\n xi^mathrmpp v_parallel (s) = frac2 L + 12 int_-1^+1 mathrmdmu \n xi^mathrmpp v_parallel left(s muright) \n mathcalL_L(mu) times \n begincases \n frac1mathcalNmathcalF(s mu) quad mathrmuse_windows == true \n 1 quadquad mathrmuse_windows == false\n endcases\n\nwhere:\n\nxi^mathrmpp v_parallel(smu) is the TPCF of the Doppler term in the PP approximation with the angular dependence, computed from ξ_PPDoppler.\nmathcalL_L(mu) is the Legendre polynomial of order L\nmathcalF(s mu) is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)\nmathcalN is the integrated window function norm (check the documentation of WindowFIntegrated)\n\nThe integration over mu is preformed through the Julia function quadgk from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n\nInputs\n\ncosmo::Cosmology: cosmology to be used in this computation\nout::String : name of the file where the results must be stored.\nss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). This is why it is returned also the vector of the \"input\" values.\n\nOptional arguments\n\nThis function recall internally map_ξ_PPDoppler_multipole, so the kwargs of the latter are valid also for the former; we report them for comfortness:\n\nL::Int = 0: order of the Legendre polynomial to be used\nuse_windows::Bool = false: tells if the integrand must consider mathcalF or not.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\nN_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing \npr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)\n\nSee also: ξ_PPDoppler, integrand_ξ_PPDoppler_multipole, ξ_PPDoppler_multipole, map_ξ_PPDoppler_multipole WindowFIntegrated, Cosmology, \n\n\n\n\n\n","category":"function"},{"location":"PlaneParallelApprox/#The-Galaxy-TPCF-term-in-the-Plane-Parallel-Approximation","page":"Calculating TPCFs with the PP Approximation","title":"The Galaxy TPCF term in the Plane Parallel Approximation","text":"","category":"section"},{"location":"PlaneParallelApprox/","page":"Calculating TPCFs with the PP Approximation","title":"Calculating TPCFs with the PP Approximation","text":"GaPSE.ξ_PPGalaxies_L0\nGaPSE.ξ_PPGalaxies_L2\nGaPSE.ξ_PPGalaxies_L4\nGaPSE.ξ_PPGalaxies\nGaPSE.integrand_ξ_PPGalaxies_multipole\nGaPSE.ξ_PPGalaxies_multipole\nGaPSE.map_ξ_PPGalaxies_multipole\nGaPSE.print_map_ξ_PPGalaxies_multipole","category":"page"},{"location":"PlaneParallelApprox/#GaPSE.ξ_PPGalaxies_L0","page":"Calculating TPCFs with the PP Approximation","title":"GaPSE.ξ_PPGalaxies_L0","text":" ξ_PPGalaxies_L0(P::Point, cosmo::Cosmology)\n ξ_PPGalaxies_L0(s, cosmo::Cosmology)\n\nReturn the value of the Two-Point Correlation Function (TPCF) monopole of the Galaxies in the Plane-Parallel approximation. In the first method, you should pass the Point where to evaluate that function, while in the second (that internally recalls the first) you must provide the comoving distance s. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of such TPCF monopole is the following:\n\nxi^mathrmpp g_0(s) = D^2(z) I_0^0(s) left(b^2 + \nfrac23 b f(z) + frac15 f^2(z)right)\n\nwhere: \n\nb is the galaxy bias\nz is the redshift associated to the comoving distance s in this cosmology\nD the linear growth factor and f the linear growth rate\nI_ell^n is defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n\nwith P(q) as the matter Power Spectrum at z=0 and j_ell as spherical Bessel function of order ell.\n\nAll the cosmological data needed for this computation are taken from the input struct cosmo::Cosmology.\n\nSee also: Point, Cosmology, ξ_PPGalaxies_L2, ξ_PPGalaxies_L4, integrand_ξ_PPGalaxies_multipole, ξ_PPGalaxies_multipole map_ξ_PPGalaxies_multipole, print_map_ξ_PPGalaxies_multipole\n\n\n\n\n\n","category":"function"},{"location":"PlaneParallelApprox/#GaPSE.ξ_PPGalaxies_L2","page":"Calculating TPCFs with the PP Approximation","title":"GaPSE.ξ_PPGalaxies_L2","text":" ξ_PPGalaxies_L2(P::Point, cosmo::Cosmology)\n ξ_PPGalaxies_L2(s, cosmo::Cosmology)\n\nReturn the value of the Two-Point Correlation Function (TPCF) quadrupole of the Galaxies in the Plane-Parallel approximation. In the first method, you should pass the Point where to evaluate that function, while in the second (that internally recalls the first) you must provide the comoving distance s. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of such TPCF monopole is the following:\n\nxi^mathrmpp g_2(s) = - D^2(z) I_2^0(s) left(frac43 \n b f(z) + frac47 f^2(z)right)\n\nwhere: \n\nb is the galaxy bias\nz is the redshift associated to the comoving distance s in this cosmology\nD the linear growth factor and f the linear growth rate\nI_ell^n is defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n\nwith P(q) as the matter Power Spectrum at z=0 and j_ell as spherical Bessel function of order ell.\n\nAll the cosmological data needed for this computation are taken from the input struct cosmo::Cosmology.\n\nSee also: Point, Cosmology, ξ_PPGalaxies_L0, ξ_PPGalaxies_L4, integrand_ξ_PPGalaxies_multipole, ξ_PPGalaxies_multipole map_ξ_PPGalaxies_multipole, print_map_ξ_PPGalaxies_multipole\n\n\n\n\n\n","category":"function"},{"location":"PlaneParallelApprox/#GaPSE.ξ_PPGalaxies_L4","page":"Calculating TPCFs with the PP Approximation","title":"GaPSE.ξ_PPGalaxies_L4","text":" ξ_PPGalaxies_L4(P::Point, cosmo::Cosmology)\n ξ_PPGalaxies_L4(s, cosmo::Cosmology)\n\nReturn the value of the Two-Point Correlation Function (TPCF) hexadecapole of the Galaxies in the Plane-Parallel approximation. In the first method, you should pass the Point where to evaluate that function, while in the second (that internally recalls the first) you must provide the comoving distance s. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of such TPCF monopole is the following:\n\nxi^mathrmpp g_4(sz) = D^2(z) I_4^0(s) \nleft(frac835 f^2(z)right)\n\nwhere: \n\nb is the galaxy bias\nz is the redshift associated to the comoving distance s in this cosmology\nD the linear growth factor and f the linear growth rate\nI_ell^n is defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n\nwith P(q) as the matter Power Spectrum at z=0 and j_ell as spherical Bessel function of order ell.\n\nAll the cosmological data needed for this computation are taken from the input struct cosmo::Cosmology.\n\nSee also: Point, Cosmology, ξ_PPGalaxies_L0, ξ_PPGalaxies_L2, integrand_ξ_PPGalaxies_multipole, ξ_PPGalaxies_multipole map_ξ_PPGalaxies_multipole, print_map_ξ_PPGalaxies_multipole\n\n\n\n\n\n","category":"function"},{"location":"PlaneParallelApprox/#GaPSE.ξ_PPGalaxies","page":"Calculating TPCFs with the PP Approximation","title":"GaPSE.ξ_PPGalaxies","text":" ξ_PPGalaxies(s, μ, cosmo::Cosmology)\n\nReturn the value of the Two-Point Correlation Function (TPCF) of the Galaxies in the Plane-Parallel approximation in the given comoving distance s and cosine value for the Legendre polynomials μ (for the given cosmo::Cosmology).\n\nThe analytical expression of such TPCF is the following:\n\nbeginsplit\nxi^mathrmpp g(smu) = xi^mathrmpp g_0(s) + \n xi^mathrmpp g_2(s) mathcalL_2(mu) + \n xi^mathrmpp g_4(s) mathcalL_4(mu) \nxi^mathrmpp g_0(s) = D^2(z) I_0^0(s) left(b^2 + \n frac23 b f(z) + frac15 f^2(z)right) \nxi^mathrmpp g_2(s) = - D^2(z) I_2^0(s) left(frac43 \n b f(z) + frac47 f^2(z)right) \nxi^mathrmpp g_4(s) = D^2(z) I_4^0(s) \n left(frac835 f^2(z)right)\nendsplit\n\nwhere: \n\nb is the galaxy bias\nz is the redshift associated to the comoving distance s in this cosmology\nD the linear growth factor and f the linear growth rate\nmathcalL_ell the Legendre polynomial of order ell\nI_ell^n is defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n\nwith P(q) as the matter Power Spectrum at z=0 and j_ell as spherical Bessel function of order ell.\n\nAll the cosmological data needed for this computation are taken from the input struct cosmo::Cosmology.\n\nSee also: Point, Cosmology, ξ_PPGalaxies_L0, ξ_PPGalaxies_L2, ξ_PPGalaxies_L4 integrand_ξ_PPGalaxies_multipole, ξ_PPGalaxies_multipole map_ξ_PPGalaxies_multipole, print_map_ξ_PPGalaxies_multipole\n\n\n\n\n\n","category":"function"},{"location":"PlaneParallelApprox/#GaPSE.integrand_ξ_PPGalaxies_multipole","page":"Calculating TPCFs with the PP Approximation","title":"GaPSE.integrand_ξ_PPGalaxies_multipole","text":" integrand_ξ_PPGalaxies_multipole(s, μ, cosmo::Cosmology;\n L::Int=0, use_windows::Bool=true)\n\nReturn the integrand on mu = hatmathbfs_1 cdot hatmathbfs of the Galaxies Two-Point Correlation Function (TPCF) in the Plane Parallel (PP) approximation, i.e. the following function f(s mu):\n\n f_L(s mu) = xi^mathrmpp g left(s muright) \n mathcalL_L(mu) times \n begincases \n frac1mathcalNmathcalF(s mu) quad mathrmuse_windows == true \n 1 quadquad mathrmuse_windows == false\n endcases\n\nwhere:\n\nxi^mathrmpp g(smu) is the TPCF of the Galaxies in the PP approximation with the angular dependence, computed from ξ_PPGalaxies.\nmathcalL_L(mu) is the Legendre polynomial of order L\nmathcalF(s mu) is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)\nmathcalN is the integrated window function norm (check the documentation of WindowFIntegrated)\n\nInputs\n\ns: the comoving distance where must be evaluated the integral\nμ: the cosine between s1 and s where must be evaluated the integral\ncosmo::Cosmology: cosmology to be used in this computation\n\nOptional arguments\n\nL::Int = 0: order of the Legendre polynomial to be used\nuse_windows::Bool = false: tells if the integrand must consider mathcalF or not.\n\nSee also:ξ_PPGalaxies, ξ_PPGalaxies_multipole, map_ξ_PPGalaxies_multipole, print_map_ξ_PPGalaxies_multipole WindowFIntegrated, Cosmology, \n\n\n\n\n\n","category":"function"},{"location":"PlaneParallelApprox/#GaPSE.ξ_PPGalaxies_multipole","page":"Calculating TPCFs with the PP Approximation","title":"GaPSE.ξ_PPGalaxies_multipole","text":" ξ_PPGalaxies_multipole(\n s, cosmo::Cosmology;\n L::Int = 0, use_windows::Bool = true,\n atol_quad::Float64 = 0.0,\n rtol_quad::Float64 = 1e-2,\n enhancer::Float64 = 1e6 ) ::Float64\n\nEvaluate the multipole of order L of the Galaxies Two-Point Correlation Function (TPCF) in the Plane Parallel (PP) term i.e. the following function xi^mathrmpp g (s):\n\n xi^mathrmpp g (s) = frac2 L + 12 int_-1^+1 mathrmdmu \n xi^mathrmpp g left(s muright) \n mathcalL_L(mu) times \n begincases \n frac1mathcalNmathcalF(s mu) quad mathrmuse_windows == true \n 1 quadquad mathrmuse_windows == false\n endcases\n\nwhere:\n\nxi^mathrmpp g(smu) is the TPCF of the Galaxies in the PP approximation with the angular dependence, computed from ξ_PPGalaxies.\nmathcalL_L(mu) is the Legendre polynomial of order L\nmathcalF(s mu) is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)\nmathcalN is the integrated window function norm (check the documentation of WindowFIntegrated)\n\nThe integration over mu is preformed through the Julia function quadgk from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n\nInputs\n\ns: the comoving distance where must be evaluated the integral\ncosmo::Cosmology: cosmology to be used in this computation\n\nOptional arguments\n\nL::Int = 0: order of the Legendre polynomial to be used\nuse_windows::Bool = false: tells if the integrand must consider mathcalF or not.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\n\nSee also: ξ_PPGalaxies, integrand_ξ_PPGalaxies_multipole, map_ξ_PPGalaxies_multipole, print_map_ξ_PPGalaxies_multipole WindowFIntegrated, Cosmology, \n\n\n\n\n\n","category":"function"},{"location":"PlaneParallelApprox/#GaPSE.map_ξ_PPGalaxies_multipole","page":"Calculating TPCFs with the PP Approximation","title":"GaPSE.map_ξ_PPGalaxies_multipole","text":" map_ξ_PPGalaxies_multipole(\n cosmo::Cosmology, ss = nothing;\n L::Int = 0, use_windows::Bool = true,\n atol_quad::Float64 = 0.0,\n rtol_quad::Float64 = 1e-2,\n enhancer::Float64 = 1e6,\n pr::Bool = true,\n N_log::Int = 1000,\n kwargs...) ::Tuple{Vector{Float64}, Vector{Float64}}\n\nEvaluate the multipole of order L of the Galaxies Two-Point Correlation Function (TPCF) in the Plane Parallel (PP) term for all the comoving distance values stored inside ss. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log).\n\nThe function evaluated is then the following xi^mathrmpp g (s):\n\n xi^mathrmpp g (s) = frac2 L + 12 int_-1^+1 mathrmdmu \n xi^mathrmpp g left(s muright) \n mathcalL_L(mu) times \n begincases \n frac1mathcalNmathcalF(s mu) quad mathrmuse_windows == true \n 1 quadquad mathrmuse_windows == false\n endcases\n\nwhere:\n\nxi^mathrmpp g(smu) is the TPCF of the Galaxies in the PP approximation with the angular dependence, computed from ξ_PPGalaxies.\nmathcalL_L(mu) is the Legendre polynomial of order L\nmathcalF(s mu) is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)\nmathcalN is the integrated window function norm (check the documentation of WindowFIntegrated)\n\nThe integration over mu is preformed through the Julia function quadgk from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n\nInputs\n\ncosmo::Cosmology: cosmology to be used in this computation\nss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). This is why it is returned also the vector of the \"input\" values.\n\nOptional arguments\n\nThis function recall internally ξ_PPGalaxies_multipole, so the kwargs of the latter are valid also for the former; we report them for comfortness:\n\nL::Int = 0: order of the Legendre polynomial to be used\nuse_windows::Bool = false: tells if the integrand must consider mathcalF or not.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\nN_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing \npr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)\n\nReturns\n\nA Tuple{Vector{Float64}, Vector{Float64}}, which has as first element the ss vector and as second one the corresponding ξ value evaluated.\n\nSee also: ξ_PPGalaxies, integrand_ξ_PPGalaxies_multipole, ξ_PPGalaxies_multipole, print_map_ξ_PPGalaxies_multipole WindowFIntegrated, Cosmology, \n\n\n\n\n\n","category":"function"},{"location":"PlaneParallelApprox/#GaPSE.print_map_ξ_PPGalaxies_multipole","page":"Calculating TPCFs with the PP Approximation","title":"GaPSE.print_map_ξ_PPGalaxies_multipole","text":" print_map_ξ_PPGalaxies_multipole(\n cosmo::Cosmology, out::String,\n ss = nothing;\n L::Int = 0, use_windows::Bool = true,\n atol_quad::Float64 = 0.0,\n rtol_quad::Float64 = 1e-2,\n enhancer::Float64 = 1e6,\n pr::Bool = true,\n N_log::Int = 1000,\n kwargs...)\n\nEvaluate the multipole of order L of the Galaxies Two-Point Correlation Function (TPCF) in the Plane Parallel (PP) term for all the comoving distance values stored inside ss, and print the results (with all the options used) in a file named out. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log).\n\nThe function evaluated is then the following xi^mathrmpp g (s):\n\n xi^mathrmpp g (s) = frac2 L + 12 int_-1^+1 mathrmdmu \n xi^mathrmpp g left(s muright) \n mathcalL_L(mu) times \n begincases \n frac1mathcalNmathcalF(s mu) quad mathrmuse_windows == true \n 1 quadquad mathrmuse_windows == false\n endcases\n\nwhere:\n\nxi^mathrmpp g(smu) is the TPCF of the Galaxies in the PP approximation with the angular dependence, computed from ξ_PPGalaxies.\nmathcalL_L(mu) is the Legendre polynomial of order L\nmathcalF(s mu) is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)\nmathcalN is the integrated window function norm (check the documentation of WindowFIntegrated)\n\nThe integration over mu is preformed through the Julia function quadgk from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n\nInputs\n\ncosmo::Cosmology: cosmology to be used in this computation\nout::String : name of the file where the results must be stored.\nss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). This is why it is returned also the vector of the \"input\" values.\n\nOptional arguments\n\nThis function recall internally map_ξ_PPGalaxies_multipole, so the kwargs of the latter are valid also for the former; we report them for comfortness:\n\nL::Int = 0: order of the Legendre polynomial to be used\nuse_windows::Bool = false: tells if the integrand must consider mathcalF or not.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\nN_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing \npr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)\n\nSee also: ξ_PPGalaxies, integrand_ξ_PPGalaxies_multipole, ξ_PPGalaxies_multipole, map_ξ_PPGalaxies_multipole WindowFIntegrated, Cosmology, \n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations/","page":"GNCxLD","title":"GNCxLD","text":"DocTestSetup = quote\n using GaPSE\nend","category":"page"},{"location":"GNCxLD_Correlations/#GNCxLD-TPCFs","page":"GNCxLD","title":"GNCxLD TPCFs","text":"","category":"section"},{"location":"GNCxLD_Correlations/#Two-Point-Cross-Correlation-Functions","page":"GNCxLD","title":"Two-Point Cross-Correlation Functions","text":"","category":"section"},{"location":"GNCxLD_Correlations/","page":"GNCxLD","title":"GNCxLD","text":"GaPSE.ξ_GNCxLD_Newtonian_Doppler\nGaPSE.ξ_GNCxLD_Newtonian_Lensing\nGaPSE.ξ_GNCxLD_Newtonian_LocalGP\nGaPSE.ξ_GNCxLD_Newtonian_IntegratedGP\nGaPSE.ξ_GNCxLD_Doppler_Doppler\nGaPSE.ξ_GNCxLD_Doppler_Lensing\nGaPSE.ξ_GNCxLD_Doppler_LocalGP\nGaPSE.ξ_GNCxLD_Doppler_IntegratedGP\nGaPSE.ξ_GNCxLD_Lensing_Doppler\nGaPSE.ξ_GNCxLD_Lensing_Lensing\nGaPSE.ξ_GNCxLD_Lensing_LocalGP\nGaPSE.ξ_GNCxLD_Lensing_IntegratedGP\nGaPSE.ξ_GNCxLD_LocalGP_Doppler\nGaPSE.ξ_GNCxLD_LocalGP_Lensing\nGaPSE.ξ_GNCxLD_LocalGP_LocalGP\nGaPSE.ξ_GNCxLD_LocalGP_IntegratedGP\nGaPSE.ξ_GNCxLD_IntegratedGP_Doppler\nGaPSE.ξ_GNCxLD_IntegratedGP_Lensing\nGaPSE.ξ_GNCxLD_IntegratedGP_LocalGP\nGaPSE.ξ_GNCxLD_IntegratedGP_IntegratedGP","category":"page"},{"location":"GNCxLD_Correlations/#GaPSE.ξ_GNCxLD_Newtonian_Doppler","page":"GNCxLD","title":"GaPSE.ξ_GNCxLD_Newtonian_Doppler","text":" ξ_GNCxLD_Newtonian_Doppler(P1::Point, P2::Point, y, cosmo::Cosmology) :: Float64\n\nReturn the cross-correlation function between the Galaxy Number Counts standard Newtonian and the Luminosity Distance perturbation Doppler effects, defined as follows:\n\nxi^v_parallelphi (s_1 s_2 costheta) = \n frac32 a(s_2) mathcalH(s_1) f(s_1) D(s_1)\n mathcalR(s_1) mathcalH_0^2 Omega_M0 D(s_2)\n (1 + mathcalR(s_2)) (s_2costheta - s_1) s^2 I^3_1(s)\n\nwhere mathcalH = a H, y = costheta = hatmathbfs_1 cdot hatmathbfs_2 and :\n\nI^n_l(s) = int_0^infty fracmathrmdq2pi^2 q^2 P(q) fracj_l(qs)(q s)^n\n\nInputs\n\nP1::Point and P2::Point: Point where the CF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on)\ny: the cosine of the angle between the two points P1 and P2\ncosmo::Cosmology: cosmology to be used in this computation\n\nSee also: Point, Cosmology\n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations/#GaPSE.ξ_GNCxLD_Newtonian_Lensing","page":"GNCxLD","title":"GaPSE.ξ_GNCxLD_Newtonian_Lensing","text":" ξ_GNCxLD_Newtonian_Lensing(s1, s2, y, cosmo::Cosmology;\n en::Float64 = 1e6, N_χs::Int = 100):: Float64\n\nReturn the Doppler-LocalGP cross-correlation function xi^v_parallelintphi (s_1 s_2 costheta) concerning the perturbed luminosity distance, defined as follows:\n\nxi^v_parallelintphi (s_1 s_2 costheta) = \n 3 mathcalH(s_1) f(s_1) D(s_1) mathcalH_0^2 Omega_M0 mathcalR(s_1) \n int_0^s_2 mathrmdchi_2 J_31 I^3_1(chi)\n\nwhere mathcalH = a H, chi = sqrts_1^2 + chi_2^2 - 2 s_1 chi_2 costheta, y = costheta = hatmathbfs_1 cdot hatmathbfs_2) and:\n\nJ_31 = \n fracD(chi_2) (s_1 - chi_2 costheta)a(chi_2) chi^2 \n left(\n - frac1s_2 + mathcalR(s_2) mathcalH(chi_2) (f(chi_2) - 1)\n right)\n\nThe computation is made applying trapz (see the Trapz Julia package) to the integrand function integrand_ξ_GNCxLD_Newtonian_Lensing.\n\nInputs\n\ns1 and s2: comovign distances where the function must be evaluated\ny: the cosine of the angle between the two points P1 and P2\ncosmo::Cosmology: cosmology to be used in this computation\n\nOptional arguments\n\nen::Float64 = 1e6: just a float number used in order to deal better with small numbers;\nN_χs::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ1) and (0, s1) (for χ2); it has been checked that with N_χs ≥ 50 the result is stable.\n\nSee also: integrand_ξ_GNCxLD_Newtonian_Lensing, int_on_mu_Newtonian_Lensing integral_on_mu, ξ_GNC_multipole\n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations/#GaPSE.ξ_GNCxLD_Newtonian_LocalGP","page":"GNCxLD","title":"GaPSE.ξ_GNCxLD_Newtonian_LocalGP","text":" ξ_GNCxLD_Newtonian_LocalGP(P1::Point, P2::Point, y, cosmo::Cosmology) :: Float64\n\nReturn the LocalGP-LocalGP cross-correlation function concerning the perturbed luminosity distance, defined as follows:\n\nxi^v_parallelphi (s_1 s_2 costheta) = \n frac32 a(s_2) mathcalH(s_1) f(s_1) D(s_1)\n mathcalR(s_1) mathcalH_0^2 Omega_M0 D(s_2)\n (1 + mathcalR(s_2)) (s_2costheta - s_1) s^2 I^3_1(s)\n\nwhere mathcalH = a H, y = costheta = hatmathbfs_1 cdot hatmathbfs_2 and :\n\nI^n_l(s) = int_0^infty fracmathrmdq2pi^2 q^2 P(q) fracj_l(qs)(q s)^n\n\nInputs\n\nP1::Point and P2::Point: Point where the CF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on)\ny: the cosine of the angle between the two points P1 and P2\ncosmo::Cosmology: cosmology to be used in this computation\n\nSee also: Point, Cosmology\n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations/#GaPSE.ξ_GNCxLD_Newtonian_IntegratedGP","page":"GNCxLD","title":"GaPSE.ξ_GNCxLD_Newtonian_IntegratedGP","text":" ξ_GNCxLD_Newtonian_IntegratedGP(s1, s2, y, cosmo::Cosmology;\n en::Float64 = 1e6, N_χs::Int = 100):: Float64\n\nReturn the Doppler-LocalGP cross-correlation function xi^v_parallelintphi (s_1 s_2 costheta) concerning the perturbed luminosity distance, defined as follows:\n\nxi^v_parallelintphi (s_1 s_2 costheta) = \n 3 mathcalH(s_1) f(s_1) D(s_1) mathcalH_0^2 Omega_M0 mathcalR(s_1) \n int_0^s_2 mathrmdchi_2 J_31 I^3_1(chi)\n\nwhere mathcalH = a H, chi = sqrts_1^2 + chi_2^2 - 2 s_1 chi_2 costheta, y = costheta = hatmathbfs_1 cdot hatmathbfs_2) and:\n\nJ_31 = \n fracD(chi_2) (s_1 - chi_2 costheta)a(chi_2) chi^2 \n left(\n - frac1s_2 + mathcalR(s_2) mathcalH(chi_2) (f(chi_2) - 1)\n right)\n\nThe computation is made applying trapz (see the Trapz Julia package) to the integrand function integrand_ξ_GNCxLD_Newtonian_IntegratedGP.\n\nInputs\n\ns1 and s2: comovign distances where the function must be evaluated\ny: the cosine of the angle between the two points P1 and P2\ncosmo::Cosmology: cosmology to be used in this computation\n\nOptional arguments\n\nen::Float64 = 1e6: just a float number used in order to deal better with small numbers;\nN_χs::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ1) and (0, s1) (for χ2); it has been checked that with N_χs ≥ 50 the result is stable.\n\nSee also: integrand_ξ_GNCxLD_Newtonian_IntegratedGP, int_on_mu_Newtonian_IntegratedGP integral_on_mu, ξ_GNC_multipole\n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations/#GaPSE.ξ_GNCxLD_Doppler_Doppler","page":"GNCxLD","title":"GaPSE.ξ_GNCxLD_Doppler_Doppler","text":" ξ_GNCxLD_Doppler_Doppler(P1::Point, P2::Point, y, cosmo::Cosmology) :: Float64\n\n ξ_GNCxLD_Doppler_Doppler(s1, s2, y, cosmo::Cosmology) = \n ξ_GNCxLD_Doppler_Doppler(Point(s1, cosmo), Point(s2, cosmo), y, cosmo)\n\nReturn the Doppler auto-correlation function concerning the perturbed luminosity distance, defined as follows:\n\nxi^v_parallelv_parallel (s_1 s_2 costheta) \n= D_1 D_2 f_1 f_2 mathcalH_1 mathcalH_2 mathcalR_1 mathcalR_2 \n(J_00 I^0_0(s) + J_02I^0_2(s) + J_04I^0_4(s) + J_20I^2_0(s))\n\nwhere D_1 = D(s_1), D_2 = D(s_2) and so on, mathcalH = a H, y = costheta = hatmathbfs_1 cdot hatmathbfs_2 and the J coefficients are given by:\n\nbeginalign*\n J_00 (s_1 s_2 y) = frac145 (y^2 s_1 s_2 - 2y(s_1^2 + s_2^2) + 3s_1 s_2) \n J_02 (s_1 s_2 y) = frac263 (y^2 s_1 s_2 - 2y(s_1^2 + s_2^2) + 3s_1 s_2) \n J_04 (s_1 s_2 y) = frac1105 (y^2 s_1 s_2 - 2y(s_1^2 + s_2^2) + 3s_1 s_2) \n J_20 (s_1 s_2 y) = frac13 y s^2\nendalign*\n\nInputs\n\nP1::Point and P2::Point: Point where the CF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on)\ny: the cosine of the angle between the two points P1 and P2\ncosmo::Cosmology: cosmology to be used in this computation\n\nSee also: Point, Cosmology\n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations/#GaPSE.ξ_GNCxLD_Doppler_Lensing","page":"GNCxLD","title":"GaPSE.ξ_GNCxLD_Doppler_Lensing","text":" ξ_GNCxLD_Doppler_Lensing(s1, s2, y, cosmo::Cosmology;\n en::Float64 = 1e6, N_χs::Int = 100):: Float64\n\nReturn the Lensing-Doppler cross-correlation function xi^kappa v_parallel (s_1 s_2 costheta) concerning the perturbed luminosity distance, defined as follows:\n\nxi^kappa v_parallel (s_1 s_2 costheta) = \n mathcalH_0^2 Omega_M0 D(s_2) f(s_2) mathcalH(s_2) mathcalR(s_2) \n int_0^s_1 mathrmd chi_1 \n frac D(chi_1) (chi_1 - s_1) a(chi_1) s_1 \n left(\n J_00 I^0_0(Deltachi_1) + J_02 I^0_2(Deltachi_1) \n + J_04 I^0_4(Deltachi_1) + J_20 I^2_0(Deltachi_1)\n right)\n\nwhere mathcalH = a H, Deltachi_1= sqrtchi_1^2 + s_2^2 - 2 chi_1 s_2 costheta, y = costheta = hatmathbfs_1 cdot hatmathbfs_2) and the J coefficients are given by:\n\nbeginalign*\n J_00 = frac115(chi_1^2 y + chi_1(4 y^2 - 3) s_2 - 2 y s_2^2) \n J_02 = frac142 Deltachi_1^2 \n (4 chi_1^4 y + 4 chi_1^3 (2 y^2 - 3) s_2 + chi_1^2 y (11 - 23 y^2) s_2^2 + \n chi_1 (23 y^2 - 3) s_2^3 - 8 y s_2^4) \n J_04 = frac170 Deltachi_1^2\n (2 chi_1^4 y + 2 chi_1^3 (2y^2 - 3) s_2 - chi_1^2 y (y^2 + 5) s_2^2 + \n chi_1 (y^2 + 9) s_2^3 - 4 y s_2^4) \n J_20 = y Deltachi_1^2\nendalign*\n\nThe computation is made applying trapz (see the Trapz Julia package) to the integrand function integrand_ξ_LD_GNC-LD_Doppler_Lensing.\n\nInputs\n\ns1 and s2: comovign distances where the function must be evaluated\ny: the cosine of the angle between the two points P1 and P2\ncosmo::Cosmology: cosmology to be used in this computation\n\nOptional arguments\n\nen::Float64 = 1e6: just a float number used in order to deal better with small numbers;\nΔχ_min::Float64 = 1e-6 : when Deltachi = sqrtchi_1^2 + chi_2^2 - 2 chi_1 chi_2 y to 0^+, some I_ell^n term diverges, but the overall parenthesis has a known limit:\n lim_chito0^+ (J_00 I^0_0(chi) + J_02 I^0_2(chi) + \n J_31 I^3_1(chi) + J_22 I^2_2(chi)) = \n frac415 (5 sigma_2 + frac23 σ_0 s_1^2 chi_2^2)\nSo, when it happens that chi Deltachi_mathrmmin, the function considers this limit as the result of the parenthesis instead of calculating it in the normal way; it prevents computational divergences.\nN_χs::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ2) and (0, s1) (for χ2); it has been checked that with N_χs ≥ 50 the result is stable.\n\nSee also: integrand_ξ_GNCxLD_Doppler_Lensing, int_on_mu_Lensing_Doppler integral_on_mu, ξ_LD_multipole\n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations/#GaPSE.ξ_GNCxLD_Doppler_LocalGP","page":"GNCxLD","title":"GaPSE.ξ_GNCxLD_Doppler_LocalGP","text":" ξ_GNCxLD_Doppler_LocalGP(P1::Point, P2::Point, y, cosmo::Cosmology) :: Float64\n\nReturn the Doppler-LocalGP cross-correlation function concerning the perturbed luminosity distance, defined as follows:\n\nxi^v_parallelphi (s_1 s_2 costheta) = \n frac32 a(s_2) mathcalH(s_1) f(s_1) D(s_1)\n mathcalR(s_1) mathcalH_0^2 Omega_M0 D(s_2)\n (1 + mathcalR(s_2)) (s_2costheta - s_1) s^2 I^3_1(s)\n\nwhere mathcalH = a H, y = costheta = hatmathbfs_1 cdot hatmathbfs_2 and :\n\nI^n_l(s) = int_0^infty fracmathrmdq2pi^2 q^2 P(q) fracj_l(qs)(q s)^n\n\nInputs\n\nP1::Point and P2::Point: Point where the CF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on)\ny: the cosine of the angle between the two points P1 and P2\ncosmo::Cosmology: cosmology to be used in this computation\n\nSee also: Point, Cosmology\n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations/#GaPSE.ξ_GNCxLD_Doppler_IntegratedGP","page":"GNCxLD","title":"GaPSE.ξ_GNCxLD_Doppler_IntegratedGP","text":" ξ_GNCxLD_Doppler_IntegratedGP(s1, s2, y, cosmo::Cosmology;\n en::Float64 = 1e6, N_χs::Int = 100):: Float64\n\nReturn the Doppler-LocalGP cross-correlation function xi^v_parallelintphi (s_1 s_2 costheta) concerning the perturbed luminosity distance, defined as follows:\n\nxi^v_parallelintphi (s_1 s_2 costheta) = \n 3 mathcalH(s_1) f(s_1) D(s_1) mathcalH_0^2 Omega_M0 mathcalR(s_1) \n int_0^s_2 mathrmdchi_2 J_31 I^3_1(chi)\n\nwhere mathcalH = a H, chi = sqrts_1^2 + chi_2^2 - 2 s_1 chi_2 costheta, y = costheta = hatmathbfs_1 cdot hatmathbfs_2) and:\n\nJ_31 = \n fracD(chi_2) (s_1 - chi_2 costheta)a(chi_2) chi^2 \n left(\n - frac1s_2 + mathcalR(s_2) mathcalH(chi_2) (f(chi_2) - 1)\n right)\n\nThe computation is made applying trapz (see the Trapz Julia package) to the integrand function integrand_ξ_GNCxLD_Doppler_IntegratedGP.\n\nInputs\n\ns1 and s2: comovign distances where the function must be evaluated\ny: the cosine of the angle between the two points P1 and P2\ncosmo::Cosmology: cosmology to be used in this computation\n\nOptional arguments\n\nen::Float64 = 1e6: just a float number used in order to deal better with small numbers;\nN_χs::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ1) and (0, s1) (for χ2); it has been checked that with N_χs ≥ 50 the result is stable.\n\nSee also: integrand_ξ_GNCxLD_Doppler_IntegratedGP, int_on_mu_Doppler_IntegratedGP integral_on_mu, ξ_LD_multipole\n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations/#GaPSE.ξ_GNCxLD_Lensing_Doppler","page":"GNCxLD","title":"GaPSE.ξ_GNCxLD_Lensing_Doppler","text":" ξ_GNCxLD_Lensing_Doppler(s1, s2, y, cosmo::Cosmology;\n en::Float64 = 1e6, N_χs::Int = 100):: Float64\n\nReturn the Lensing-Doppler cross-correlation function xi^kappa v_parallel (s_1 s_2 costheta) concerning the perturbed luminosity distance, defined as follows:\n\nxi^kappa v_parallel (s_1 s_2 costheta) = \n mathcalH_0^2 Omega_M0 D(s_2) f(s_2) mathcalH(s_2) mathcalR(s_2) \n int_0^s_1 mathrmd chi_1 \n frac D(chi_1) (chi_1 - s_1) a(chi_1) s_1 \n left(\n J_00 I^0_0(Deltachi_1) + J_02 I^0_2(Deltachi_1) \n + J_04 I^0_4(Deltachi_1) + J_20 I^2_0(Deltachi_1)\n right)\n\nwhere mathcalH = a H, Deltachi_1= sqrtchi_1^2 + s_2^2 - 2 chi_1 s_2 costheta, y = costheta = hatmathbfs_1 cdot hatmathbfs_2) and the J coefficients are given by:\n\nbeginalign*\n J_00 = frac115(chi_1^2 y + chi_1(4 y^2 - 3) s_2 - 2 y s_2^2) \n J_02 = frac142 Deltachi_1^2 \n (4 chi_1^4 y + 4 chi_1^3 (2 y^2 - 3) s_2 + chi_1^2 y (11 - 23 y^2) s_2^2 + \n chi_1 (23 y^2 - 3) s_2^3 - 8 y s_2^4) \n J_04 = frac170 Deltachi_1^2\n (2 chi_1^4 y + 2 chi_1^3 (2y^2 - 3) s_2 - chi_1^2 y (y^2 + 5) s_2^2 + \n chi_1 (y^2 + 9) s_2^3 - 4 y s_2^4) \n J_20 = y Deltachi_1^2\nendalign*\n\nThe computation is made applying trapz (see the Trapz Julia package) to the integrand function integrand_ξ_LD_LD_Lensing_Doppler.\n\nInputs\n\ns1 and s2: comovign distances where the function must be evaluated\ny: the cosine of the angle between the two points P1 and P2\ncosmo::Cosmology: cosmology to be used in this computation\n\nOptional arguments\n\nen::Float64 = 1e6: just a float number used in order to deal better with small numbers;\nΔχ_min::Float64 = 1e-6 : when Deltachi = sqrtchi_1^2 + chi_2^2 - 2 chi_1 chi_2 y to 0^+, some I_ell^n term diverges, but the overall parenthesis has a known limit:\n lim_chito0^+ (J_00 I^0_0(chi) + J_02 I^0_2(chi) + \n J_31 I^3_1(chi) + J_22 I^2_2(chi)) = \n frac415 (5 sigma_2 + frac23 σ_0 s_1^2 chi_2^2)\nSo, when it happens that chi Deltachi_mathrmmin, the function considers this limit as the result of the parenthesis instead of calculating it in the normal way; it prevents computational divergences.\nN_χs::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ1) and (0, s1) (for χ2); it has been checked that with N_χs ≥ 50 the result is stable.\n\nSee also: integrand_ξ_GNCxLD_Lensing_Doppler, int_on_mu_Lensing_Doppler integral_on_mu, ξ_LD_multipole\n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations/#GaPSE.ξ_GNCxLD_Lensing_Lensing","page":"GNCxLD","title":"GaPSE.ξ_GNCxLD_Lensing_Lensing","text":" ξ_GNCxLD_Lensing_Lensing(P1::Point, P2::Point, y, cosmo::Cosmology;\n en::Float64 = 1e6,\n N_χs::Int = 100) :: Float64\n\n ξ_GNCxLD_Lensing_Lensing(s1, s2, y, cosmo::Cosmology; kwargs...) = \n ξ_GNCxLD_Lensing_Lensing(Point(s1, cosmo), Point(s2, cosmo), y, cosmo; kwargs...)\n\nReturn the Lensing auto-correlation function xi^kappakappa (s_1 s_2 costheta) concerning the perturbed luminosity distance, defined as follows:\n\nxi^kappakappa (s_1 s_2 costheta) = \nint_0^s_1 mathrmd chi_1 int_0^s_2 mathrmd chi_2 \nfrac12\nfrac\n mathcalH_0^4 Omega_ mathrmM0^2 D_1 D_2 (chi_1 - s_1)(chi_2 - s_2)\n\n s_1 s_2 a(chi_1) a(chi_2) \n(J_00 I^0_0(chi) + J_02 I^0_2(chi) + \n J_31 I^3_1(chi) + J_22 I^2_2(chi))\n\nwhere D_1 = D(chi_1), D_2 = D(chi_2) and so on, mathcalH = a H, chi = sqrtchi_1^2 + chi_2^2 - 2chi_1chi_2costheta, y = costheta = hatmathbfs_1 cdot hatmathbfs_2) and the J coefficients are given by \n\nbeginalign*\n J_00 = - frac3 chi_1^2 chi_2^24 chi^4 (y^2 - 1) \n (8 y (chi_1^2 + chi_2^2) - 9 chi_1 chi_2 y^2 - 7 chi_1 chi_2) \n J_02 = - frac3 chi_1^2 chi_2^22 chi^4 (y^2 - 1)\n (4 y (chi_1^2 + chi_2^2) - 3 chi_1 chi_2 y^2 - 5 chi_1 chi_2) \n J_31 = 9 y chi^2 \n J_22 = frac9 chi_1 chi_24 chi^4\n 2 (chi_1^4 + chi_2^4) (7 y^2 - 3) \n - 16 y chi_1 chi_2 (chi_1^2 + chi_2^2) (y^2+1) \n + chi_1^2 chi_2^2 (11 y^4 + 14 y^2 + 23)\nendalign*\n\nThe computation is made applying trapz (see the Trapz Julia package) to the integrand function integrand_ξ_GNCxLD_Lensing_Lensing.\n\nInputs\n\ns1 and s2: comovign distances where the function must be evaluated\ny: the cosine of the angle between the two points P1 and P2\ncosmo::Cosmology: cosmology to be used in this computation\n\nOptional arguments\n\nen::Float64 = 1e6: just a float number used in order to deal better with small numbers;\nΔχ_min::Float64 = 1e-6 : when Deltachi = sqrtchi_1^2 + chi_2^2 - 2 chi_1 chi_2 y to 0^+, some I_ell^n term diverges, but the overall parenthesis has a known limit:\n lim_chito0^+ (J_00 I^0_0(chi) + J_02 I^0_2(chi) + \n J_31 I^3_1(chi) + J_22 I^2_2(chi)) = \n frac415 (5 sigma_2 + frac23 σ_0 s_1^2 chi_2^2)\nSo, when it happens that chi Deltachi_mathrmmin, the function considers this limit as the result of the parenthesis instead of calculating it in the normal way; it prevents computational divergences.\nN_χs::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ1) and (0, s1) (for χ2); it has been checked that with N_χs ≥ 50 the result is stable.\n\nSee also: integrand_ξ_GNCxLD_Lensing_Lensing, integrand_on_mu_Lensing integral_on_mu, ξ_GNC_multipole\n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations/#GaPSE.ξ_GNCxLD_Lensing_LocalGP","page":"GNCxLD","title":"GaPSE.ξ_GNCxLD_Lensing_LocalGP","text":" ξ_GNCxLD_Lensing_LocalGP(s1, s2, y, cosmo::Cosmology;\n en::Float64 = 1e6, N_χs::Int = 100):: Float64\n\nReturn the Lensing-LocalGP cross-correlation function xi^kappa phi (s_1 s_2 costheta) concerning the perturbed luminosity distance, defined as follows:\n\nxi^kappa phi (s_1 s_2 costheta) = \n frac\n 9 mathcalH_0^4 Omega_M0^2 D(s_2) (1 + mathcalR(s_2)) s_2\n 4 a(s_2) s_1 \n int_0^s_1 mathrmdchi_1 fracD(chi_1)(s_1 - chi_1) a(chi_1)\n left( J_31 I^3_1(Deltachi_1) + J_22 I^2_2(Deltachi_1) right)\n\nwhere mathcalH = a H, Deltachi_1 = sqrtchi_1^2 + s_2^2 - 2 chi_1 s_2costheta, y = costheta = hatmathbfs_1 cdot hatmathbfs_2) and the J coefficients are given by \n\nbeginalign*\n J_31 = -2 y Deltachi_1^2 \n J_22 = chi_1 s_2 (1 - y^2)\nendalign*\n\nThe computation is made applying trapz (see the Trapz Julia package) to the integrand function integrand_ξ_GNCxLD_Lensing_LocalGP.\n\nInputs\n\ns1 and s2: comovign distances where the function must be evaluated\ny: the cosine of the angle between the two points P1 and P2\ncosmo::Cosmology: cosmology to be used in this computation\n\nOptional arguments\n\nen::Float64 = 1e6: just a float number used in order to deal better with small numbers;\nN_χs::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ1) and (0, s1) (for χ2); it has been checked that with N_χs ≥ 50 the result is stable.\n\nSee also: integrand_ξ_GNCxLD_Lensing_LocalGP, int_on_mu_Lensing_LocalGP integral_on_mu, ξ_LD_multipole\n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations/#GaPSE.ξ_GNCxLD_Lensing_IntegratedGP","page":"GNCxLD","title":"GaPSE.ξ_GNCxLD_Lensing_IntegratedGP","text":" ξ_GNCxLD_Lensing_IntegratedGP(s1, s2, y, cosmo::Cosmology;\n en::Float64 = 1e6,\n N_χs::Int = 100) :: Float64\n\nReturn theLensing-IntegratedGP cross-correlation function xi^kappaintphi (s_1 s_2 costheta) concerning the perturbed luminosity distance, defined as follows:\n\nxi^kappaintphi (s_1 s_2 costheta) = \n frac92mathcalH_0^4Omega_M0^2 \n mathrmdchi_1 int_0^s_2 mathrmdchi_2 \n fracD(chi_1)D(chi_2)chi_2(s_1 - chi_1)s_1a(chi_1)a(chi_2) \n left(mathcalH(chi_2)(f(chi_2) - 1)mathcalR(s_2) -frac1s_2 right)\n left( J_31 I^3_1(chi) + J_22 I^2_2(chi) right)\nendsplit\n\nwhere D_1 = D(chi_1), D_2 = D(chi_2) and so on, mathcalH = a H, chi = sqrtchi_1^2 + chi_2^2 - 2chi_1chi_2costheta, y = costheta = hatmathbfs_1 cdot hatmathbfs_2) and the J coefficients are given by \n\nbeginalign*\n J_31 = -2ychi^2 \n J_22 = chi_1chi_2(1-y^2)\nendalign*\n\nThe computation is made applying trapz (see the Trapz Julia package) to the integrand function integrand_ξ_GNCxLD_Lensing_IntegratedGP.\n\nInputs\n\ns1 and s2: comovign distances where the function must be evaluated\ny: the cosine of the angle between the two points P1 and P2\ncosmo::Cosmology: cosmology to be used in this computation\n\nOptional arguments\n\nen::Float64 = 1e6: just a float number used in order to deal better with small numbers;\nN_χs::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ1) and (0, s1) (for χ2); it has been checked that with N_χs ≥ 50 the result is stable.\n\nSee also: integrand_ξ_GNCxLD_Lensing_IntegratedGP, integrand_on_mu_Lensing_IntegratedGP integral_on_mu, ξ_LD_multipole\n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations/#GaPSE.ξ_GNCxLD_LocalGP_Doppler","page":"GNCxLD","title":"GaPSE.ξ_GNCxLD_LocalGP_Doppler","text":" ξ_GNCxLD_LocalGP_Doppler(P1::Point, P2::Point, y, cosmo::Cosmology) :: Float64\n\nReturn the Doppler-LocalGP cross-correlation function concerning the perturbed luminosity distance, defined as follows:\n\nxi^v_parallelphi (s_1 s_2 costheta) = \n frac32 a(s_2) mathcalH(s_1) f(s_1) D(s_1)\n mathcalR(s_1) mathcalH_0^2 Omega_M0 D(s_2)\n (1 + mathcalR(s_2)) (s_2costheta - s_1) s^2 I^3_1(s)\n\nwhere mathcalH = a H, y = costheta = hatmathbfs_1 cdot hatmathbfs_2 and :\n\nI^n_l(s) = int_0^infty fracmathrmdq2pi^2 q^2 P(q) fracj_l(qs)(q s)^n\n\nInputs\n\nP1::Point and P2::Point: Point where the CF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on)\ny: the cosine of the angle between the two points P1 and P2\ncosmo::Cosmology: cosmology to be used in this computation\n\nSee also: Point, Cosmology\n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations/#GaPSE.ξ_GNCxLD_LocalGP_Lensing","page":"GNCxLD","title":"GaPSE.ξ_GNCxLD_LocalGP_Lensing","text":" ξ_GNCxLD_LocalGP_Lensing(s1, s2, y, cosmo::Cosmology;\n en::Float64 = 1e6, N_χs::Int = 100):: Float64\n\nReturn the Lensing-LocalGP cross-correlation function xi^kappa phi (s_1 s_2 costheta) concerning the perturbed luminosity distance, defined as follows:\n\nxi^kappa phi (s_1 s_2 costheta) = \n frac\n 9 mathcalH_0^4 Omega_M0^2 D(s_2) (1 + mathcalR(s_2)) s_2\n 4 a(s_2) s_1 \n int_0^s_1 mathrmdchi_1 fracD(chi_1)(s_1 - chi_1) a(chi_1)\n left( J_31 I^3_1(Deltachi_1) + J_22 I^2_2(Deltachi_1) right)\n\nwhere mathcalH = a H, Deltachi_1 = sqrtchi_1^2 + s_2^2 - 2 chi_1 s_2costheta, y = costheta = hatmathbfs_1 cdot hatmathbfs_2) and the J coefficients are given by \n\nbeginalign*\n J_31 = -2 y Deltachi_1^2 \n J_22 = chi_1 s_2 (1 - y^2)\nendalign*\n\nThe computation is made applying trapz (see the Trapz Julia package) to the integrand function integrand_ξ_GNCxLD_LocalGP_Lensing.\n\nInputs\n\ns1 and s2: comovign distances where the function must be evaluated\ny: the cosine of the angle between the two points P1 and P2\ncosmo::Cosmology: cosmology to be used in this computation\n\nOptional arguments\n\nen::Float64 = 1e6: just a float number used in order to deal better with small numbers;\nN_χs::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ2) and (0, s1) (for χ2); it has been checked that with N_χs ≥ 50 the result is stable.\n\nSee also: integrand_ξ_GNCxLD_LocalGP_Lensing, int_on_mu_Lensing_LocalGP integral_on_mu, ξ_GNC_multipole\n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations/#GaPSE.ξ_GNCxLD_LocalGP_LocalGP","page":"GNCxLD","title":"GaPSE.ξ_GNCxLD_LocalGP_LocalGP","text":" ξ_GNCxLD_LocalGP_LocalGP(P1::Point, P2::Point, y, cosmo::Cosmology) :: Float64\n\n ξ_GNCxLD_LocalGP_LocalGP(s1, s2, y, cosmo::Cosmology) = \n ξ_GNCxLD_LocalGP_LocalGP(Point(s1, cosmo), Point(s2, cosmo), y, cosmo::Cosmology)\n\nReturn the local gravitational potential auto-correlation function concerning the perturbed luminosity distance, defined as follows:\n\nxi^phiphi (s_1 s_2 costheta) = \n frac9 mathcalH_0^4 Omega_M0^2 D(s_1) D(s_2)s^44 a(s_1) a(s_2)\n (1 + mathcalR_1 + mathcalR_2 + mathcalR_1mathcalR_2)\n tildeI^4_0(s)\n\nwhere D_1 = D(s_1), D_2 = D(s_2) and so on, mathcalH = a H, y = costheta = hatmathbfs_1 cdot hatmathbfs_2 and:\n\ntildeI^4_0 (s) = int_0^infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(q s) - 1(q s)^4\n\nInputs\n\nP1::Point and P2::Point: Point where the CF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on)\ny: the cosine of the angle between the two points P1 and P2\ncosmo::Cosmology: cosmology to be used in this computation\n\nSee also: Point, Cosmology\n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations/#GaPSE.ξ_GNCxLD_LocalGP_IntegratedGP","page":"GNCxLD","title":"GaPSE.ξ_GNCxLD_LocalGP_IntegratedGP","text":" ξ_GNCxLD_LocalGP_IntegratedGP(s1, s2, y, cosmo::Cosmology;\n en::Float64 = 1e6, N_χs::Int = 100):: Float64\n\nReturn the LocalGP-IntegratedGP cross-correlation function xi^v_parallelint phi (s_1 s_2 costheta) concerning the perturbed luminosity distance, defined as follows:\n\nxi^v_parallelint phi (s_1 s_2 costheta) = \n frac9 mathcalH_0^4 Omega_M0^2 D(s_1) (mathcalR(s_1) +1)2 a(s_1) \n int_0^s_2 mathrmdchi_2 fracD(chi_2) Deltachi_2^4 a(chi_2)\n left(\n mathcalH(chi_2)( f(chi_2) - 1) mathcalR(s_2) - frac1s_2\n right) tildeI^4_0(Deltachi_2)\n\nwhere mathcalH = a H, Deltachi_2 = sqrts_1^2 + chi_2^2 - 2 s_1 chi_2 costheta, y = costheta = hatmathbfs_1 cdot hatmathbfs_2).\n\nThe computation is made applying trapz (see the Trapz Julia package) to the integrand function integrand_ξ_GNCxLD_LocalGP_IntegratedGP.\n\nInputs\n\ns1 and s2: comovign distances where the function must be evaluated\ny: the cosine of the angle between the two points P1 and P2\ncosmo::Cosmology: cosmology to be used in this computation\n\nOptional arguments\n\nen::Float64 = 1e6: just a float number used in order to deal better with small numbers;\nN_χs::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ1) and (0, s1) (for χ2); it has been checked that with N_χs ≥ 50 the result is stable.\n\nSee also: integrand_ξ_GNCxLD_LocalGP_IntegratedGP, int_on_mu_LocalGP_IntegratedGP integral_on_mu, ξ_GNCxLD_multipole\n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations/#GaPSE.ξ_GNCxLD_IntegratedGP_Doppler","page":"GNCxLD","title":"GaPSE.ξ_GNCxLD_IntegratedGP_Doppler","text":" ξ_GNCxLD_IntegratedGP_Doppler(s1, s2, y, cosmo::Cosmology;\n en::Float64 = 1e6, N_χs::Int = 100):: Float64\n\nReturn the Doppler-LocalGP cross-correlation function xi^v_parallelintphi (s_1 s_2 costheta) concerning the perturbed luminosity distance, defined as follows:\n\nxi^v_parallelintphi (s_1 s_2 costheta) = \n 3 mathcalH(s_1) f(s_1) D(s_1) mathcalH_0^2 Omega_M0 mathcalR(s_1) \n int_0^s_2 mathrmdchi_2 J_31 I^3_1(chi)\n\nwhere mathcalH = a H, chi = sqrts_1^2 + chi_2^2 - 2 s_1 chi_2 costheta, y = costheta = hatmathbfs_1 cdot hatmathbfs_2) and:\n\nJ_31 = \n fracD(chi_2) (s_1 - chi_2 costheta)a(chi_2) chi^2 \n left(\n - frac1s_2 + mathcalR(s_2) mathcalH(chi_2) (f(chi_2) - 1)\n right)\n\nThe computation is made applying trapz (see the Trapz Julia package) to the integrand function integrand_ξ_GNCxLD_IntegratedGP_Doppler.\n\nInputs\n\ns1 and s2: comovign distances where the function must be evaluated\ny: the cosine of the angle between the two points P1 and P2\ncosmo::Cosmology: cosmology to be used in this computation\n\nOptional arguments\n\nen::Float64 = 1e6: just a float number used in order to deal better with small numbers;\nN_χs::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ1) and (0, s1) (for χ1); it has been checked that with N_χs ≥ 50 the result is stable.\n\nSee also: integrand_ξ_GNCxLD_IntegratedGP_Doppler, int_on_mu_Doppler_IntegratedGP integral_on_mu, ξ_LD_multipole\n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations/#GaPSE.ξ_GNCxLD_IntegratedGP_Lensing","page":"GNCxLD","title":"GaPSE.ξ_GNCxLD_IntegratedGP_Lensing","text":" ξ_GNCxLD_IntegratedGP_Lensing(s1, s2, y, cosmo::Cosmology;\n en::Float64 = 1e6,\n N_χs::Int = 100) :: Float64\n\nReturn theLensing-IntegratedGP cross-correlation function xi^kappaintphi (s_1 s_2 costheta) concerning the perturbed luminosity distance, defined as follows:\n\nxi^kappaintphi (s_1 s_2 costheta) = \n frac92mathcalH_0^4Omega_M0^2 \n mathrmdchi_1 int_0^s_2 mathrmdchi_2 \n fracD(chi_1)D(chi_2)chi_2(s_1 - chi_1)s_1a(chi_1)a(chi_2) \n left(mathcalH(chi_2)(f(chi_2) - 1)mathcalR(s_2) -frac1s_2 right)\n left( J_31 I^3_1(chi) + J_22 I^2_2(chi) right)\nendsplit\n\nwhere D_1 = D(chi_1), D_2 = D(chi_2) and so on, mathcalH = a H, chi = sqrtchi_1^2 + chi_2^2 - 2chi_1chi_2costheta, y = costheta = hatmathbfs_1 cdot hatmathbfs_2) and the J coefficients are given by \n\nbeginalign*\n J_31 = -2ychi^2 \n J_22 = chi_1chi_2(1-y^2)\nendalign*\n\nThe computation is made applying trapz (see the Trapz Julia package) to the integrand function integrand_ξ_GNCxLD_IntegratedGP_Lensing.\n\nInputs\n\ns1 and s2: comovign distances where the function must be evaluated\ny: the cosine of the angle between the two points P1 and P2\ncosmo::Cosmology: cosmology to be used in this computation\n\nOptional arguments\n\nen::Float64 = 1e6: just a float number used in order to deal better with small numbers;\nN_χs::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ1) and (0, s1) (for χ2); it has been checked that with N_χs ≥ 50 the result is stable.\n\nSee also: integrand_ξ_GNCxLD_IntegratedGP_Lensing, integrand_on_mu_Lensing_IntegratedGP integral_on_mu, ξ_LD_multipole\n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations/#GaPSE.ξ_GNCxLD_IntegratedGP_LocalGP","page":"GNCxLD","title":"GaPSE.ξ_GNCxLD_IntegratedGP_LocalGP","text":" ξ_GNCxLD_IntegratedGP_LocalGP(s1, s2, y, cosmo::Cosmology;\n en::Float64 = 1e6, N_χs::Int = 100):: Float64\n\nReturn the LocalGP-IntegratedGP cross-correlation function xi^v_parallelint phi (s_1 s_2 costheta) concerning the perturbed luminosity distance, defined as follows:\n\nxi^v_parallelint phi (s_1 s_2 costheta) = \n frac9 mathcalH_0^4 Omega_M0^2 D(s_1) (mathcalR(s_1) +1)2 a(s_1) \n int_0^s_2 mathrmdchi_2 fracD(chi_2) Deltachi_2^4 a(chi_2)\n left(\n mathcalH(chi_2)( f(chi_2) - 1) mathcalR(s_2) - frac1s_2\n right) tildeI^4_0(Deltachi_2)\n\nwhere mathcalH = a H, Deltachi_2 = sqrts_1^2 + chi_2^2 - 2 s_1 chi_2 costheta, y = costheta = hatmathbfs_1 cdot hatmathbfs_2).\n\nThe computation is made applying trapz (see the Trapz Julia package) to the integrand function integrand_ξ_GNCxLD_IntegratedGP_LocalGP.\n\nInputs\n\ns2 and s1: comovign distances where the function must be evaluated\ny: the cosine of the angle between the two points P1 and P2\ncosmo::Cosmology: cosmology to be used in this computation\n\nOptional arguments\n\nen::Float64 = 1e6: just a float number used in order to deal better with small numbers;\nN_χs::Int = 100: number of points to be used for sampling the integral along the ranges (0, s2) (for χ1) and (0, s2) (for χ1); it has been checked that with N_χs ≥ 50 the result is stable.\n\nSee also: integrand_ξ_GNCxLD_IntegratedGP_LocalGP, int_on_mu_LocalGP_IntegratedGP integral_on_mu, ξ_GNC_multipole\n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations/#GaPSE.ξ_GNCxLD_IntegratedGP_IntegratedGP","page":"GNCxLD","title":"GaPSE.ξ_GNCxLD_IntegratedGP_IntegratedGP","text":" ξ_GNCxLD_IntegratedGP_IntegratedGP(P1::Point, P2::Point, y, cosmo::Cosmology; \n en::Float64 = 1e10,\n N_χs::Int = 100) :: Float64\n\n ξ_GNCxLD_IntegratedGP_IntegratedGP(s1, s2, y, cosmo::Cosmology; kwargs...) = \n ξ_GNCxLD_IntegratedGP_IntegratedGP(Point(s1, cosmo), Point(s2, cosmo), y, cosmo; kwargs...)\n\nReturn the integrated gravitational potential auto-correlation function xi^intphiintphi(s_1 s_2 costheta) concerning the perturbed luminosity distance, defined as follows:\n\nxi^intphiintphi (s_1 s_2 costheta) = \n int_0^s_1 mathrmd chi_1 int_0^s_2mathrmd chi_2 \n J_40(s_1 s_2 y chi_1 chi_2) tildeI^4_0(chi)\n\nwhere chi = sqrtchi_1^2 + chi_2^2 - 2 chi_1 chi_2 y, y = costheta = hatmathbfs_1 cdot hatmathbfs_2 and:\n\nbeginsplit\n J_40(s_1 s_2 y chi_1 chi_2) = \n frac\n 9 mathcalH_0^4 Omega_M0^2 D(chi_1) D(chi_2) chi^4\n a(chi_1) a(chi_2) s_1 s_2 \n (s_2 mathcalH(chi_2) mathcalR(s_2) (f(chi_2)-1) - 1) \n (s_1 mathcalH(chi_1) mathcalR(s_1) (f(chi_1)-1) - 1)5pt\n tildeI^4_0 (s) = int_0^infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(q s) - 1(q s)^4\nendsplit\n\nand P(q) is the input power spectrum.\n\nThe computation is made applying trapz (see the Trapz Julia package) to the integrand function integrand_ξ_GNC_Lensing.\n\nInputs\n\ns1 and s2: comovign distances where the function must be evaluated\ny: the cosine of the angle between the two points P1 and P2\ncosmo::Cosmology: cosmology to be used in this computation\n\nOptional arguments\n\nen::Float64 = 1e10: just a float number used in order to deal better with small numbers.\nN_χs::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ1) and (0, s1) (for χ2); it has been checked that with N_χs ≥ 50 the result is stable.\n\nSee also: integrand_ξ_GNCxLD_IntegratedGP_IntegratedGP, integrand_on_mu_IntegratedGP integral_on_mu, ξ_GNC_multipole\n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations/#Two-Point-Cross-Correlation-Function-multipoles","page":"GNCxLD","title":"Two-Point Cross-Correlation Function multipoles","text":"","category":"section"},{"location":"GNCxLD_Correlations/","page":"GNCxLD","title":"GNCxLD","text":"GaPSE.integrand_ξ_GNCxLD_multipole\nGaPSE.ξ_GNCxLD_multipole\nGaPSE.map_ξ_GNCxLD_multipole\nGaPSE.print_map_ξ_GNCxLD_multipole","category":"page"},{"location":"GNCxLD_Correlations/#GaPSE.integrand_ξ_GNCxLD_multipole","page":"GNCxLD","title":"GaPSE.integrand_ξ_GNCxLD_multipole","text":" integrand_ξ_GNCxLD_multipole(s1, s, μ, effect::Function, cosmo::Cosmology;\n L::Int = 0, use_windows::Bool = true, kwargs...)\n\n integrand_ξ_GNCxLD_multipole(s1, s, μ, effect::String, cosmo::Cosmology; kwargs...)\n\nReturn the integrand on mu = hatmathbfs_1 cdot hatmathbfs of the chosen two-point cross correlation between a Galaxy Number Counts (GNC) effect and a perturbation of the Luminosity Distance (LD) term, i.e. the following function f(s_1 s mu):\n\n f_L(s_1 s mu) = xi left(s_1 s_2 yright) \n mathcalL_L(mu) times \n begincases \n frac1mathcalNmathcalF(s mu) quad mathrmuse_windows == true \n 1 quadquad mathrmuse_windows == false\n endcases\n\nwhere:\n\ns_2 = s_2(s_1 s mu) = sqrts_1^2 + s^2 + 2 s_1 s mu \ny = costheta = hatmathbfs_1 cdot hatmathbfs_2 = fracmu s + s_1s_2(s_1 s mu)\nxi is the corresponding GNCxLD TPCF effect\nmathcalL_L(mu) is the Legendre polynomial of order L\nmathcalF(s mu) is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)\nmathcalN is the integrated window function norm (check the documentation of WindowFIntegrated)\n\nIn the former method you have to pass as an input the GNCxLD effect function you want to integrate, while in the (recommended) latter one it's necessary to specify the name of the GNCxLD TPCF term among the following:\n\nnewton_doppler , newton_lensing , newton_localgp , newton_integratedgp , doppler_doppler , doppler_lensing , doppler_localgp , doppler_integratedgp , lensing_doppler , lensing_lensing , lensing_localgp , lensing_integratedgp , localgp_doppler , localgp_lensing , localgp_localgp , localgp_integratedgp , integratedgp_doppler , integratedgp_lensing , integratedgp_localgp , integratedgp_integratedgp ,\n\nto which correspond the following functions, respectively:\n\nξ_GNCxLD_Newtonian_Doppler , ξ_GNCxLD_Newtonian_Lensing , ξ_GNCxLD_Newtonian_LocalGP , ξ_GNCxLD_Newtonian_IntegratedGP , ξ_GNCxLD_Doppler_Doppler , ξ_GNCxLD_Doppler_Lensing , ξ_GNCxLD_Doppler_LocalGP , ξ_GNCxLD_Doppler_IntegratedGP , ξ_GNCxLD_Lensing_Doppler , ξ_GNCxLD_Lensing_Lensing , ξ_GNCxLD_Lensing_LocalGP , ξ_GNCxLD_Lensing_IntegratedGP , ξ_GNCxLD_LocalGP_Doppler , ξ_GNCxLD_LocalGP_Lensing , ξ_GNCxLD_LocalGP_LocalGP , ξ_GNCxLD_LocalGP_IntegratedGP , ξ_GNCxLD_IntegratedGP_Doppler , ξ_GNCxLD_IntegratedGP_Lensing , ξ_GNCxLD_IntegratedGP_LocalGP , ξ_GNCxLD_IntegratedGP_IntegratedGP ,\n\nInternally, the second method recall the first, so all the keyword arguments are in common.\n\nNote that these is an internal conversion of coordiate sistems from (s1, s, μ) to (s1, s2, y) thorugh the functions y and s2. The inverse relations are:\n\ns = s(s_1 s_2 y) = sqrts_1^2 + s_2^2 - 2 s_1 s_2 y\nmu = costheta = hatmathbfs_1 cdot hatmathbfs = fracy s_2 - s_1s(s_1 s_2 y).\n\nInputs\n\ns1: the comoving distance where must be evaluated the integral\ns: the comoving distance from s1 where must be evaluated the integral\nμ: the cosine between s1 and s where must be evaluated the integral\neffect::Function or effect::String : name/function you want to consider, among the ones inside GaPSE.GR_EFFECTS_GNCxLD/GaPSE.VEC_ξs_GNCxLD respectively.\ncosmo::Cosmology: cosmology to be used in this computation\n\nOptional arguments\n\nL::Int = 0: order of the Legendre polynomial to be used\nuse_windows::Bool = false: tells if the integrand must consider the two window function phi and mathcalF\nkwargs... : other keyword arguments that will be passed to the selected GR TPCF effect (ξ_GNCxLD_Doppler, ξ_GNCxLD_Lensing, ...)\n\nSee also: ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole, WindowFIntegrated, ϕ, Cosmology, y, s2, GR_EFFECTS_GNCxLD, GaPSE.VEC_ξs_GNCxLD\n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations/#GaPSE.ξ_GNCxLD_multipole","page":"GNCxLD","title":"GaPSE.ξ_GNCxLD_multipole","text":" ξ_GNCxLD_multipole(\n s1, s, effect::Function, cosmo::Cosmology;\n L::Int = 0, alg::Symbol = :lobatto, \n use_windows::Bool = true, \n N_lob::Int = 100, N_trap::Int = 200, \n atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,\n enhancer::Float64 = 1e6, \n kwargs...) ::Float64\n\n ξ_GNCxLD_multipole(s1, s, effect::String, cosmo::Cosmology; \n kwargs...) ::Float64\n\nEvaluate the multipole of order L of the chosen two-point cross correlation between a Galaxy Number Counts (GNC) effect and a perturbation of the Luminosity Distance (LD) term i.e. the following function xi_L(s_1 s):\n\n xi_L(s_1 s) = frac2 L + 12 int_-1^+1 mathrmdmu \n xi (s_1 s_2 costheta) mathcalL_L(mu) times\n begincases \n frac1mathcalNmathcalF(s mu) quad mathrmuse_windows == true \n 1 quadquad mathrmuse_windows == false\n endcases\n\nwhere:\n\ns_2 = s_2(s_1 s mu) = sqrts_1^2 + s^2 + 2 s_1 s mu \ny = costheta = hatmathbfs_1 cdot hatmathbfs_2 = fracmu s + s_1s_2(s_1 s mu)\nxi is the corresponding GNCxLD TPCF effect\nmathcalL_L(mu) is the Legendre polynomial of order L\nmathcalF(s mu) is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)\nmathcalN is the integrated window function norm (check the documentation of WindowFIntegrated) \n\nIn the former method you have to pass as an input the GNCxLD effect function you want to integrate, while in the (recommended) latter one it's necessary to specify the name of the GNCxLD TPCF term among the following:\n\nnewton_doppler , newton_lensing , newton_localgp , newton_integratedgp , doppler_doppler , doppler_lensing , doppler_localgp , doppler_integratedgp , lensing_doppler , lensing_lensing , lensing_localgp , lensing_integratedgp , localgp_doppler , localgp_lensing , localgp_localgp , localgp_integratedgp , integratedgp_doppler , integratedgp_lensing , integratedgp_localgp , integratedgp_integratedgp ,\n\nto which correspond the following functions:\n\nξ_GNCxLD_Newtonian_Doppler , ξ_GNCxLD_Newtonian_Lensing , ξ_GNCxLD_Newtonian_LocalGP , ξ_GNCxLD_Newtonian_IntegratedGP , ξ_GNCxLD_Doppler_Doppler , ξ_GNCxLD_Doppler_Lensing , ξ_GNCxLD_Doppler_LocalGP , ξ_GNCxLD_Doppler_IntegratedGP , ξ_GNCxLD_Lensing_Doppler , ξ_GNCxLD_Lensing_Lensing , ξ_GNCxLD_Lensing_LocalGP , ξ_GNCxLD_Lensing_IntegratedGP , ξ_GNCxLD_LocalGP_Doppler , ξ_GNCxLD_LocalGP_Lensing , ξ_GNCxLD_LocalGP_LocalGP , ξ_GNCxLD_LocalGP_IntegratedGP , ξ_GNCxLD_IntegratedGP_Doppler , ξ_GNCxLD_IntegratedGP_Lensing , ξ_GNCxLD_IntegratedGP_LocalGP , ξ_GNCxLD_IntegratedGP_IntegratedGP ,\n\nInternally, the second method recall the first, so all the keyword arguments are in common.\n\nNote that these is an internal conversion of coordiate sistems from (s1, s, μ) to (s1, s2, y) thorugh the functions y and s2. The inverse relations are:\n\ns = s(s_1 s_2 y) = sqrts_1^2 + s_2^2 - 2 s_1 s_2 y\nmu = costheta = hatmathbfs_1 cdot hatmathbfs = fracy s_2 - s_1s(s_1 s_2 y).\n\nInputs\n\ns1: the comoving distance where must be evaluated the integral\ns: the comoving distance from s1 where must be evaluated the integral\neffect::Function or effect::String : name/function you want to consider, among the ones inside GaPSE.GR_EFFECTS_GNCxLD/GaPSE.VEC_ξs_GNCxLD respectively.\ncosmo::Cosmology: cosmology to be used in this computation\n\nOptional arguments\n\nL::Int = 0: order of the Legendre polynomial to be used\nalg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):\n:quad -> the integration over mu will be preformed through the Julia function quadgk \nfrom the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n:trap -> the integration over mu will be preformed through the Julia function trapz \nfrom the Trapz.jl Julia package, that uses the simple trapezoidal rulae.\n:lobatto -> the integration over mu will be preformed through the Julia function gausslobatto \nfrom the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!\nuse_windows::Bool = false: tells if the integrand must consider the two window function phi and mathcalF\nN_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\nN_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\nkwargs... : other keyword arguments that will be passed to the selected GNCxLD TPCF effect (ξ_GNCxLD_Doppler, ξ_GNCxLD_Lensing, ...)\n\nSee also: integrand_ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole WindowFIntegrated, Cosmology, y, s2, GR_EFFECTS_GNCxLD, VEC_ξs_GNCxLD\n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations/#GaPSE.map_ξ_GNCxLD_multipole","page":"GNCxLD","title":"GaPSE.map_ξ_GNCxLD_multipole","text":" map_ξ_GNCxLD_multipole(cosmo::Cosmology,\n effect::Union{String,Function}, ss = nothing;\n s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,\n N_lob::Int = 100, N_trap::Int = 50,\n atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,\n enhancer::Float64=1e6, N_log::Int = 1000, \n pr::Bool = true,\n kwargs...) ::Tuple{Vector{Float64}, Vector{Float64}}\n\nEvaluate the multipole of order L of the chosen two-point cross correlation between a Galaxy Number Counts (GNC) effect and a perturbation of the Luminosity Distance (LD) term for all the comoving distance values stored inside ss. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). If s1 = nothing, it is set s1 = cosmo.s_eff.\n\nThe function evaluated is then the following xi_L(s_1 s):\n\n xi_L(s_1 s) = frac2 L + 12 int_-1^+1 mathrmdmu \n xi (s_1 s_2 costheta) mathcalL_L(mu) times\n begincases \n frac1mathcalNmathcalF(s mu) quad mathrmuse_windows == true \n 1 quadquad mathrmuse_windows == false\n endcases\n\nwhere:\n\ns_2 = s_2(s_1 s mu) = sqrts_1^2 + s^2 + 2 s_1 s mu \ny = costheta = hatmathbfs_1 cdot hatmathbfs_2 = fracmu s + s_1s_2(s_1 s mu)\nxi is the corresponding GNCxLD TPCF effect\nmathcalL_L(mu) is the Legendre polynomial of order L\nmathcalF(s mu) is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)\nmathcalN is the integrated window function norm (check the documentation of WindowFIntegrated) \n\nNote that these is an internal conversion of coordiate sistems from (s1, s, μ) to (s1, s2, y) thorugh the functions y and s2. The inverse relations are:\n\ns = s(s_1 s_2 y) = sqrts_1^2 + s_2^2 - 2 s_1 s_2 y\nmu = costheta = hatmathbfs_1 cdot hatmathbfs = fracy s_2 - s_1s(s_1 s_2 y).\n\nInputs\n\ncosmo::Cosmology : cosmology to be used in this computation\neffect::Union{String,Function} : the GR effect TPCF you want to consider; you may specify the name of the effect as one of the following strings (recommended):\nnewton_doppler , newton_lensing , newton_localgp , newton_integratedgp , doppler_doppler , doppler_lensing , doppler_localgp , doppler_integratedgp , lensing_doppler , lensing_lensing , lensing_localgp , lensing_integratedgp , localgp_doppler , localgp_lensing , localgp_localgp , localgp_integratedgp , integratedgp_doppler , integratedgp_lensing , integratedgp_localgp , integratedgp_integratedgp ,\nor directly the name of the function among the following: \nξ_GNCxLD_Newtonian_Doppler , ξ_GNCxLD_Newtonian_Lensing , ξ_GNCxLD_Newtonian_LocalGP , ξ_GNCxLD_Newtonian_IntegratedGP , ξ_GNCxLD_Doppler_Doppler , ξ_GNCxLD_Doppler_Lensing , ξ_GNCxLD_Doppler_LocalGP , ξ_GNCxLD_Doppler_IntegratedGP , ξ_GNCxLD_Lensing_Doppler , ξ_GNCxLD_Lensing_Lensing , ξ_GNCxLD_Lensing_LocalGP , ξ_GNCxLD_Lensing_IntegratedGP , ξ_GNCxLD_LocalGP_Doppler , ξ_GNCxLD_LocalGP_Lensing , ξ_GNCxLD_LocalGP_LocalGP , ξ_GNCxLD_LocalGP_IntegratedGP , ξ_GNCxLD_IntegratedGP_Doppler , ξ_GNCxLD_IntegratedGP_Lensing , ξ_GNCxLD_IntegratedGP_LocalGP , ξ_GNCxLD_IntegratedGP_IntegratedGP ,\nss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). This is why it is returned also the vector of the \"input\" values.\n\nOptional arguments\n\ns1 = nothing : comoving distance from the observer where the TPCF should be evaluated; if s1 = nothing, it is automatically set s1 = cosmo.s_eff from the given input cosmo::Cosmology.\nL::Int = 0: order of the Legendre polynomial to be used\nalg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):\n:quad -> the integration over mu will be preformed through the Julia function quadgk \nfrom the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n:trap -> the integration over mu will be preformed through the Julia function trapz \nfrom the Trapz.jl Julia package, that uses the simple trapezoidal rulae.\n:lobatto -> the integration over mu will be preformed through the Julia function gausslobatto \nfrom the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!\nuse_windows::Bool = false: tells if the integrand must consider the two window function phi and mathcalF\nN_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\nN_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\nN_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing \npr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)\nkwargs... : other keyword arguments that will be passed to the selected GNCxLD TPCF effect (ξ_GNCxLD_Doppler, ξ_GNCxLD_Lensing, ...)\n\nReturns\n\nA Tuple{Vector{Float64}, Vector{Float64}}, which has as first element the ss vector and as second one the corresponding ξ value evaluated.\n\nSee also: integrand_ξ_GNCxLD_multipole, ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole, WindowFIntegrated, Cosmology, y, s2, GR_EFFECTS_GNCxLD, GaPSE.VEC_ξs_GNCxLD\n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations/#GaPSE.print_map_ξ_GNCxLD_multipole","page":"GNCxLD","title":"GaPSE.print_map_ξ_GNCxLD_multipole","text":" print_map_ξ_GNCxLD_multipole(\n cosmo::Cosmology, out::String,\n effect::Union{String,Function},\n ss = nothing;\n s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,\n N_lob::Int = 100, N_trap::Int = 50,\n atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,\n enhancer::Float64=1e6, N_log::Int = 1000, \n pr::Bool = true,\n kwargs...)\n\nEvaluate the multipole of order L of the of the chosen two-point cross correlation between a Galaxy Number Counts (GNC) effect and a perturbation of the Luminosity Distance (LD) term for all the comoving distance values stored inside ss, and print the results (with all the options used) in a file named out. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). If s1 = nothing, it is set s1 = cosmo.s_eff.\n\nThe function evaluated is then the following xi_L(s_1 s):\n\n xi_L(s_1 s) = frac2 L + 12 int_-1^+1 mathrmdmu \n xi (s_1 s_2 costheta) mathcalL_L(mu) times\n begincases \n frac1mathcalNmathcalF(s mu) quad mathrmuse_windows == true \n 1 quadquad mathrmuse_windows == false\n endcases\n\nwhere:\n\ns_2 = s_2(s_1 s mu) = sqrts_1^2 + s^2 + 2 s_1 s mu \ny = costheta = hatmathbfs_1 cdot hatmathbfs_2 = fracmu s + s_1s_2(s_1 s mu)\nxi is the corresponding GNCxLD TPCF effect\nmathcalL_L(mu) is the Legendre polynomial of order L\nmathcalF(s mu) is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)\nmathcalN is the integrated window function norm (check the documentation of WindowFIntegrated) \n\nNote that these is an internal conversion of coordiate sistems from (s1, s, μ) to (s1, s2, y) thorugh the functions y and s2. The inverse relations are:\n\ns = s(s_1 s_2 y) = sqrts_1^2 + s_2^2 - 2 s_1 s_2 y\nmu = costheta = hatmathbfs_1 cdot hatmathbfs = fracy s_2 - s_1s(s_1 s_2 y).\n\nInputs\n\ncosmo::Cosmology : cosmology to be used in this computation\neffect::Union{String,Function} : the GR effect TPCF you want to consider; you may specify the name of the effect as one of the following strings (recommended):\nnewton_doppler , newton_lensing , newton_localgp , newton_integratedgp , doppler_doppler , doppler_lensing , doppler_localgp , doppler_integratedgp , lensing_doppler , lensing_lensing , lensing_localgp , lensing_integratedgp , localgp_doppler , localgp_lensing , localgp_localgp , localgp_integratedgp , integratedgp_doppler , integratedgp_lensing , integratedgp_localgp , integratedgp_integratedgp ,\nor directly the name of the function among the following: \nξ_GNCxLD_Newtonian_Doppler , ξ_GNCxLD_Newtonian_Lensing , ξ_GNCxLD_Newtonian_LocalGP , ξ_GNCxLD_Newtonian_IntegratedGP , ξ_GNCxLD_Doppler_Doppler , ξ_GNCxLD_Doppler_Lensing , ξ_GNCxLD_Doppler_LocalGP , ξ_GNCxLD_Doppler_IntegratedGP , ξ_GNCxLD_Lensing_Doppler , ξ_GNCxLD_Lensing_Lensing , ξ_GNCxLD_Lensing_LocalGP , ξ_GNCxLD_Lensing_IntegratedGP , ξ_GNCxLD_LocalGP_Doppler , ξ_GNCxLD_LocalGP_Lensing , ξ_GNCxLD_LocalGP_LocalGP , ξ_GNCxLD_LocalGP_IntegratedGP , ξ_GNCxLD_IntegratedGP_Doppler , ξ_GNCxLD_IntegratedGP_Lensing , ξ_GNCxLD_IntegratedGP_LocalGP , ξ_GNCxLD_IntegratedGP_IntegratedGP ,\nout::String : name of the file where the results must be stored.\nss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log).\n\nOptional arguments\n\nThis function recall internally map_ξ_GNCxLD_multipole, so the kwargs are the same; we report them for comfortness:\n\ns1 = nothing : comoving distance from the observer where the TPCF should be evaluated; if s1 = nothing, it is automatically set s1 = cosmo.s_eff from the given input cosmo::Cosmology.\nL::Int = 0: order of the Legendre polynomial to be used\nalg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):\n:quad -> the integration over mu will be preformed through the Julia function quadgk \nfrom the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n:trap -> the integration over mu will be preformed through the Julia function trapz \nfrom the Trapz.jl Julia package, that uses the simple trapezoidal rulae.\n:lobatto -> the integration over mu will be preformed through the Julia function gausslobatto \nfrom the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!\nuse_windows::Bool = false: tells if the integrand must consider the two window function phi and mathcalF\nN_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\nN_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\nN_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing \npr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)\nkwargs... : other keyword arguments that will be passed to the selected GNCxLD TPCF effect (ξ_GNCxLD_Doppler, ξ_GNCxLD_Lensing, ...)\n\nSee also: integrand_ξ_GNCxLD_multipole, ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole, WindowFIntegrated, Cosmology, y, s2, GR_EFFECTS_GNCxLD, GaPSE.VEC_ξs_GNCxLD\n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations/#Two-Point-Cross-Correlation-Function-Sum-multipoles","page":"GNCxLD","title":"Two-Point Cross-Correlation Function Sum multipoles","text":"","category":"section"},{"location":"GNCxLD_Correlations/","page":"GNCxLD","title":"GNCxLD","text":"GaPSE.sum_ξ_GNCxLD_multipole\nGaPSE.map_sum_ξ_GNCxLD_multipole\nGaPSE.print_map_sum_ξ_GNCxLD_multipole","category":"page"},{"location":"GNCxLD_Correlations/#GaPSE.sum_ξ_GNCxLD_multipole","page":"GNCxLD","title":"GaPSE.sum_ξ_GNCxLD_multipole","text":" sum_ξ_GNCxLD_multipole(s1, s, cosmo::Cosmology;\n s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,\n N_lob::Int = 100, N_trap::Int = 50,\n atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,\n enhancer::Float64=1e6, N_log::Int = 1000, \n pr::Bool = true,\n kwargs...) ::Tuple{Float64, Vector{Float64}}\n\nEvaluate the multipole of order L of all the two-point cross correlation multipole between the Galaxy Number Counts (GNC) and the perturbations of the Luminosity Distance (LD) and their sum in the comoving distance s1 and a comoving distance s from it for the input cosmo::Cosmology. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThis function makes a for-loop on the GaPSE.GR_EFFECTS_GNCxLD strings, calling ξ_GNCxLD_multipole for each of them. To each string corresponds pretty intuitively one of the 20 GNCxLD effects. They are currently, in order:\n\nnewton_doppler , newton_lensing , newton_localgp , newton_integratedgp , doppler_doppler , doppler_lensing , doppler_localgp , doppler_integratedgp , lensing_doppler , lensing_lensing , lensing_localgp , lensing_integratedgp , localgp_doppler , localgp_lensing , localgp_localgp , localgp_integratedgp , integratedgp_doppler , integratedgp_lensing , integratedgp_localgp , integratedgp_integratedgp ,\n\nInputs\n\ns1: the comoving distance where must be evaluated the integral\ns: the comoving distance from s1 where must be evaluated the integral\ncosmo::Cosmology: cosmology to be used in this computation\n\nOptional arguments\n\nThis function recall internally ξ_GNCxLD_multipole, so the kwargs are the same; we report them for comfortness:\n\nL::Int = 0: order of the Legendre polynomial to be used\nalg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):\n:quad -> the integration over mu will be preformed through the Julia function quadgk \nfrom the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n:trap -> the integration over mu will be preformed through the Julia function trapz \nfrom the Trapz.jl Julia package, that uses the simple trapezoidal rulae.\n:lobatto -> the integration over mu will be preformed through the Julia function gausslobatto \nfrom the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!\nuse_windows::Bool = false: tells if the integrand must consider the two window function phi and mathcalF\nN_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\nN_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\nkwargs... : other keyword arguments that will be passed to ALL the GNCxLD TPCF effect (ξ_GNCxLD_Doppler, ξ_GNCxLD_Lensing, ...); if one of them has that keyword argument, it will use the given value, otherwise it will be unaffected.\n\nReturns\n\nA tuple containing:\n\nthe sum of all the ξ multipoles as first element\na Vector{Float64} with all the values of each ξ; they are ordered following GR_EFFECTS_GNCxLD\n\nSee also: integrand_ξ_GNCxLD_multipole, ξ_GNCxLD_multipole, map_sum_ξ_GNCxLD_multipole, print_map_sum_ξ_GNCxLD_multipole, Cosmology, GR_EFFECTS_GNCxLD\n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations/#GaPSE.map_sum_ξ_GNCxLD_multipole","page":"GNCxLD","title":"GaPSE.map_sum_ξ_GNCxLD_multipole","text":" map_sum_ξ_GNCxLD_multipole(\n effect::Union{String,Function}, ss = nothing;\n s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,\n N_lob::Int = 100, N_trap::Int = 50,\n atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,\n enhancer::Float64=1e6, N_log::Int = 1000, \n pr::Bool = true,\n kwargs...) ::Tuple{Vector{Float64}, Vector{Float64}, Vector{Vector{Float64}}}\n\nEvaluate the multipole of order L of all the two-point cross correlation multipole between the Galaxy Number Counts (GNC) and the perturbations of the Luminosity Distance (LD) and their sum in the comoving distance s1, for all the comoving distances stored inside ss (representing the comoving distance from s1) for the input cosmo::Cosmology. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). If s1 = nothing, it is set s1 = cosmo.s_eff. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThis function makes a for-loop on the GaPSE.GR_EFFECTS_GNCxLD strings, calling map_ξ_GNCxLD_multipole for each of them. To each string corresponds pretty intuitively one of the 20 GNCxLD effects. They are currently, in order:\n\nnewton_doppler , newton_lensing , newton_localgp , newton_integratedgp , doppler_doppler , doppler_lensing , doppler_localgp , doppler_integratedgp , lensing_doppler , lensing_lensing , lensing_localgp , lensing_integratedgp , localgp_doppler , localgp_lensing , localgp_localgp , localgp_integratedgp , integratedgp_doppler , integratedgp_lensing , integratedgp_localgp , integratedgp_integratedgp ,\n\nInputs\n\ncosmo::Cosmology : cosmology to be used in this computation\nss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). This is why it is returned also the vector of the \"input\" values.\n\nOptional arguments\n\nThis function recall internally map_ξ_GNCxLD_multipole, so the kwargs are the same; we report them for comfortness:\n\ns1 = nothing : comoving distance from the observer where the TPCF should be evaluated; if s1 = nothing, it is automatically set s1 = cosmo.s_eff from the given input cosmo::Cosmology.\nL::Int = 0: order of the Legendre polynomial to be used\nalg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):\n:quad -> the integration over mu will be preformed through the Julia function quadgk \nfrom the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n:trap -> the integration over mu will be preformed through the Julia function trapz \nfrom the Trapz.jl Julia package, that uses the simple trapezoidal rulae.\n:lobatto -> the integration over mu will be preformed through the Julia function gausslobatto \nfrom the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!\nuse_windows::Bool = false: tells if the integrand must consider the two window function phi and mathcalF\n\nN_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\nN_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\nN_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing \npr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)\nkwargs... : other keyword arguments that will be passed to ALL the GNCxLD TPCF effect (ξ_GNCxLD_Doppler, ξ_GNCxLD_Lensing, ...); if one of them has that keyword argument, it will use the given value, otherwise it will be unaffected.\n\nReturns\n\nA tuple containing:\n\nas first element, the vector ss itself;\nas second one, the Vector{Float64} of the sum of all the ξ multipoles;\nas third one, a Vector{Vector{Float64}} with all the values of each ξ; they are ordered following GR_EFFECTS_GNCxLD\n\nSee also: map_ξ_GNCxLD_multipole, sum_ξ_GNCxLD_multipole, print_map_sum_ξ_GNCxLD_multipole, Cosmology, GR_EFFECTS_GNCxLD\n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations/#GaPSE.print_map_sum_ξ_GNCxLD_multipole","page":"GNCxLD","title":"GaPSE.print_map_sum_ξ_GNCxLD_multipole","text":" print_map_sum_ξ_GNCxLD_multipole(\n cosmo::Cosmology, out::String, ss = nothing;\n s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,\n N_lob::Int = 100, N_trap::Int = 50,\n atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,\n enhancer::Float64=1e6, N_log::Int = 1000, \n pr::Bool = true,\n single::Bool = true,\n kwargs...)\n\nEvaluate the multipole of order L of all the two-point cross correlation multipole between the Galaxy Number Counts (GNC) and the perturbations of the Luminosity Distance (LD) and their sum in the comoving distance s1, for all the comoving distances stored inside ss (representing the comoving distance from s1) for the input cosmo::Cosmology; finally, it saves the results inside the file out. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). If s1 = nothing, it is set s1 = cosmo.s_eff. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThis function makes a for-loop on the GaPSE.GR_EFFECTS_GNCxLD strings, calling map_ξ_GNCxLD_multipole for each of them. To each string corresponds pretty intuitively one of the 20 GNCxLD effects. They are currently, in order:\n\nnewton_doppler , newton_lensing , newton_localgp , newton_integratedgp , doppler_doppler , doppler_lensing , doppler_localgp , doppler_integratedgp , lensing_doppler , lensing_lensing , lensing_localgp , lensing_integratedgp , localgp_doppler , localgp_lensing , localgp_localgp , localgp_integratedgp , integratedgp_doppler , integratedgp_lensing , integratedgp_localgp , integratedgp_integratedgp ,\n\nInputs\n\ncosmo::Cosmology : cosmology to be used in this computation\nout::String : name of the file where the results must be stored.\nss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log).\n\nOptional arguments\n\nThis function recall internally map_ξ_GNCxLD_multipole, so the kwargs are the same; we report them for comfortness:\n\ns1 = nothing : comoving distance from the observer where the TPCF should be evaluated; if s1 = nothing, it is automatically set s1 = cosmo.s_eff from the given input cosmo::Cosmology.\nL::Int = 0: order of the Legendre polynomial to be used\nalg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):\n:quad -> the integration over mu will be preformed through the Julia function quadgk \nfrom the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n:trap -> the integration over mu will be preformed through the Julia function trapz \nfrom the Trapz.jl Julia package, that uses the simple trapezoidal rulae.\n:lobatto -> the integration over mu will be preformed through the Julia function gausslobatto \nfrom the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!\nuse_windows::Bool = false: tells if the integrand must consider the two window function phi and mathcalF\n\nN_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\nN_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\nN_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing \npr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)\nsingle::Bool = true : if true, all the CFs are printed inside the file of the sum, in a table with 18 columns (first one for ss, second for their sum an the next 20 for each effect). Otherwise, a new directory \"allstandalonesCFs\" is created (in the same path given in out) and they are separately saved in files there placed.\nkwargs... : other keyword arguments that will be passed to ALL the GNCxLD TPCF effect (ξ_GNCxLD_Doppler, ξ_GNCxLD_Lensing, ...); if one of them has that keyword argument, it will use the given value, otherwise it will be unaffected.\n\nSee also: map_ξ_GNCxLD_multipole, sum_ξ_GNCxLD_multipole, map_sum_ξ_GNCxLD_multipole, Cosmology, GR_EFFECTS_GNCxLD\n\n\n\n\n\n","category":"function"},{"location":"LD_Correlations/","page":"LD","title":"LD","text":"DocTestSetup = quote\n using GaPSE\nend","category":"page"},{"location":"LD_Correlations/#LD-TPCFs","page":"LD","title":"LD TPCFs","text":"","category":"section"},{"location":"LD_Correlations/#Two-Point-Auto-Correlation-Functions","page":"LD","title":"Two-Point Auto-Correlation Functions","text":"","category":"section"},{"location":"LD_Correlations/","page":"LD","title":"LD","text":"GaPSE.ξ_LD_Doppler\nGaPSE.ξ_LD_Lensing\nGaPSE.ξ_LD_LocalGP\nGaPSE.ξ_LD_IntegratedGP","category":"page"},{"location":"LD_Correlations/#GaPSE.ξ_LD_Doppler","page":"LD","title":"GaPSE.ξ_LD_Doppler","text":" ξ_LD_Doppler(P1::Point, P2::Point, y, cosmo::Cosmology) :: Float64\n\n ξ_LD_Doppler(s1, s2, y, cosmo::Cosmology) = \n ξ_LD_Doppler(Point(s1, cosmo), Point(s2, cosmo), y, cosmo)\n\nReturn the Doppler auto-correlation function concerning the perturbed luminosity distance, defined as follows:\n\nxi^v_parallelv_parallel (s_1 s_2 costheta) \n= D_1 D_2 f_1 f_2 mathcalH_1 mathcalH_2 mathcalR_1 mathcalR_2 \n(J_00 I^0_0(s) + J_02I^0_2(s) + J_04I^0_4(s) + J_20I^2_0(s))\n\nwhere D_1 = D(s_1), D_2 = D(s_2) and so on, mathcalH = a H, y = costheta = hatmathbfs_1 cdot hatmathbfs_2 and the J coefficients are given by:\n\nbeginalign*\n J_00 (s_1 s_2 y) = frac145 (y^2 s_1 s_2 - 2y(s_1^2 + s_2^2) + 3s_1 s_2) \n J_02 (s_1 s_2 y) = frac263 (y^2 s_1 s_2 - 2y(s_1^2 + s_2^2) + 3s_1 s_2) \n J_04 (s_1 s_2 y) = frac1105 (y^2 s_1 s_2 - 2y(s_1^2 + s_2^2) + 3s_1 s_2) \n J_20 (s_1 s_2 y) = frac13 y s^2\nendalign*\n\nInputs\n\nP1::Point and P2::Point: Point where the CF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on)\ny: the cosine of the angle between the two points P1 and P2\ncosmo::Cosmology: cosmology to be used in this computation\n\nSee also: Point, Cosmology\n\n\n\n\n\n","category":"function"},{"location":"LD_Correlations/#GaPSE.ξ_LD_Lensing","page":"LD","title":"GaPSE.ξ_LD_Lensing","text":" ξ_LD_Lensing(P1::Point, P2::Point, y, cosmo::Cosmology;\n en::Float64 = 1e6,\n Δχ_min::Float64 = 1e-3,\n N_χs_2::Int = 100) :: Float64\n\n ξ_LD_Lensing(s1, s2, y, cosmo::Cosmology; kwargs...) = \n ξ_LD_Lensing(Point(s1, cosmo), Point(s2, cosmo), y, cosmo; kwargs...)\n\nReturn the Lensing auto-correlation function xi^kappakappa (s_1 s_2 costheta) concerning the perturbed luminosity distance, defined as follows:\n\nxi^kappakappa (s_1 s_2 costheta) = \nint_0^s_1 mathrmd chi_1 int_0^s_2 mathrmd chi_2 \nfrac12\nfrac\n mathcalH_0^4 Omega_ mathrmM0^2 D_1 D_2 (chi_1 - s_1)(chi_2 - s_2)\n\n s_1 s_2 a(chi_1) a(chi_2) \n(J_00 I^0_0(chi) + J_02 I^0_2(chi) + \n J_31 I^3_1(chi) + J_22 I^2_2(chi))\n\nwhere D_1 = D(chi_1), D_2 = D(chi_2) and so on, mathcalH = a H, chi = sqrtchi_1^2 + chi_2^2 - 2chi_1chi_2costheta, y = costheta = hatmathbfs_1 cdot hatmathbfs_2) and the J coefficients are given by \n\nbeginalign*\n J_00 = - frac3 chi_1^2 chi_2^24 chi^4 (y^2 - 1) \n (8 y (chi_1^2 + chi_2^2) - 9 chi_1 chi_2 y^2 - 7 chi_1 chi_2) \n J_02 = - frac3 chi_1^2 chi_2^22 chi^4 (y^2 - 1)\n (4 y (chi_1^2 + chi_2^2) - 3 chi_1 chi_2 y^2 - 5 chi_1 chi_2) \n J_31 = 9 y chi^2 \n J_22 = frac9 chi_1 chi_24 chi^4\n 2 (chi_1^4 + chi_2^4) (7 y^2 - 3) \n - 16 y chi_1 chi_2 (chi_1^2 + chi_2^2) (y^2+1) \n + chi_1^2 chi_2^2 (11 y^4 + 14 y^2 + 23)\nendalign*\n\nThe computation is made applying trapz (see the Trapz Julia package) to the integrand function integrand_ξ_LD_Lensing.\n\nInputs\n\ns1 and s2: comovign distances where the function must be evaluated\ny: the cosine of the angle between the two points P1 and P2\ncosmo::Cosmology: cosmology to be used in this computation\n\nOptional arguments\n\nen::Float64 = 1e6: just a float number used in order to deal better with small numbers;\nΔχ_min::Float64 = 1e-6 : when Deltachi = sqrtchi_1^2 + chi_2^2 - 2 chi_1 chi_2 y to 0^+, some I_ell^n term diverges, but the overall parenthesis has a known limit:\n lim_chito0^+ (J_00 I^0_0(chi) + J_02 I^0_2(chi) + \n J_31 I^3_1(chi) + J_22 I^2_2(chi)) = \n frac415 (5 sigma_2 + frac23 σ_0 s_1^2 chi_2^2)\nSo, when it happens that chi Deltachi_mathrmmin, the function considers this limit as the result of the parenthesis instead of calculating it in the normal way; it prevents computational divergences.\nN_χs_2::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ1) and (0, s1) (for χ2); it has been checked that with N_χs_2 ≥ 50 the result is stable.\n\nSee also: integrand_ξ_LD_Lensing, integrand_on_mu_Lensing integral_on_mu, ξ_LD_multipole\n\n\n\n\n\n","category":"function"},{"location":"LD_Correlations/#GaPSE.ξ_LD_LocalGP","page":"LD","title":"GaPSE.ξ_LD_LocalGP","text":" ξ_LD_LocalGP(P1::Point, P2::Point, y, cosmo::Cosmology) :: Float64\n\n ξ_LD_LocalGP(s1, s2, y, cosmo::Cosmology) = \n ξ_LD_LocalGP(Point(s1, cosmo), Point(s2, cosmo), y, cosmo::Cosmology)\n\nReturn the local gravitational potential auto-correlation function concerning the perturbed luminosity distance, defined as follows:\n\nxi^phiphi (s_1 s_2 costheta) = \n frac9 mathcalH_0^4 Omega_M0^2 D(s_1) D(s_2)s^44 a(s_1) a(s_2)\n (1 + mathcalR_1 + mathcalR_2 + mathcalR_1mathcalR_2)\n tildeI^4_0(s)\n\nwhere D_1 = D(s_1), D_2 = D(s_2) and so on, mathcalH = a H, y = costheta = hatmathbfs_1 cdot hatmathbfs_2 and:\n\ntildeI^4_0 (s) = int_0^infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(q s) - 1(q s)^4\n\nInputs\n\nP1::Point and P2::Point: Point where the CF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on)\ny: the cosine of the angle between the two points P1 and P2\ncosmo::Cosmology: cosmology to be used in this computation\n\nSee also: Point, Cosmology\n\n\n\n\n\n","category":"function"},{"location":"LD_Correlations/#GaPSE.ξ_LD_IntegratedGP","page":"LD","title":"GaPSE.ξ_LD_IntegratedGP","text":" ξ_LD_IntegratedGP(P1::Point, P2::Point, y, cosmo::Cosmology; \n en::Float64 = 1e10,\n N_χs_2::Int = 100) :: Float64\n\n ξ_LD_IntegratedGP(s1, s2, y, cosmo::Cosmology; kwargs...) = \n ξ_LD_IntegratedGP(Point(s1, cosmo), Point(s2, cosmo), y, cosmo; kwargs...)\n\nReturn the integrated gravitational potential auto-correlation function xi^intphiintphi(s_1 s_2 costheta) concerning the perturbed luminosity distance, defined as follows:\n\nxi^intphiintphi (s_1 s_2 costheta) = \n int_0^s_1 mathrmd chi_1 int_0^s_2mathrmd chi_2 \n J_40(s_1 s_2 y chi_1 chi_2) tildeI^4_0(chi)\n\nwhere chi = sqrtchi_1^2 + chi_2^2 - 2 chi_1 chi_2 y, y = costheta = hatmathbfs_1 cdot hatmathbfs_2 and:\n\nbeginsplit\n J_40(s_1 s_2 y chi_1 chi_2) = \n frac\n 9 mathcalH_0^4 Omega_M0^2 D(chi_1) D(chi_2) chi^4\n a(chi_1) a(chi_2) s_1 s_2 \n (s_2 mathcalH(chi_2) mathcalR(s_2) (f(chi_2)-1) - 1) \n (s_1 mathcalH(chi_1) mathcalR(s_1) (f(chi_1)-1) - 1)5pt\n tildeI^4_0 (s) = int_0^infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(q s) - 1(q s)^4\nendsplit\n\nand P(q) is the input power spectrum.\n\nThe computation is made applying trapz (see the Trapz Julia package) to the integrand function integrand_ξ_LD_Lensing.\n\nInputs\n\ns1 and s2: comovign distances where the function must be evaluated\ny: the cosine of the angle between the two points P1 and P2\ncosmo::Cosmology: cosmology to be used in this computation\n\nOptional arguments\n\nen::Float64 = 1e10: just a float number used in order to deal better with small numbers.\nN_χs_2::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ1) and (0, s1) (for χ2); it has been checked that with N_χs_2 ≥ 50 the result is stable.\n\nSee also: integrand_ξ_LD_IntegratedGP, integrand_on_mu_IntegratedGP integral_on_mu, ξ_LD_multipole\n\n\n\n\n\n","category":"function"},{"location":"LD_Correlations/#Two-Point-Cross-Correlation-Functions","page":"LD","title":"Two-Point Cross-Correlation Functions","text":"","category":"section"},{"location":"LD_Correlations/","page":"LD","title":"LD","text":"GaPSE.ξ_LD_Doppler_Lensing\nGaPSE.ξ_LD_Lensing_Doppler\nGaPSE.ξ_LD_Doppler_LocalGP\nGaPSE.ξ_LD_LocalGP_Doppler\nGaPSE.ξ_LD_Doppler_IntegratedGP\nGaPSE.ξ_LD_IntegratedGP_Doppler\nGaPSE.ξ_LD_Lensing_LocalGP\nGaPSE.ξ_LD_LocalGP_Lensing\nGaPSE.ξ_LD_Lensing_IntegratedGP\nGaPSE.ξ_LD_IntegratedGP_Lensing\nGaPSE.ξ_LD_LocalGP_IntegratedGP\nGaPSE.ξ_LD_IntegratedGP_LocalGP","category":"page"},{"location":"LD_Correlations/#GaPSE.ξ_LD_Lensing_Doppler","page":"LD","title":"GaPSE.ξ_LD_Lensing_Doppler","text":" ξ_LD_Lensing_Doppler(s1, s2, y, cosmo::Cosmology;\n en::Float64 = 1e6, N_χs::Int = 100):: Float64\n\nReturn the Lensing-Doppler cross-correlation function xi^kappa v_parallel (s_1 s_2 costheta) concerning the perturbed luminosity distance, defined as follows:\n\nxi^kappa v_parallel (s_1 s_2 costheta) = \n mathcalH_0^2 Omega_M0 D(s_2) f(s_2) mathcalH(s_2) mathcalR(s_2) \n int_0^s_1 mathrmd chi_1 \n frac D(chi_1) (chi_1 - s_1) a(chi_1) s_1 \n left(\n J_00 I^0_0(Deltachi_1) + J_02 I^0_2(Deltachi_1) \n + J_04 I^0_4(Deltachi_1) + J_20 I^2_0(Deltachi_1)\n right)\n\nwhere mathcalH = a H, Deltachi_1= sqrtchi_1^2 + s_2^2 - 2 chi_1 s_2 costheta, y = costheta = hatmathbfs_1 cdot hatmathbfs_2) and the J coefficients are given by:\n\nbeginalign*\n J_00 = frac115(chi_1^2 y + chi_1(4 y^2 - 3) s_2 - 2 y s_2^2) \n J_02 = frac142 Deltachi_1^2 \n (4 chi_1^4 y + 4 chi_1^3 (2 y^2 - 3) s_2 + chi_1^2 y (11 - 23 y^2) s_2^2 + \n chi_1 (23 y^2 - 3) s_2^3 - 8 y s_2^4) \n J_04 = frac170 Deltachi_1^2\n (2 chi_1^4 y + 2 chi_1^3 (2y^2 - 3) s_2 - chi_1^2 y (y^2 + 5) s_2^2 + \n chi_1 (y^2 + 9) s_2^3 - 4 y s_2^4) \n J_20 = y Deltachi_1^2\nendalign*\n\nThe computation is made applying trapz (see the Trapz Julia package) to the integrand function integrand_ξ_LD_LD_Lensing_Doppler.\n\nInputs\n\ns1 and s2: comovign distances where the function must be evaluated\ny: the cosine of the angle between the two points P1 and P2\ncosmo::Cosmology: cosmology to be used in this computation\n\nOptional arguments\n\nen::Float64 = 1e6: just a float number used in order to deal better with small numbers;\nΔχ_min::Float64 = 1e-6 : when Deltachi = sqrtchi_1^2 + chi_2^2 - 2 chi_1 chi_2 y to 0^+, some I_ell^n term diverges, but the overall parenthesis has a known limit:\n lim_chito0^+ (J_00 I^0_0(chi) + J_02 I^0_2(chi) + \n J_31 I^3_1(chi) + J_22 I^2_2(chi)) = \n frac415 (5 sigma_2 + frac23 σ_0 s_1^2 chi_2^2)\nSo, when it happens that chi Deltachi_mathrmmin, the function considers this limit as the result of the parenthesis instead of calculating it in the normal way; it prevents computational divergences.\nN_χs::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ1) and (0, s1) (for χ2); it has been checked that with N_χs ≥ 50 the result is stable.\n\nSee also: integrand_ξ_LD_Lensing_Doppler, int_on_mu_Lensing_Doppler integral_on_mu, ξ_LD_multipole\n\n\n\n\n\n","category":"function"},{"location":"LD_Correlations/#GaPSE.ξ_LD_Doppler_LocalGP","page":"LD","title":"GaPSE.ξ_LD_Doppler_LocalGP","text":" ξ_LD_Doppler_LocalGP(P1::Point, P2::Point, y, cosmo::Cosmology) :: Float64\n\nReturn the Doppler-LocalGP cross-correlation function concerning the perturbed luminosity distance, defined as follows:\n\nxi^v_parallelphi (s_1 s_2 costheta) = \n frac32 a(s_2) mathcalH(s_1) f(s_1) D(s_1)\n mathcalR(s_1) mathcalH_0^2 Omega_M0 D(s_2)\n (1 + mathcalR(s_2)) (s_2costheta - s_1) s^2 I^3_1(s)\n\nwhere mathcalH = a H, y = costheta = hatmathbfs_1 cdot hatmathbfs_2 and :\n\nI^n_l(s) = int_0^infty fracmathrmdq2pi^2 q^2 P(q) fracj_l(qs)(q s)^n\n\nInputs\n\nP1::Point and P2::Point: Point where the CF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on)\ny: the cosine of the angle between the two points P1 and P2\ncosmo::Cosmology: cosmology to be used in this computation\n\nSee also: Point, Cosmology\n\n\n\n\n\n","category":"function"},{"location":"LD_Correlations/#GaPSE.ξ_LD_Doppler_IntegratedGP","page":"LD","title":"GaPSE.ξ_LD_Doppler_IntegratedGP","text":" ξ_LD_Doppler_IntegratedGP(s1, s2, y, cosmo::Cosmology;\n en::Float64 = 1e6, N_χs::Int = 100):: Float64\n\nReturn the Doppler-LocalGP cross-correlation function xi^v_parallelintphi (s_1 s_2 costheta) concerning the perturbed luminosity distance, defined as follows:\n\nxi^v_parallelintphi (s_1 s_2 costheta) = \n 3 mathcalH(s_1) f(s_1) D(s_1) mathcalH_0^2 Omega_M0 mathcalR(s_1) \n int_0^s_2 mathrmdchi_2 J_31 I^3_1(chi)\n\nwhere mathcalH = a H, chi = sqrts_1^2 + chi_2^2 - 2 s_1 chi_2 costheta, y = costheta = hatmathbfs_1 cdot hatmathbfs_2) and:\n\nJ_31 = \n fracD(chi_2) (s_1 - chi_2 costheta)a(chi_2) chi^2 \n left(\n - frac1s_2 + mathcalR(s_2) mathcalH(chi_2) (f(chi_2) - 1)\n right)\n\nThe computation is made applying trapz (see the Trapz Julia package) to the integrand function integrand_ξ_LD_Doppler_IntegratedGP.\n\nInputs\n\ns1 and s2: comovign distances where the function must be evaluated\ny: the cosine of the angle between the two points P1 and P2\ncosmo::Cosmology: cosmology to be used in this computation\n\nOptional arguments\n\nen::Float64 = 1e6: just a float number used in order to deal better with small numbers;\nN_χs::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ1) and (0, s1) (for χ2); it has been checked that with N_χs ≥ 50 the result is stable.\n\nSee also: integrand_ξ_LD_Doppler_IntegratedGP, int_on_mu_Doppler_IntegratedGP integral_on_mu, ξ_LD_multipole\n\n\n\n\n\n","category":"function"},{"location":"LD_Correlations/#GaPSE.ξ_LD_Lensing_LocalGP","page":"LD","title":"GaPSE.ξ_LD_Lensing_LocalGP","text":" ξ_LD_Lensing_LocalGP(s1, s2, y, cosmo::Cosmology;\n en::Float64 = 1e6, N_χs::Int = 100):: Float64\n\nReturn the Lensing-LocalGP cross-correlation function xi^kappa phi (s_1 s_2 costheta) concerning the perturbed luminosity distance, defined as follows:\n\nxi^kappa phi (s_1 s_2 costheta) = \n frac\n 9 mathcalH_0^4 Omega_M0^2 D(s_2) (1 + mathcalR(s_2)) s_2\n 4 a(s_2) s_1 \n int_0^s_1 mathrmdchi_1 fracD(chi_1)(s_1 - chi_1) a(chi_1)\n left( J_31 I^3_1(Deltachi_1) + J_22 I^2_2(Deltachi_1) right)\n\nwhere mathcalH = a H, Deltachi_1 = sqrtchi_1^2 + s_2^2 - 2 chi_1 s_2costheta, y = costheta = hatmathbfs_1 cdot hatmathbfs_2) and the J coefficients are given by \n\nbeginalign*\n J_31 = -2 y Deltachi_1^2 \n J_22 = chi_1 s_2 (1 - y^2)\nendalign*\n\nThe computation is made applying trapz (see the Trapz Julia package) to the integrand function integrand_ξ_LD_Lensing_LocalGP.\n\nInputs\n\ns1 and s2: comovign distances where the function must be evaluated\ny: the cosine of the angle between the two points P1 and P2\ncosmo::Cosmology: cosmology to be used in this computation\n\nOptional arguments\n\nen::Float64 = 1e6: just a float number used in order to deal better with small numbers;\nN_χs::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ1) and (0, s1) (for χ2); it has been checked that with N_χs ≥ 50 the result is stable.\n\nSee also: integrand_ξ_LD_Lensing_LocalGP, int_on_mu_Lensing_LocalGP integral_on_mu, ξ_LD_multipole\n\n\n\n\n\n","category":"function"},{"location":"LD_Correlations/#GaPSE.ξ_LD_Lensing_IntegratedGP","page":"LD","title":"GaPSE.ξ_LD_Lensing_IntegratedGP","text":" ξ_LD_Lensing_IntegratedGP(s1, s2, y, cosmo::Cosmology;\n en::Float64 = 1e6,\n N_χs_2::Int = 100) :: Float64\n\nReturn theLensing-IntegratedGP cross-correlation function xi^kappaintphi (s_1 s_2 costheta) concerning the perturbed luminosity distance, defined as follows:\n\nxi^kappaintphi (s_1 s_2 costheta) = \n frac92mathcalH_0^4Omega_M0^2 \n mathrmdchi_1 int_0^s_2 mathrmdchi_2 \n fracD(chi_1)D(chi_2)chi_2(s_1 - chi_1)s_1a(chi_1)a(chi_2) \n left(mathcalH(chi_2)(f(chi_2) - 1)mathcalR(s_2) -frac1s_2 right)\n left( J_31 I^3_1(chi) + J_22 I^2_2(chi) right)\nendsplit\n\nwhere D_1 = D(chi_1), D_2 = D(chi_2) and so on, mathcalH = a H, chi = sqrtchi_1^2 + chi_2^2 - 2chi_1chi_2costheta, y = costheta = hatmathbfs_1 cdot hatmathbfs_2) and the J coefficients are given by \n\nbeginalign*\n J_31 = -2ychi^2 \n J_22 = chi_1chi_2(1-y^2)\nendalign*\n\nThe computation is made applying trapz (see the Trapz Julia package) to the integrand function integrand_ξ_LD_Lensing_IntegratedGP.\n\nInputs\n\ns1 and s2: comovign distances where the function must be evaluated\ny: the cosine of the angle between the two points P1 and P2\ncosmo::Cosmology: cosmology to be used in this computation\n\nOptional arguments\n\nen::Float64 = 1e6: just a float number used in order to deal better with small numbers;\nN_χs_2::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ1) and (0, s1) (for χ2); it has been checked that with N_χs_2 ≥ 50 the result is stable.\n\nSee also: integrand_ξ_LD_Lensing_IntegratedGP, integrand_on_mu_Lensing_IntegratedGP integral_on_mu, ξ_LD_multipole\n\n\n\n\n\n","category":"function"},{"location":"LD_Correlations/#GaPSE.ξ_LD_LocalGP_IntegratedGP","page":"LD","title":"GaPSE.ξ_LD_LocalGP_IntegratedGP","text":" ξ_LD_LocalGP_IntegratedGP(s1, s2, y, cosmo::Cosmology;\n en::Float64 = 1e6, N_χs::Int = 100):: Float64\n\nReturn the LocalGP-IntegratedGP cross-correlation function xi^v_parallelint phi (s_1 s_2 costheta) concerning the perturbed luminosity distance, defined as follows:\n\nxi^v_parallelint phi (s_1 s_2 costheta) = \n frac9 mathcalH_0^4 Omega_M0^2 D(s_1) (mathcalR(s_1) +1)2 a(s_1) \n int_0^s_2 mathrmdchi_2 fracD(chi_2) Deltachi_2^4 a(chi_2)\n left(\n mathcalH(chi_2)( f(chi_2) - 1) mathcalR(s_2) - frac1s_2\n right) tildeI^4_0(Deltachi_2)\n\nwhere mathcalH = a H, Deltachi_2 = sqrts_1^2 + chi_2^2 - 2 s_1 chi_2 costheta, y = costheta = hatmathbfs_1 cdot hatmathbfs_2).\n\nThe computation is made applying trapz (see the Trapz Julia package) to the integrand function integrand_ξ_LD_LocalGP_IntegratedGP.\n\nInputs\n\ns1 and s2: comovign distances where the function must be evaluated\ny: the cosine of the angle between the two points P1 and P2\ncosmo::Cosmology: cosmology to be used in this computation\n\nOptional arguments\n\nen::Float64 = 1e6: just a float number used in order to deal better with small numbers;\nN_χs::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ1) and (0, s1) (for χ2); it has been checked that with N_χs ≥ 50 the result is stable.\n\nSee also: integrand_ξ_LD_LocalGP_IntegratedGP, int_on_mu_LocalGP_IntegratedGP integral_on_mu, ξ_LD_multipole\n\n\n\n\n\n","category":"function"},{"location":"LD_Correlations/#Two-Point-Cross-Correlation-Function-multipoles","page":"LD","title":"Two-Point Cross-Correlation Function multipoles","text":"","category":"section"},{"location":"LD_Correlations/","page":"LD","title":"LD","text":"GaPSE.integrand_ξ_LD_multipole\nGaPSE.ξ_LD_multipole\nGaPSE.map_ξ_LD_multipole\nGaPSE.print_map_ξ_LD_multipole","category":"page"},{"location":"LD_Correlations/#GaPSE.integrand_ξ_LD_multipole","page":"LD","title":"GaPSE.integrand_ξ_LD_multipole","text":" integrand_ξ_LD_multipole(s1, s, μ, effect::Function, cosmo::Cosmology;\n L::Int = 0, use_windows::Bool = true, kwargs...)\n\n integrand_ξ_LD_multipole(s1, s, μ, effect::String, cosmo::Cosmology; kwargs...)\n\nReturn the integrand on mu = hatmathbfs_1 cdot hatmathbfs of the chosen perturbation of the Luminosity Distance (LD) Two-Point Correlation Function (TPCF) term, i.e. the following function f(s_1 s mu):\n\n f_L(s_1 s mu) = xi left(s_1 s_2 yright) \n mathcalL_L(mu) times \n begincases \n frac1mathcalNmathcalF(s mu) quad mathrmuse_windows == true \n 1 quadquad mathrmuse_windows == false\n endcases\n\nwhere:\n\ns_2 = s_2(s_1 s mu) = sqrts_1^2 + s^2 + 2 s_1 s mu \ny = costheta = hatmathbfs_1 cdot hatmathbfs_2 = fracmu s + s_1s_2(s_1 s mu)\nxi is the corresponding LD TPCF effect\nmathcalL_L(mu) is the Legendre polynomial of order L\nmathcalF(s mu) is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)\nmathcalN is the integrated window function norm (check the documentation of WindowFIntegrated)\n\nIn the former method you have to pass as an input the LD effect function you want to integrate, while in the (recommended) latter one it's necessary to specify the name of the LD TPCF term among the following:\n\nauto_doppler , auto_lensing , auto_localgp , auto_integratedgp , lensing_doppler , doppler_lensing , doppler_localgp , localgp_doppler , doppler_integratedgp , integratedgp_doppler , lensing_localgp , localgp_lensing , lensing_integratedgp , integratedgp_lensing , localgp_integratedgp , integratedgp_localgp ,\n\nto which correspond the following functions, respectively:\n\nξ_LD_Doppler , ξ_LD_Lensing , ξ_LD_LocalGP , ξ_LD_IntegratedGP , ξ_LD_Lensing_Doppler , ξ_LD_Doppler_Lensing , ξ_LD_Doppler_LocalGP , ξ_LD_LocalGP_Doppler , ξ_LD_Doppler_IntegratedGP , ξ_LD_IntegratedGP_Doppler , ξ_LD_Lensing_LocalGP , ξ_LD_LocalGP_Lensing , ξ_LD_Lensing_IntegratedGP , ξ_LD_IntegratedGP_Lensing , ξ_LD_LocalGP_IntegratedGP , ξ_LD_IntegratedGP_LocalGP ,\n\nInternally, the second method recall the first, so all the keyword arguments are in common.\n\nNote that these is an internal conversion of coordiate sistems from (s1, s, μ) to (s1, s2, y) thorugh the functions y and s2. The inverse relations are:\n\ns = s(s_1 s_2 y) = sqrts_1^2 + s_2^2 - 2 s_1 s_2 y\nmu = costheta = hatmathbfs_1 cdot hatmathbfs = fracy s_2 - s_1s(s_1 s_2 y).\n\nInputs\n\ns1: the comoving distance where must be evaluated the integral\ns: the comoving distance from s1 where must be evaluated the integral\nμ: the cosine between s1 and s where must be evaluated the integral\neffect::Function or effect::String : name/function you want to consider, among the ones inside GaPSE.GR_EFFECTS_LD/GaPSE.VEC_ξs_LD respectively.\ncosmo::Cosmology: cosmology to be used in this computation\n\nOptional arguments\n\nL::Int = 0: order of the Legendre polynomial to be used\nuse_windows::Bool = false: tells if the integrand must consider the two window function phi and mathcalF\nkwargs... : other keyword arguments that will be passed to the selected GR TPCF effect (ξ_LD_Doppler, ξ_LD_Lensing, ...)\n\nSee also: ξ_LD_multipole, map_ξ_LD_multipole, print_map_ξ_LD_multipole, WindowFIntegrated, ϕ, Cosmology, y, s2, GR_EFFECTS_LD, GaPSE.VEC_ξs_LD\n\n\n\n\n\n","category":"function"},{"location":"LD_Correlations/#GaPSE.ξ_LD_multipole","page":"LD","title":"GaPSE.ξ_LD_multipole","text":" ξ_LD_multipole(\n s1, s, effect::Function, cosmo::Cosmology;\n L::Int = 0, alg::Symbol = :lobatto, \n use_windows::Bool = true, \n N_lob::Int = 100, N_trap::Int = 200, \n atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,\n enhancer::Float64 = 1e6, \n kwargs...) ::Float64\n\n ξ_LD_multipole(s1, s, effect::String, cosmo::Cosmology; \n kwargs...) ::Float64\n\nEvaluate the multipole of order L of the chosen perturbation of the Luminosity Distance (LD) Two-Point Correlation Function (TPCF) term i.e. the following function xi_L(s_1 s):\n\n xi_L(s_1 s) = frac2 L + 12 int_-1^+1 mathrmdmu \n xi (s_1 s_2 costheta) mathcalL_L(mu) times\n begincases \n frac1mathcalNmathcalF(s mu) quad mathrmuse_windows == true \n 1 quadquad mathrmuse_windows == false\n endcases\n\nwhere:\n\ns_2 = s_2(s_1 s mu) = sqrts_1^2 + s^2 + 2 s_1 s mu \ny = costheta = hatmathbfs_1 cdot hatmathbfs_2 = fracmu s + s_1s_2(s_1 s mu)\nxi is the corresponding LD TPCF effect\nmathcalL_L(mu) is the Legendre polynomial of order L\nmathcalF(s mu) is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)\nmathcalN is the integrated window function norm (check the documentation of WindowFIntegrated) \n\nIn the former method you have to pass as an input the LD effect function you want to integrate, while in the (recommended) latter one it's necessary to specify the name of the LD TPCF term among the following:\n\nauto_doppler , auto_lensing , auto_localgp , auto_integratedgp , lensing_doppler , doppler_lensing , doppler_localgp , localgp_doppler , doppler_integratedgp , integratedgp_doppler , lensing_localgp , localgp_lensing , lensing_integratedgp , integratedgp_lensing , localgp_integratedgp , integratedgp_localgp ,\n\nto which correspond the following functions:\n\nξ_LD_Doppler , ξ_LD_Lensing , ξ_LD_LocalGP , ξ_LD_IntegratedGP , ξ_LD_Lensing_Doppler , ξ_LD_Doppler_Lensing , ξ_LD_Doppler_LocalGP , ξ_LD_LocalGP_Doppler , ξ_LD_Doppler_IntegratedGP , ξ_LD_IntegratedGP_Doppler , ξ_LD_Lensing_LocalGP , ξ_LD_LocalGP_Lensing , ξ_LD_Lensing_IntegratedGP , ξ_LD_IntegratedGP_Lensing , ξ_LD_LocalGP_IntegratedGP , ξ_LD_IntegratedGP_LocalGP ,\n\nInternally, the second method recall the first, so all the keyword arguments are in common.\n\nNote that these is an internal conversion of coordiate sistems from (s1, s, μ) to (s1, s2, y) thorugh the functions y and s2. The inverse relations are:\n\ns = s(s_1 s_2 y) = sqrts_1^2 + s_2^2 - 2 s_1 s_2 y\nmu = costheta = hatmathbfs_1 cdot hatmathbfs = fracy s_2 - s_1s(s_1 s_2 y).\n\nInputs\n\ns1: the comoving distance where must be evaluated the integral\ns: the comoving distance from s1 where must be evaluated the integral\neffect::Function or effect::String : name/function you want to consider, among the ones inside GaPSE.GR_EFFECTS_LD/GaPSE.VEC_ξs_LD respectively.\ncosmo::Cosmology: cosmology to be used in this computation\n\nOptional arguments\n\nL::Int = 0: order of the Legendre polynomial to be used\nalg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):\n:quad -> the integration over mu will be preformed through the Julia function quadgk \nfrom the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n:trap -> the integration over mu will be preformed through the Julia function trapz \nfrom the Trapz.jl Julia package, that uses the simple trapezoidal rulae.\n:lobatto -> the integration over mu will be preformed through the Julia function gausslobatto \nfrom the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!\nuse_windows::Bool = false: tells if the integrand must consider the two window function phi and mathcalF\nN_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\nN_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\nkwargs... : other keyword arguments that will be passed to the selected LD TPCF effect (ξ_LD_Doppler, ξ_LD_Lensing, ...)\n\nSee also: integrand_ξ_LD_multipole, map_ξ_LD_multipole, print_map_ξ_LD_multipole WindowFIntegrated, Cosmology, y, s2, GR_EFFECTS_LD, VEC_ξs_LD\n\n\n\n\n\n","category":"function"},{"location":"LD_Correlations/#GaPSE.map_ξ_LD_multipole","page":"LD","title":"GaPSE.map_ξ_LD_multipole","text":" map_ξ_LD_multipole(cosmo::Cosmology,\n effect::Union{String,Function}, ss = nothing;\n s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,\n N_lob::Int = 100, N_trap::Int = 50,\n atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,\n enhancer::Float64=1e6, N_log::Int = 1000, \n pr::Bool = true,\n kwargs...) ::Tuple{Vector{Float64}, Vector{Float64}}\n\nEvaluate the multipole of order L of the chosen perturbation of the Luminosity Distance (LD) Two-Point Correlation Function (TPCF) term for all the comoving distance values stored inside ss. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). If s1 = nothing, it is set s1 = cosmo.s_eff.\n\nThe function evaluated is then the following xi_L(s_1 s):\n\n xi_L(s_1 s) = frac2 L + 12 int_-1^+1 mathrmdmu \n xi (s_1 s_2 costheta) mathcalL_L(mu) times\n begincases \n frac1mathcalNmathcalF(s mu) quad mathrmuse_windows == true \n 1 quadquad mathrmuse_windows == false\n endcases\n\nwhere:\n\ns_2 = s_2(s_1 s mu) = sqrts_1^2 + s^2 + 2 s_1 s mu \ny = costheta = hatmathbfs_1 cdot hatmathbfs_2 = fracmu s + s_1s_2(s_1 s mu)\nxi is the corresponding LD TPCF effect\nmathcalL_L(mu) is the Legendre polynomial of order L\nmathcalF(s mu) is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)\nmathcalN is the integrated window function norm (check the documentation of WindowFIntegrated) \n\nNote that these is an internal conversion of coordiate sistems from (s1, s, μ) to (s1, s2, y) thorugh the functions y and s2. The inverse relations are:\n\ns = s(s_1 s_2 y) = sqrts_1^2 + s_2^2 - 2 s_1 s_2 y\nmu = costheta = hatmathbfs_1 cdot hatmathbfs = fracy s_2 - s_1s(s_1 s_2 y).\n\nInputs\n\ncosmo::Cosmology : cosmology to be used in this computation\neffect::Union{String,Function} : the GR effect TPCF you want to consider; you may specify the name of the effect as one of the following strings (recommended):\nauto_doppler , auto_lensing , auto_localgp , auto_integratedgp , lensing_doppler , doppler_lensing , doppler_localgp , localgp_doppler , doppler_integratedgp , integratedgp_doppler , lensing_localgp , localgp_lensing , lensing_integratedgp , integratedgp_lensing , localgp_integratedgp , integratedgp_localgp ,\nor directly the name of the function among the following: \nξ_LD_Doppler , ξ_LD_Lensing , ξ_LD_LocalGP , ξ_LD_IntegratedGP , ξ_LD_Lensing_Doppler , ξ_LD_Doppler_Lensing , ξ_LD_Doppler_LocalGP , ξ_LD_LocalGP_Doppler , ξ_LD_Doppler_IntegratedGP , ξ_LD_IntegratedGP_Doppler , ξ_LD_Lensing_LocalGP , ξ_LD_LocalGP_Lensing , ξ_LD_Lensing_IntegratedGP , ξ_LD_IntegratedGP_Lensing , ξ_LD_LocalGP_IntegratedGP , ξ_LD_IntegratedGP_LocalGP ,\nss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). This is why it is returned also the vector of the \"input\" values.\n\nOptional arguments\n\ns1 = nothing : comoving distance from the observer where the TPCF should be evaluated; if s1 = nothing, it is automatically set s1 = cosmo.s_eff from the given input cosmo::Cosmology.\nL::Int = 0: order of the Legendre polynomial to be used\nalg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):\n:quad -> the integration over mu will be preformed through the Julia function quadgk \nfrom the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n:trap -> the integration over mu will be preformed through the Julia function trapz \nfrom the Trapz.jl Julia package, that uses the simple trapezoidal rulae.\n:lobatto -> the integration over mu will be preformed through the Julia function gausslobatto \nfrom the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!\nuse_windows::Bool = false: tells if the integrand must consider the two window function phi and mathcalF\nN_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\nN_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\nN_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing \npr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)\nkwargs... : other keyword arguments that will be passed to the selected LD TPCF effect (ξ_LD_Doppler, ξ_LD_Lensing, ...)\n\nReturns\n\nA Tuple{Vector{Float64}, Vector{Float64}}, which has as first element the ss vector and as second one the corresponding ξ value evaluated.\n\nSee also: integrand_ξ_LD_multipole, ξ_LD_multipole, print_map_ξ_LD_multipole, WindowFIntegrated, Cosmology, y, s2, GR_EFFECTS_LD, GaPSE.VEC_ξs_LD\n\n\n\n\n\n","category":"function"},{"location":"LD_Correlations/#GaPSE.print_map_ξ_LD_multipole","page":"LD","title":"GaPSE.print_map_ξ_LD_multipole","text":" print_map_ξ_LD_multipole(\n cosmo::Cosmology, out::String,\n effect::Union{String,Function},\n ss = nothing;\n s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,\n N_lob::Int = 100, N_trap::Int = 50,\n atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,\n enhancer::Float64=1e6, N_log::Int = 1000, \n pr::Bool = true,\n kwargs...)\n\nEvaluate the multipole of order L of the of the chosen perturbation of the Luminosity Distance (LD) Two-Point Correlation Function (TPCF) term for all the comoving distance values stored inside ss, and print the results (with all the options used) in a file named out. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). If s1 = nothing, it is set s1 = cosmo.s_eff.\n\nThe function evaluated is then the following xi_L(s_1 s):\n\n xi_L(s_1 s) = frac2 L + 12 int_-1^+1 mathrmdmu \n xi (s_1 s_2 costheta) mathcalL_L(mu) times\n begincases \n frac1mathcalNmathcalF(s mu) quad mathrmuse_windows == true \n 1 quadquad mathrmuse_windows == false\n endcases\n\nwhere:\n\ns_2 = s_2(s_1 s mu) = sqrts_1^2 + s^2 + 2 s_1 s mu \ny = costheta = hatmathbfs_1 cdot hatmathbfs_2 = fracmu s + s_1s_2(s_1 s mu)\nxi is the corresponding LD TPCF effect\nmathcalL_L(mu) is the Legendre polynomial of order L\nmathcalF(s mu) is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)\nmathcalN is the integrated window function norm (check the documentation of WindowFIntegrated) \n\nNote that these is an internal conversion of coordiate sistems from (s1, s, μ) to (s1, s2, y) thorugh the functions y and s2. The inverse relations are:\n\ns = s(s_1 s_2 y) = sqrts_1^2 + s_2^2 - 2 s_1 s_2 y\nmu = costheta = hatmathbfs_1 cdot hatmathbfs = fracy s_2 - s_1s(s_1 s_2 y).\n\nInputs\n\ncosmo::Cosmology : cosmology to be used in this computation\neffect::Union{String,Function} : the GR effect TPCF you want to consider; you may specify the name of the effect as one of the following strings (recommended):\nauto_doppler , auto_lensing , auto_localgp , auto_integratedgp , lensing_doppler , doppler_lensing , doppler_localgp , localgp_doppler , doppler_integratedgp , integratedgp_doppler , lensing_localgp , localgp_lensing , lensing_integratedgp , integratedgp_lensing , localgp_integratedgp , integratedgp_localgp ,\nor directly the name of the function among the following: \nξ_LD_Doppler , ξ_LD_Lensing , ξ_LD_LocalGP , ξ_LD_IntegratedGP , ξ_LD_Lensing_Doppler , ξ_LD_Doppler_Lensing , ξ_LD_Doppler_LocalGP , ξ_LD_LocalGP_Doppler , ξ_LD_Doppler_IntegratedGP , ξ_LD_IntegratedGP_Doppler , ξ_LD_Lensing_LocalGP , ξ_LD_LocalGP_Lensing , ξ_LD_Lensing_IntegratedGP , ξ_LD_IntegratedGP_Lensing , ξ_LD_LocalGP_IntegratedGP , ξ_LD_IntegratedGP_LocalGP ,\nout::String : name of the file where the results must be stored.\nss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log).\n\nOptional arguments\n\nThis function recall internally map_ξ_LD_multipole, so the kwargs are the same; we report them for comfortness:\n\ns1 = nothing : comoving distance from the observer where the TPCF should be evaluated; if s1 = nothing, it is automatically set s1 = cosmo.s_eff from the given input cosmo::Cosmology.\nL::Int = 0: order of the Legendre polynomial to be used\nalg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):\n:quad -> the integration over mu will be preformed through the Julia function quadgk \nfrom the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n:trap -> the integration over mu will be preformed through the Julia function trapz \nfrom the Trapz.jl Julia package, that uses the simple trapezoidal rulae.\n:lobatto -> the integration over mu will be preformed through the Julia function gausslobatto \nfrom the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!\nuse_windows::Bool = false: tells if the integrand must consider the two window function phi and mathcalF\nN_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\nN_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\nN_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing \npr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)\nkwargs... : other keyword arguments that will be passed to the selected LD TPCF effect (ξ_LD_Doppler, ξ_LD_Lensing, ...)\n\nSee also: integrand_ξ_LD_multipole, ξ_LD_multipole, print_map_ξ_LD_multipole, WindowFIntegrated, Cosmology, y, s2, GR_EFFECTS_LD, GaPSE.VEC_ξs_LD\n\n\n\n\n\n","category":"function"},{"location":"LD_Correlations/#Two-Point-Cross-Correlation-Function-Sum-multipoles","page":"LD","title":"Two-Point Cross-Correlation Function Sum multipoles","text":"","category":"section"},{"location":"LD_Correlations/","page":"LD","title":"LD","text":"GaPSE.sum_ξ_LD_multipole\nGaPSE.map_sum_ξ_LD_multipole\nGaPSE.print_map_sum_ξ_LD_multipole","category":"page"},{"location":"LD_Correlations/#GaPSE.sum_ξ_LD_multipole","page":"LD","title":"GaPSE.sum_ξ_LD_multipole","text":" sum_ξ_LD_multipole(s1, s, cosmo::Cosmology;\n s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,\n N_lob::Int = 100, N_trap::Int = 50,\n atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,\n enhancer::Float64=1e6, N_log::Int = 1000, \n pr::Bool = true,\n kwargs...) ::Tuple{Float64, Vector{Float64}}\n\nEvaluate the multipole of order L of all the two-point cross correlation multipole between the perturbations of the Luminosity Distance (LD) and the Galaxy Number Counts (GNC) and their sum in the comoving distance s1 and a comoving distance s from it for the input cosmo::Cosmology. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThis function makes a for-loop on the GaPSE.GR_EFFECTS_LD strings, calling ξ_LD_multipole for each of them. To each string corresponds pretty intuitively one of the 16 LD effects. They are currently, in order:\n\nauto_doppler , auto_lensing , auto_localgp , auto_integratedgp , lensing_doppler , doppler_lensing , doppler_localgp , localgp_doppler , doppler_integratedgp , integratedgp_doppler , lensing_localgp , localgp_lensing , lensing_integratedgp , integratedgp_lensing , localgp_integratedgp , integratedgp_localgp ,\n\nInputs\n\ns1: the comoving distance where must be evaluated the integral\ns: the comoving distance from s1 where must be evaluated the integral\ncosmo::Cosmology: cosmology to be used in this computation\n\nOptional arguments\n\nThis function recall internally ξ_LD_multipole, so the kwargs are the same; we report them for comfortness:\n\nL::Int = 0: order of the Legendre polynomial to be used\nalg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):\n:quad -> the integration over mu will be preformed through the Julia function quadgk \nfrom the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n:trap -> the integration over mu will be preformed through the Julia function trapz \nfrom the Trapz.jl Julia package, that uses the simple trapezoidal rulae.\n:lobatto -> the integration over mu will be preformed through the Julia function gausslobatto \nfrom the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!\nuse_windows::Bool = false: tells if the integrand must consider the two window function phi and mathcalF\nN_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\nN_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\nkwargs... : other keyword arguments that will be passed to ALL the LD TPCF effect (ξ_LD_Doppler, ξ_LD_Lensing, ...); if one of them has that keyword argument, it will use the given value, otherwise it will be unaffected.\n\nReturns\n\nA tuple containing:\n\nthe sum of all the ξ multipoles as first element\na Vector{Float64} with all the values of each ξ; they are ordered following GR_EFFECTS_LD\n\nSee also: integrand_ξ_LD_multipole, ξ_LD_multipole, map_sum_ξ_LD_multipole, print_map_sum_ξ_LD_multipole, Cosmology, GR_EFFECTS_LD\n\n\n\n\n\n","category":"function"},{"location":"LD_Correlations/#GaPSE.map_sum_ξ_LD_multipole","page":"LD","title":"GaPSE.map_sum_ξ_LD_multipole","text":" map_sum_ξ_LD_multipole(\n effect::Union{String,Function}, ss = nothing;\n s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,\n N_lob::Int = 100, N_trap::Int = 50,\n atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,\n enhancer::Float64=1e6, N_log::Int = 1000, \n pr::Bool = true,\n kwargs...) ::Tuple{Vector{Float64}, Vector{Float64}, Vector{Vector{Float64}}}\n\nEvaluate the multipole of order L of all the two-point cross correlation multipole between the perturbations of the Luminosity Distance (LD) and the Galaxy Number Counts (GNC) and their sum in the comoving distance s1, for all the comoving distances stored inside ss (representing the comoving distance from s1) for the input cosmo::Cosmology. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). If s1 = nothing, it is set s1 = cosmo.s_eff. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThis function makes a for-loop on the GaPSE.GR_EFFECTS_LD strings, calling map_ξ_LD_multipole for each of them. To each string corresponds pretty intuitively one of the 16 LD effects. They are currently, in order:\n\nauto_doppler , auto_lensing , auto_localgp , auto_integratedgp , lensing_doppler , doppler_lensing , doppler_localgp , localgp_doppler , doppler_integratedgp , integratedgp_doppler , lensing_localgp , localgp_lensing , lensing_integratedgp , integratedgp_lensing , localgp_integratedgp , integratedgp_localgp ,\n\nInputs\n\ncosmo::Cosmology : cosmology to be used in this computation\nss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). This is why it is returned also the vector of the \"input\" values.\n\nOptional arguments\n\nThis function recall internally map_ξ_LD_multipole, so the kwargs are the same; we report them for comfortness:\n\ns1 = nothing : comoving distance from the observer where the TPCF should be evaluated; if s1 = nothing, it is automatically set s1 = cosmo.s_eff from the given input cosmo::Cosmology.\nL::Int = 0: order of the Legendre polynomial to be used\nalg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):\n:quad -> the integration over mu will be preformed through the Julia function quadgk \nfrom the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n:trap -> the integration over mu will be preformed through the Julia function trapz \nfrom the Trapz.jl Julia package, that uses the simple trapezoidal rulae.\n:lobatto -> the integration over mu will be preformed through the Julia function gausslobatto \nfrom the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!\nuse_windows::Bool = false: tells if the integrand must consider the two window function phi and mathcalF\nN_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\nN_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\nN_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing \npr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)\nkwargs... : other keyword arguments that will be passed to ALL the LD TPCF effect (ξ_LD_Doppler, ξ_LD_Lensing, ...); if one of them has that keyword argument, it will use the given value, otherwise it will be unaffected.\n\nReturns\n\nA tuple containing:\n\nas first element, the vector ss itself;\nas second one, the Vector{Float64} of the sum of all the ξ multipoles;\nas third one, a Vector{Vector{Float64}} with all the values of each ξ; they are ordered following GR_EFFECTS_LD\n\nSee also: map_ξ_LD_multipole, sum_ξ_LD_multipole, print_map_sum_ξ_LD_multipole, Cosmology, GR_EFFECTS_LD\n\n\n\n\n\n","category":"function"},{"location":"LD_Correlations/#GaPSE.print_map_sum_ξ_LD_multipole","page":"LD","title":"GaPSE.print_map_sum_ξ_LD_multipole","text":" print_map_sum_ξ_LD_multipole(\n cosmo::Cosmology, out::String, ss = nothing;\n s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,\n N_lob::Int = 100, N_trap::Int = 50,\n atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,\n enhancer::Float64=1e6, N_log::Int = 1000, \n pr::Bool = true,\n single::Bool = true,\n kwargs...)\n\nEvaluate the multipole of order L of all the two-point cross correlation multipole between the perturbations of the Luminosity Distance (LD) and the Galaxy Number Counts (GNC) and their sum in the comoving distance s1, for all the comoving distances stored inside ss (representing the comoving distance from s1) for the input cosmo::Cosmology; finally, it saves the results inside the file out. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). If s1 = nothing, it is set s1 = cosmo.s_eff. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThis function makes a for-loop on the GaPSE.GR_EFFECTS_LD strings, calling map_ξ_LD_multipole for each of them. To each string corresponds pretty intuitively one of the 16 LD effects. They are currently, in order:\n\nauto_doppler , auto_lensing , auto_localgp , auto_integratedgp , lensing_doppler , doppler_lensing , doppler_localgp , localgp_doppler , doppler_integratedgp , integratedgp_doppler , lensing_localgp , localgp_lensing , lensing_integratedgp , integratedgp_lensing , localgp_integratedgp , integratedgp_localgp ,\n\nInputs\n\ncosmo::Cosmology : cosmology to be used in this computation\nout::String : name of the file where the results must be stored.\nss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log).\n\nOptional arguments\n\nThis function recall internally map_ξ_LD_multipole, so the kwargs are the same; we report them for comfortness:\n\ns1 = nothing : comoving distance from the observer where the TPCF should be evaluated; if s1 = nothing, it is automatically set s1 = cosmo.s_eff from the given input cosmo::Cosmology.\nL::Int = 0: order of the Legendre polynomial to be used\nalg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):\n:quad -> the integration over mu will be preformed through the Julia function quadgk \nfrom the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n:trap -> the integration over mu will be preformed through the Julia function trapz \nfrom the Trapz.jl Julia package, that uses the simple trapezoidal rulae.\n:lobatto -> the integration over mu will be preformed through the Julia function gausslobatto \nfrom the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!\nuse_windows::Bool = false: tells if the integrand must consider the two window function phi and mathcalF\nN_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\nN_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\nN_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing \npr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)\nsingle::Bool = true : if true, all the CFs are printed inside the file of the sum, in a table with 18 columns (first one for ss, second for their sum an the next 16 for each effect). Otherwise, a new directory \"allstandalonesCFs\" is created (in the same path given in out) and they are separately saved in files there placed.\nkwargs... : other keyword arguments that will be passed to ALL the LD TPCF effect (ξ_LD_Doppler, ξ_LD_Lensing, ...); if one of them has that keyword argument, it will use the given value, otherwise it will be unaffected.\n\nSee also: map_ξ_LD_multipole, sum_ξ_LD_multipole, map_sum_ξ_LD_multipole, Cosmology, GR_EFFECTS_LD\n\n\n\n\n\n","category":"function"},{"location":"LDxGNC_Correlations/","page":"LDxGNC TPCFs","title":"LDxGNC TPCFs","text":"DocTestSetup = quote\n using GaPSE\nend","category":"page"},{"location":"LDxGNC_Correlations/#LDxGNC-TPCFs","page":"LDxGNC TPCFs","title":"LDxGNC TPCFs","text":"","category":"section"},{"location":"LDxGNC_Correlations/#Two-Point-Cross-Correlation-Functions","page":"LDxGNC TPCFs","title":"Two-Point Cross-Correlation Functions","text":"","category":"section"},{"location":"LDxGNC_Correlations/","page":"LDxGNC TPCFs","title":"LDxGNC TPCFs","text":"GaPSE.ξ_LDxGNC_Doppler_Newtonian\nGaPSE.ξ_LDxGNC_Lensing_Newtonian\nGaPSE.ξ_LDxGNC_LocalGP_Newtonian\nGaPSE.ξ_LDxGNC_IntegratedGP_Newtonian\nGaPSE.ξ_LDxGNC_Doppler_Doppler\nGaPSE.ξ_LDxGNC_Lensing_Doppler\nGaPSE.ξ_LDxGNC_LocalGP_Doppler\nGaPSE.ξ_LDxGNC_IntegratedGP_Doppler\nGaPSE.ξ_LDxGNC_Doppler_Lensing\nGaPSE.ξ_LDxGNC_Lensing_Lensing\nGaPSE.ξ_LDxGNC_LocalGP_Lensing\nGaPSE.ξ_LDxGNC_IntegratedGP_Lensing\nGaPSE.ξ_LDxGNC_Doppler_LocalGP\nGaPSE.ξ_LDxGNC_Lensing_LocalGP\nGaPSE.ξ_LDxGNC_LocalGP_LocalGP\nGaPSE.ξ_LDxGNC_IntegratedGP_LocalGP\nGaPSE.ξ_LDxGNC_Doppler_IntegrateGP\nGaPSE.ξ_LDxGNC_Lensing_IntegrateGP\nGaPSE.ξ_LDxGNC_LocalGP_IntegrateGP\nGaPSE.ξ_LDxGNC_IntegratedGP_IntegrateGP","category":"page"},{"location":"LDxGNC_Correlations/#Two-Point-Cross-Correlation-Function-multipoles","page":"LDxGNC TPCFs","title":"Two-Point Cross-Correlation Function multipoles","text":"","category":"section"},{"location":"LDxGNC_Correlations/","page":"LDxGNC TPCFs","title":"LDxGNC TPCFs","text":"GaPSE.integrand_ξ_LDxGNC_multipole\nGaPSE.ξ_LDxGNC_multipole\nGaPSE.map_ξ_LDxGNC_multipole\nGaPSE.print_map_ξ_LDxGNC_multipole","category":"page"},{"location":"LDxGNC_Correlations/#GaPSE.integrand_ξ_LDxGNC_multipole","page":"LDxGNC TPCFs","title":"GaPSE.integrand_ξ_LDxGNC_multipole","text":" integrand_ξ_LDxGNC_multipole(s1, s, μ, effect::Function, cosmo::Cosmology;\n L::Int = 0, use_windows::Bool = true, kwargs...)\n\n integrand_ξ_LDxGNC_multipole(s1, s, μ, effect::String, cosmo::Cosmology; kwargs...)\n\nReturn the integrand on mu = hatmathbfs_1 cdot hatmathbfs of the chosen two-point cross correlation between a perturbation of the Luminosity Distance (LD) effect and a Galaxy Number Counts (GNC) effect effect term, i.e. the following function f(s_1 s mu):\n\n f_L(s_1 s mu) = xi left(s_1 s_2 yright) \n mathcalL_L(mu) times \n begincases \n frac1mathcalNmathcalF(s mu) quad mathrmuse_windows == true \n 1 quadquad mathrmuse_windows == false\n endcases\n\nwhere:\n\ns_2 = s_2(s_1 s mu) = sqrts_1^2 + s^2 + 2 s_1 s mu \ny = costheta = hatmathbfs_1 cdot hatmathbfs_2 = fracmu s + s_1s_2(s_1 s mu)\nxi is the corresponding LDxGNC TPCF effect\nmathcalL_L(mu) is the Legendre polynomial of order L\nmathcalF(s mu) is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)\nmathcalN is the integrated window function norm (check the documentation of WindowFIntegrated)\n\nIn the former method you have to pass as an input the LDxGNC effect function you want to integrate, while in the (recommended) latter one it's necessary to specify the name of the LDxGNC TPCF term among the following:\n\ndoppler_newton , lensing_newton , localgp_newton , integratedgp_newton , doppler_doppler , lensing_doppler , localgp_doppler , integratedgp_doppler , doppler_lensing , lensing_lensing , localgp_lensing , integratedgp_lensing , doppler_localgp , lensing_localgp , localgp_localgp , integratedgp_localgp , doppler_integratedgp , lensing_integratedgp , localgp_integratedgp , integratedgp_integratedgp ,\n\nto which correspond the following functions, respectively:\n\nξ_LDxGNC_Doppler_Newtonian , ξ_LDxGNC_Lensing_Newtonian , ξ_LDxGNC_LocalGP_Newtonian , ξ_LDxGNC_IntegratedGP_Newtonian , ξ_LDxGNC_Doppler_Doppler , ξ_LDxGNC_Lensing_Doppler , ξ_LDxGNC_LocalGP_Doppler , ξ_LDxGNC_IntegratedGP_Doppler , ξ_LDxGNC_Doppler_Lensing , ξ_LDxGNC_Lensing_Lensing , ξ_LDxGNC_LocalGP_Lensing , ξ_LDxGNC_IntegratedGP_Lensing , ξ_LDxGNC_Doppler_LocalGP , ξ_LDxGNC_Lensing_LocalGP , ξ_LDxGNC_LocalGP_LocalGP , ξ_LDxGNC_IntegratedGP_LocalGP , ξ_LDxGNC_Doppler_IntegratedGP , ξ_LDxGNC_Lensing_IntegratedGP , ξ_LDxGNC_LocalGP_IntegratedGP , ξ_LDxGNC_IntegratedGP_IntegratedGP ,\n\nInternally, the second method recall the first, so all the keyword arguments are in common.\n\nNote that these is an internal conversion of coordiate sistems from (s1, s, μ) to (s1, s2, y) thorugh the functions y and s2. The inverse relations are:\n\ns = s(s_1 s_2 y) = sqrts_1^2 + s_2^2 - 2 s_1 s_2 y\nmu = costheta = hatmathbfs_1 cdot hatmathbfs = fracy s_2 - s_1s(s_1 s_2 y).\n\nInputs\n\ns1: the comoving distance where must be evaluated the integral\ns: the comoving distance from s1 where must be evaluated the integral\nμ: the cosine between s1 and s where must be evaluated the integral\neffect::Function or effect::String : name/function you want to consider, among the ones inside GaPSE.GR_EFFECTS_LDxGNC/GaPSE.VEC_ξs_LDxGNC respectively.\ncosmo::Cosmology: cosmology to be used in this computation\n\nOptional arguments\n\nL::Int = 0: order of the Legendre polynomial to be used\nuse_windows::Bool = false: tells if the integrand must consider the two window function phi and mathcalF\nkwargs... : other keyword arguments that will be passed to the selected GR TPCF effect (ξ_LDxGNC_Doppler, ξ_LDxGNC_Lensing, ...)\n\nSee also: ξ_LDxGNC_multipole, map_ξ_LDxGNC_multipole, print_map_ξ_LDxGNC_multipole, WindowFIntegrated, ϕ, Cosmology, y, s2, GR_EFFECTS_LDxGNC, GaPSE.VEC_ξs_LDxGNC\n\n\n\n\n\n","category":"function"},{"location":"LDxGNC_Correlations/#GaPSE.ξ_LDxGNC_multipole","page":"LDxGNC TPCFs","title":"GaPSE.ξ_LDxGNC_multipole","text":" ξ_LDxGNC_multipole(\n s1, s, effect::Function, cosmo::Cosmology;\n L::Int = 0, alg::Symbol = :lobatto, \n use_windows::Bool = true, \n N_lob::Int = 100, N_trap::Int = 200, \n atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,\n enhancer::Float64 = 1e6, \n kwargs...) ::Float64\n\n ξ_LDxGNC_multipole(s1, s, effect::String, cosmo::Cosmology; \n kwargs...) ::Float64\n\nEvaluate the multipole of order L of the chosen two-point cross correlation between a perturbation of the Luminosity Distance (LD) and a Galaxy Number Counts (GNC) effect term i.e. the following function xi_L(s_1 s):\n\n xi_L(s_1 s) = frac2 L + 12 int_-1^+1 mathrmdmu \n xi (s_1 s_2 costheta) mathcalL_L(mu) times\n begincases \n frac1mathcalNmathcalF(s mu) quad mathrmuse_windows == true \n 1 quadquad mathrmuse_windows == false\n endcases\n\nwhere:\n\ns_2 = s_2(s_1 s mu) = sqrts_1^2 + s^2 + 2 s_1 s mu \ny = costheta = hatmathbfs_1 cdot hatmathbfs_2 = fracmu s + s_1s_2(s_1 s mu)\nxi is the corresponding LDxGNC TPCF effect\nmathcalL_L(mu) is the Legendre polynomial of order L\nmathcalF(s mu) is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)\nmathcalN is the integrated window function norm (check the documentation of WindowFIntegrated) \n\nIn the former method you have to pass as an input the LDxGNC effect function you want to integrate, while in the (recommended) latter one it's necessary to specify the name of the LDxGNC TPCF term among the following:\n\ndoppler_newton , lensing_newton , localgp_newton , integratedgp_newton , doppler_doppler , lensing_doppler , localgp_doppler , integratedgp_doppler , doppler_lensing , lensing_lensing , localgp_lensing , integratedgp_lensing , doppler_localgp , lensing_localgp , localgp_localgp , integratedgp_localgp , doppler_integratedgp , lensing_integratedgp , localgp_integratedgp , integratedgp_integratedgp ,\n\nto which correspond the following functions:\n\nξ_LDxGNC_Doppler_Newtonian , ξ_LDxGNC_Lensing_Newtonian , ξ_LDxGNC_LocalGP_Newtonian , ξ_LDxGNC_IntegratedGP_Newtonian , ξ_LDxGNC_Doppler_Doppler , ξ_LDxGNC_Lensing_Doppler , ξ_LDxGNC_LocalGP_Doppler , ξ_LDxGNC_IntegratedGP_Doppler , ξ_LDxGNC_Doppler_Lensing , ξ_LDxGNC_Lensing_Lensing , ξ_LDxGNC_LocalGP_Lensing , ξ_LDxGNC_IntegratedGP_Lensing , ξ_LDxGNC_Doppler_LocalGP , ξ_LDxGNC_Lensing_LocalGP , ξ_LDxGNC_LocalGP_LocalGP , ξ_LDxGNC_IntegratedGP_LocalGP , ξ_LDxGNC_Doppler_IntegratedGP , ξ_LDxGNC_Lensing_IntegratedGP , ξ_LDxGNC_LocalGP_IntegratedGP , ξ_LDxGNC_IntegratedGP_IntegratedGP ,\n\nInternally, the second method recall the first, so all the keyword arguments are in common.\n\nNote that these is an internal conversion of coordiate sistems from (s1, s, μ) to (s1, s2, y) thorugh the functions y and s2. The inverse relations are:\n\ns = s(s_1 s_2 y) = sqrts_1^2 + s_2^2 - 2 s_1 s_2 y\nmu = costheta = hatmathbfs_1 cdot hatmathbfs = fracy s_2 - s_1s(s_1 s_2 y).\n\nInputs\n\ns1: the comoving distance where must be evaluated the integral\ns: the comoving distance from s1 where must be evaluated the integral\neffect::Function or effect::String : name/function you want to consider, among the ones inside GaPSE.GR_EFFECTS_LDxGNC/GaPSE.VEC_ξs_LDxGNC respectively.\ncosmo::Cosmology: cosmology to be used in this computation\n\nOptional arguments\n\nL::Int = 0: order of the Legendre polynomial to be used\nalg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):\n:quad -> the integration over mu will be preformed through the Julia function quadgk \nfrom the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n:trap -> the integration over mu will be preformed through the Julia function trapz \nfrom the Trapz.jl Julia package, that uses the simple trapezoidal rulae.\n:lobatto -> the integration over mu will be preformed through the Julia function gausslobatto \nfrom the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!\nuse_windows::Bool = false: tells if the integrand must consider the two window function phi and mathcalF\nN_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\nN_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\nkwargs... : other keyword arguments that will be passed to the selected LDxGNC TPCF effect (ξ_LDxGNC_Doppler, ξ_LDxGNC_Lensing, ...)\n\nSee also: integrand_ξ_LDxGNC_multipole, map_ξ_LDxGNC_multipole, print_map_ξ_LDxGNC_multipole WindowFIntegrated, Cosmology, y, s2, GR_EFFECTS_LDxGNC, VEC_ξs_LDxGNC\n\n\n\n\n\n","category":"function"},{"location":"LDxGNC_Correlations/#GaPSE.map_ξ_LDxGNC_multipole","page":"LDxGNC TPCFs","title":"GaPSE.map_ξ_LDxGNC_multipole","text":" map_ξ_LDxGNC_multipole(cosmo::Cosmology,\n effect::Union{String,Function}, ss = nothing;\n s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,\n N_lob::Int = 100, N_trap::Int = 50,\n atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,\n enhancer::Float64=1e6, N_log::Int = 1000, \n pr::Bool = true,\n kwargs...) ::Tuple{Vector{Float64}, Vector{Float64}}\n\nEvaluate the multipole of order L of the chosen two-point cross correlation between a perturbation of the Luminosity Distance (LD) and a Galaxy Number Counts (GNC) effect term for all the comoving distance values stored inside ss. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). If s1 = nothing, it is set s1 = cosmo.s_eff.\n\nThe function evaluated is then the following xi_L(s_1 s):\n\n xi_L(s_1 s) = frac2 L + 12 int_-1^+1 mathrmdmu \n xi (s_1 s_2 costheta) mathcalL_L(mu) times\n begincases \n frac1mathcalNmathcalF(s mu) quad mathrmuse_windows == true \n 1 quadquad mathrmuse_windows == false\n endcases\n\nwhere:\n\ns_2 = s_2(s_1 s mu) = sqrts_1^2 + s^2 + 2 s_1 s mu \ny = costheta = hatmathbfs_1 cdot hatmathbfs_2 = fracmu s + s_1s_2(s_1 s mu)\nxi is the corresponding LDxGNC TPCF effect\nmathcalL_L(mu) is the Legendre polynomial of order L\nmathcalF(s mu) is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)\nmathcalN is the integrated window function norm (check the documentation of WindowFIntegrated) \n\nNote that these is an internal conversion of coordiate sistems from (s1, s, μ) to (s1, s2, y) thorugh the functions y and s2. The inverse relations are:\n\ns = s(s_1 s_2 y) = sqrts_1^2 + s_2^2 - 2 s_1 s_2 y\nmu = costheta = hatmathbfs_1 cdot hatmathbfs = fracy s_2 - s_1s(s_1 s_2 y).\n\nInputs\n\ncosmo::Cosmology : cosmology to be used in this computation\neffect::Union{String,Function} : the GR effect TPCF you want to consider; you may specify the name of the effect as one of the following strings (recommended):\ndoppler_newton , lensing_newton , localgp_newton , integratedgp_newton , doppler_doppler , lensing_doppler , localgp_doppler , integratedgp_doppler , doppler_lensing , lensing_lensing , localgp_lensing , integratedgp_lensing , doppler_localgp , lensing_localgp , localgp_localgp , integratedgp_localgp , doppler_integratedgp , lensing_integratedgp , localgp_integratedgp , integratedgp_integratedgp ,\nor directly the name of the function among the following: \nξ_LDxGNC_Doppler_Newtonian , ξ_LDxGNC_Lensing_Newtonian , ξ_LDxGNC_LocalGP_Newtonian , ξ_LDxGNC_IntegratedGP_Newtonian , ξ_LDxGNC_Doppler_Doppler , ξ_LDxGNC_Lensing_Doppler , ξ_LDxGNC_LocalGP_Doppler , ξ_LDxGNC_IntegratedGP_Doppler , ξ_LDxGNC_Doppler_Lensing , ξ_LDxGNC_Lensing_Lensing , ξ_LDxGNC_LocalGP_Lensing , ξ_LDxGNC_IntegratedGP_Lensing , ξ_LDxGNC_Doppler_LocalGP , ξ_LDxGNC_Lensing_LocalGP , ξ_LDxGNC_LocalGP_LocalGP , ξ_LDxGNC_IntegratedGP_LocalGP , ξ_LDxGNC_Doppler_IntegratedGP , ξ_LDxGNC_Lensing_IntegratedGP , ξ_LDxGNC_LocalGP_IntegratedGP , ξ_LDxGNC_IntegratedGP_IntegratedGP ,\nss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). This is why it is returned also the vector of the \"input\" values.\n\nOptional arguments\n\ns1 = nothing : comoving distance from the observer where the TPCF should be evaluated; if s1 = nothing, it is automatically set s1 = cosmo.s_eff from the given input cosmo::Cosmology.\nL::Int = 0: order of the Legendre polynomial to be used\nalg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):\n:quad -> the integration over mu will be preformed through the Julia function quadgk \nfrom the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n:trap -> the integration over mu will be preformed through the Julia function trapz \nfrom the Trapz.jl Julia package, that uses the simple trapezoidal rulae.\n:lobatto -> the integration over mu will be preformed through the Julia function gausslobatto \nfrom the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!\nuse_windows::Bool = false: tells if the integrand must consider the two window function phi and mathcalF\nN_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\nN_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\nN_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing \npr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)\nkwargs... : other keyword arguments that will be passed to the selected LDxGNC TPCF effect (ξ_LDxGNC_Doppler, ξ_LDxGNC_Lensing, ...)\n\nReturns\n\nA Tuple{Vector{Float64}, Vector{Float64}}, which has as first element the ss vector and as second one the corresponding ξ value evaluated.\n\nSee also: integrand_ξ_LDxGNC_multipole, ξ_LDxGNC_multipole, print_map_ξ_LDxGNC_multipole, WindowFIntegrated, Cosmology, y, s2, GR_EFFECTS_LDxGNC, GaPSE.VEC_ξs_LDxGNC\n\n\n\n\n\n","category":"function"},{"location":"LDxGNC_Correlations/#GaPSE.print_map_ξ_LDxGNC_multipole","page":"LDxGNC TPCFs","title":"GaPSE.print_map_ξ_LDxGNC_multipole","text":" print_map_ξ_LDxGNC_multipole(\n cosmo::Cosmology, out::String,\n effect::Union{String,Function},\n ss = nothing;\n s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,\n N_lob::Int = 100, N_trap::Int = 50,\n atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,\n enhancer::Float64=1e6, N_log::Int = 1000, \n pr::Bool = true,\n kwargs...)\n\nEvaluate the multipole of order L of the of the chosen two-point cross correlation between a perturbation of the Luminosity Distance (LD) and a Galaxy Number Counts (GNC) effect term for all the comoving distance values stored inside ss, and print the results (with all the options used) in a file named out. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). If s1 = nothing, it is set s1 = cosmo.s_eff.\n\nThe function evaluated is then the following xi_L(s_1 s):\n\n xi_L(s_1 s) = frac2 L + 12 int_-1^+1 mathrmdmu \n xi (s_1 s_2 costheta) mathcalL_L(mu) times\n begincases \n frac1mathcalNmathcalF(s mu) quad mathrmuse_windows == true \n 1 quadquad mathrmuse_windows == false\n endcases\n\nwhere:\n\ns_2 = s_2(s_1 s mu) = sqrts_1^2 + s^2 + 2 s_1 s mu \ny = costheta = hatmathbfs_1 cdot hatmathbfs_2 = fracmu s + s_1s_2(s_1 s mu)\nxi is the corresponding LDxGNC TPCF effect\nmathcalL_L(mu) is the Legendre polynomial of order L\nmathcalF(s mu) is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)\nmathcalN is the integrated window function norm (check the documentation of WindowFIntegrated) \n\nNote that these is an internal conversion of coordiate sistems from (s1, s, μ) to (s1, s2, y) thorugh the functions y and s2. The inverse relations are:\n\ns = s(s_1 s_2 y) = sqrts_1^2 + s_2^2 - 2 s_1 s_2 y\nmu = costheta = hatmathbfs_1 cdot hatmathbfs = fracy s_2 - s_1s(s_1 s_2 y).\n\nInputs\n\ncosmo::Cosmology : cosmology to be used in this computation\neffect::Union{String,Function} : the GR effect TPCF you want to consider; you may specify the name of the effect as one of the following strings (recommended):\ndoppler_newton , lensing_newton , localgp_newton , integratedgp_newton , doppler_doppler , lensing_doppler , localgp_doppler , integratedgp_doppler , doppler_lensing , lensing_lensing , localgp_lensing , integratedgp_lensing , doppler_localgp , lensing_localgp , localgp_localgp , integratedgp_localgp , doppler_integratedgp , lensing_integratedgp , localgp_integratedgp , integratedgp_integratedgp ,\nor directly the name of the function among the following: \nξ_LDxGNC_Doppler_Newtonian , ξ_LDxGNC_Lensing_Newtonian , ξ_LDxGNC_LocalGP_Newtonian , ξ_LDxGNC_IntegratedGP_Newtonian , ξ_LDxGNC_Doppler_Doppler , ξ_LDxGNC_Lensing_Doppler , ξ_LDxGNC_LocalGP_Doppler , ξ_LDxGNC_IntegratedGP_Doppler , ξ_LDxGNC_Doppler_Lensing , ξ_LDxGNC_Lensing_Lensing , ξ_LDxGNC_LocalGP_Lensing , ξ_LDxGNC_IntegratedGP_Lensing , ξ_LDxGNC_Doppler_LocalGP , ξ_LDxGNC_Lensing_LocalGP , ξ_LDxGNC_LocalGP_LocalGP , ξ_LDxGNC_IntegratedGP_LocalGP , ξ_LDxGNC_Doppler_IntegratedGP , ξ_LDxGNC_Lensing_IntegratedGP , ξ_LDxGNC_LocalGP_IntegratedGP , ξ_LDxGNC_IntegratedGP_IntegratedGP ,\nout::String : name of the file where the results must be stored.\nss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log).\n\nOptional arguments\n\nThis function recall internally map_ξ_LDxGNC_multipole, so the kwargs are the same; we report them for comfortness:\n\ns1 = nothing : comoving distance from the observer where the TPCF should be evaluated; if s1 = nothing, it is automatically set s1 = cosmo.s_eff from the given input cosmo::Cosmology.\nL::Int = 0: order of the Legendre polynomial to be used\nalg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):\n:quad -> the integration over mu will be preformed through the Julia function quadgk \nfrom the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n:trap -> the integration over mu will be preformed through the Julia function trapz \nfrom the Trapz.jl Julia package, that uses the simple trapezoidal rulae.\n:lobatto -> the integration over mu will be preformed through the Julia function gausslobatto \nfrom the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!\nuse_windows::Bool = false: tells if the integrand must consider the two window function phi and mathcalF\nN_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\nN_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\nN_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing \npr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)\nkwargs... : other keyword arguments that will be passed to the selected LDxGNC TPCF effect (ξ_LDxGNC_Doppler, ξ_LDxGNC_Lensing, ...)\n\nSee also: integrand_ξ_LDxGNC_multipole, ξ_LDxGNC_multipole, print_map_ξ_LDxGNC_multipole, WindowFIntegrated, Cosmology, y, s2, GR_EFFECTS_LDxGNC, GaPSE.VEC_ξs_LDxGNC\n\n\n\n\n\n","category":"function"},{"location":"LDxGNC_Correlations/#Two-Point-Cross-Correlation-Function-Sum-multipoles","page":"LDxGNC TPCFs","title":"Two-Point Cross-Correlation Function Sum multipoles","text":"","category":"section"},{"location":"LDxGNC_Correlations/","page":"LDxGNC TPCFs","title":"LDxGNC TPCFs","text":"GaPSE.sum_ξ_LDxGNC_multipole\nGaPSE.map_sum_ξ_LDxGNC_multipole\nGaPSE.print_map_sum_ξ_LDxGNC_multipole","category":"page"},{"location":"LDxGNC_Correlations/#GaPSE.sum_ξ_LDxGNC_multipole","page":"LDxGNC TPCFs","title":"GaPSE.sum_ξ_LDxGNC_multipole","text":" sum_ξ_LDxGNC_multipole(s1, s, cosmo::Cosmology;\n s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,\n N_lob::Int = 100, N_trap::Int = 50,\n atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,\n enhancer::Float64=1e6, N_log::Int = 1000, \n pr::Bool = true,\n kwargs...) ::Tuple{Float64, Vector{Float64}}\n\nEvaluate the multipole of order L of all the two-point cross correlation multipole between the perturbations of the Luminosity Distance (LD) and the Galaxy Number Counts (GNC) and their sum in the comoving distance s1 and a comoving distance s from it for the input cosmo::Cosmology. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThis function makes a for-loop on the GaPSE.GR_EFFECTS_LDxGNC strings, calling ξ_LDxGNC_multipole for each of them. To each string corresponds pretty intuitively one of the 20 LDxGNC effects. They are currently, in order:\n\ndoppler_newton , lensing_newton , localgp_newton , integratedgp_newton , doppler_doppler , lensing_doppler , localgp_doppler , integratedgp_doppler , doppler_lensing , lensing_lensing , localgp_lensing , integratedgp_lensing , doppler_localgp , lensing_localgp , localgp_localgp , integratedgp_localgp , doppler_integratedgp , lensing_integratedgp , localgp_integratedgp , integratedgp_integratedgp ,\n\nInputs\n\ns1: the comoving distance where must be evaluated the integral\ns: the comoving distance from s1 where must be evaluated the integral\ncosmo::Cosmology: cosmology to be used in this computation\n\nOptional arguments\n\nThis function recall internally ξ_LDxGNC_multipole, so the kwargs are the same; we report them for comfortness:\n\nL::Int = 0: order of the Legendre polynomial to be used\nalg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):\n:quad -> the integration over mu will be preformed through the Julia function quadgk \nfrom the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n:trap -> the integration over mu will be preformed through the Julia function trapz \nfrom the Trapz.jl Julia package, that uses the simple trapezoidal rulae.\n:lobatto -> the integration over mu will be preformed through the Julia function gausslobatto \nfrom the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!\nuse_windows::Bool = false: tells if the integrand must consider the two window function phi and mathcalF\nN_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\nN_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\nkwargs... : other keyword arguments that will be passed to ALL the LDxGNC TPCF effect (ξ_LDxGNC_Doppler, ξ_LDxGNC_Lensing, ...); if one of them has that keyword argument, it will use the given value, otherwise it will be unaffected.\n\nReturns\n\nA tuple containing:\n\nthe sum of all the ξ multipoles as first element\na Vector{Float64} with all the values of each ξ; they are ordered following GR_EFFECTS_LDxGNC\n\nSee also: integrand_ξ_LDxGNC_multipole, ξ_LDxGNC_multipole, map_sum_ξ_LDxGNC_multipole, print_map_sum_ξ_LDxGNC_multipole, Cosmology, GR_EFFECTS_LDxGNC\n\n\n\n\n\n","category":"function"},{"location":"LDxGNC_Correlations/#GaPSE.map_sum_ξ_LDxGNC_multipole","page":"LDxGNC TPCFs","title":"GaPSE.map_sum_ξ_LDxGNC_multipole","text":" map_sum_ξ_LDxGNC_multipole(\n effect::Union{String,Function}, ss = nothing;\n s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,\n N_lob::Int = 100, N_trap::Int = 50,\n atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,\n enhancer::Float64=1e6, N_log::Int = 1000, \n pr::Bool = true,\n kwargs...) ::Tuple{Vector{Float64}, Vector{Float64}, Vector{Vector{Float64}}}\n\nEvaluate the multipole of order L of all the two-point cross correlation multipole between the perturbations of the Luminosity Distance (LD) and the Galaxy Number Counts (GNC) and their sum in the comoving distance s1, for all the comoving distances stored inside ss (representing the comoving distance from s1) for the input cosmo::Cosmology. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). If s1 = nothing, it is set s1 = cosmo.s_eff. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThis function makes a for-loop on the GaPSE.GR_EFFECTS_LDxGNC strings, calling map_ξ_LDxGNC_multipole for each of them. To each string corresponds pretty intuitively one of the 20 LDxGNC effects. They are currently, in order:\n\ndoppler_newton , lensing_newton , localgp_newton , integratedgp_newton , doppler_doppler , lensing_doppler , localgp_doppler , integratedgp_doppler , doppler_lensing , lensing_lensing , localgp_lensing , integratedgp_lensing , doppler_localgp , lensing_localgp , localgp_localgp , integratedgp_localgp , doppler_integratedgp , lensing_integratedgp , localgp_integratedgp , integratedgp_integratedgp ,\n\nInputs\n\ncosmo::Cosmology : cosmology to be used in this computation\nss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). This is why it is returned also the vector of the \"input\" values.\n\nOptional arguments\n\nThis function recall internally map_ξ_LDxGNC_multipole, so the kwargs are the same; we report them for comfortness:\n\ns1 = nothing : comoving distance from the observer where the TPCF should be evaluated; if s1 = nothing, it is automatically set s1 = cosmo.s_eff from the given input cosmo::Cosmology.\nL::Int = 0: order of the Legendre polynomial to be used\nalg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):\n:quad -> the integration over mu will be preformed through the Julia function quadgk \nfrom the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n:trap -> the integration over mu will be preformed through the Julia function trapz \nfrom the Trapz.jl Julia package, that uses the simple trapezoidal rulae.\n:lobatto -> the integration over mu will be preformed through the Julia function gausslobatto \nfrom the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!\nuse_windows::Bool = false: tells if the integrand must consider the two window function phi and mathcalF\nN_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\nN_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\nN_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing \npr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)\nkwargs... : other keyword arguments that will be passed to ALL the LDxGNC TPCF effect (ξ_LDxGNC_Doppler, ξ_LDxGNC_Lensing, ...); if one of them has that keyword argument, it will use the given value, otherwise it will be unaffected.\n\nReturns\n\nA tuple containing:\n\nas first element, the vector ss itself;\nas second one, the Vector{Float64} of the sum of all the ξ multipoles;\nas third one, a Vector{Vector{Float64}} with all the values of each ξ; they are ordered following GR_EFFECTS_LDxGNC\n\nSee also: map_ξ_LDxGNC_multipole, sum_ξ_LDxGNC_multipole, print_map_sum_ξ_LDxGNC_multipole, Cosmology, GR_EFFECTS_LDxGNC\n\n\n\n\n\n","category":"function"},{"location":"LDxGNC_Correlations/#GaPSE.print_map_sum_ξ_LDxGNC_multipole","page":"LDxGNC TPCFs","title":"GaPSE.print_map_sum_ξ_LDxGNC_multipole","text":" print_map_sum_ξ_LDxGNC_multipole(\n cosmo::Cosmology, out::String, ss = nothing;\n s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,\n N_lob::Int = 100, N_trap::Int = 50,\n atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,\n enhancer::Float64=1e6, N_log::Int = 1000, \n pr::Bool = true,\n single::Bool = true,\n kwargs...)\n\nEvaluate the multipole of order L of all the two-point cross correlation multipole between the perturbations of the Luminosity Distance (LD) and the Galaxy Number Counts (GNC) and their sum in the comoving distance s1, for all the comoving distances stored inside ss (representing the comoving distance from s1) for the input cosmo::Cosmology; finally, it saves the results inside the file out. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). If s1 = nothing, it is set s1 = cosmo.s_eff. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThis function makes a for-loop on the GaPSE.GR_EFFECTS_LDxGNC strings, calling map_ξ_LDxGNC_multipole for each of them. To each string corresponds pretty intuitively one of the 20 LDxGNC effects. They are currently, in order:\n\ndoppler_newton , lensing_newton , localgp_newton , integratedgp_newton , doppler_doppler , lensing_doppler , localgp_doppler , integratedgp_doppler , doppler_lensing , lensing_lensing , localgp_lensing , integratedgp_lensing , doppler_localgp , lensing_localgp , localgp_localgp , integratedgp_localgp , doppler_integratedgp , lensing_integratedgp , localgp_integratedgp , integratedgp_integratedgp ,\n\nInputs\n\ncosmo::Cosmology : cosmology to be used in this computation\nout::String : name of the file where the results must be stored.\nss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log).\n\nOptional arguments\n\nThis function recall internally map_ξ_LDxGNC_multipole, so the kwargs are the same; we report them for comfortness:\n\ns1 = nothing : comoving distance from the observer where the TPCF should be evaluated; if s1 = nothing, it is automatically set s1 = cosmo.s_eff from the given input cosmo::Cosmology.\nL::Int = 0: order of the Legendre polynomial to be used\nalg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):\n:quad -> the integration over mu will be preformed through the Julia function quadgk \nfrom the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n:trap -> the integration over mu will be preformed through the Julia function trapz \nfrom the Trapz.jl Julia package, that uses the simple trapezoidal rulae.\n:lobatto -> the integration over mu will be preformed through the Julia function gausslobatto \nfrom the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!\nuse_windows::Bool = false: tells if the integrand must consider the two window function phi and mathcalF\nN_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\nN_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\nN_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing \npr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)\nsingle::Bool = true : if true, all the CFs are printed inside the file of the sum, in a table with 18 columns (first one for ss, second for their sum an the next 20 for each effect). Otherwise, a new directory \"allstandalonesCFs\" is created (in the same path given in out) and they are separately saved in files there placed.\nkwargs... : other keyword arguments that will be passed to ALL the LDxGNC TPCF effect (ξ_LDxGNC_Doppler, ξ_LDxGNC_Lensing, ...); if one of them has that keyword argument, it will use the given value, otherwise it will be unaffected.\n\nSee also: map_ξ_LDxGNC_multipole, sum_ξ_LDxGNC_multipole, map_sum_ξ_LDxGNC_multipole, Cosmology, GR_EFFECTS_LDxGNC\n\n\n\n\n\n","category":"function"},{"location":"BackgroundData/","page":"Background Data","title":"Background Data","text":"DocTestSetup = quote\n using GaPSE\nend","category":"page"},{"location":"BackgroundData/#Background-functions","page":"Background Data","title":"Background functions","text":"","category":"section"},{"location":"BackgroundData/","page":"Background Data","title":"Background Data","text":"GaPSE.f0\nGaPSE.D0 \nGaPSE.ℋ0 \nGaPSE.BackgroundData","category":"page"},{"location":"BackgroundData/#GaPSE.f0","page":"Background Data","title":"GaPSE.f0","text":" const f0 :: Float64\n\nLinear growth rate at present time. Its value is equal to:\n\n f_0 simeq 05126998572951\n\n\n\n\n\n","category":"constant"},{"location":"BackgroundData/#GaPSE.D0","page":"Background Data","title":"GaPSE.D0","text":" const D0 :: Float64\n\nLinear growth factor at present time. Its value is equal to:\n\n D_0 = 10\n\n\n\n\n\n","category":"constant"},{"location":"BackgroundData/#GaPSE.ℋ0","page":"Background Data","title":"GaPSE.ℋ0","text":" const ℋ0 :: Float64\n\nComoving Hubble constant at present time. Its value is, in natural system (where the speed of light c=1): mathcalH_0 simeq 3335641times10^-4 h_0^-1mathrmMpc\n\n\n\n\n\n","category":"constant"},{"location":"BackgroundData/#GaPSE.BackgroundData","page":"Background Data","title":"GaPSE.BackgroundData","text":" BackgroundData(\n z::Vector{Float64}\n conftime::Vector{Float64}\n comdist::Vector{Float64}\n angdist::Vector{Float64}\n lumdist::Vector{Float64}\n D::Vector{Float64}\n f::Vector{Float64}\n ℋ::Vector{Float64}\n ℋ_p::Vector{Float64})\n\nStruct that contains all the relevant cosmological information for future computations. The data are stored with increasing distance values (so the first ones are associated to z=0). It is internally used in Cosmology.\n\nArguments\n\nz::Vector{Float64} : redshifts (adimensionals).\nconftime::Vector{Float64} : conformal times, measured in [Mpc/h].\ncomdist::Vector{Float64} : comoving distances, measured in [Mpc/h].\nangdist::Vector{Float64} : angular diameter distances, measured in [Mpc/h].\nlumdist::Vector{Float64} : luminosity distances, measured in [Mpc/h].\nD::Vector{Float64} : linear growth factors, normalized to 1.0 at the present day (adimensional).\nf::Vector{Float64} : linear growth rates (adimensional).\nℋ::Vector{Float64} : comoving Hubble parameters, measured in [h/Mpc].\nℋ_p::Vector{Float64} : derivatives of the comoving Hubble parameter wrt the conformal time. It is here manually computed with the Dierckx function derivative.\n\nConstructors\n\nBackgroundData(file::String, z_max; names = NAMES_BACKGROUND, h = 0.7)\n\nfile::string : input file where the data are stored; it is expected that such file is a background output of the CLASS program (link: https://github.com/lesgourg/class_public)\nz_max : the maximum redhsift we are interested in our analysis. The constructor will store the data necessary for a study only in 0 < z < z_max, for optimisation purposes (More precisely, the maximum distance stored will be 3*z_max).\nnames = NAMES_BACKGROUND : the column names of the file. If the colum order change from the default one NAMES_BACKGROUND, you must set as input the vector of string with the correct one, with the SAME names. They are, with the default order:\nz , proper time [Gyr] , conf. time [Mpc] , H [1/Mpc] , comov. dist. , ang.diam.dist. , lum. dist. , comov.snd.hrz. , (.)rho_g , (.)rho_b , (.)rho_cdm , (.)rho_lambda , (.)rho_ur , (.)rho_crit , gr.fac. D , gr.fac. f ,\nh = 0.7 : the adimensional hubble constant. By default, CLASS background data are measured with it numerically expressed (so distances are measured in Mpc, for example), while this code works with h in the unit of measure (so distances are measured in Mpc/h, for example). Change this value to 1.0 if the input data do not have this issue, or to your value of interest (0.67, 0.5, ...).\n\nSee also: CosmoParams, Cosmology\n\n\n\n\n\n","category":"type"},{"location":"CosmoUtils/","page":"Cosmology Utilities","title":"Cosmology Utilities","text":"DocTestSetup = quote\n using GaPSE\nend","category":"page"},{"location":"CosmoUtils/#The-Cosmology-Utilities","page":"Cosmology Utilities","title":"The Cosmology Utilities","text":"","category":"section"},{"location":"CosmoUtils/","page":"Cosmology Utilities","title":"Cosmology Utilities","text":"GaPSE.func_z_eff\nGaPSE.s\nGaPSE.μ\nGaPSE.s2\nGaPSE.y\nGaPSE.ϕ\nGaPSE.W\nGaPSE.V_survey\nGaPSE.A\nGaPSE.A_prime","category":"page"},{"location":"CosmoUtils/#GaPSE.func_z_eff","page":"Cosmology Utilities","title":"GaPSE.func_z_eff","text":" func_z_eff(s_min, s_max, z_of_s) ::Float64\n\nGiven:\n\nthe input comoving distances s_min and s_max\nthe spline z_of_s that for an input comoving distance s return the associated redshift z(s),\n\nthis function return the effective redshift z_mathrmeff, computed as follows:\n\nbeginsplit\nz_mathrmeff = \n frac\n int mathrmd^3mathbfs phi^2(mathbfs) z(s)\n \n int mathrmd^3mathbfs phi^2(mathbfs) \n = frac\n int_0^infty mathrmds s^2 phi^2(s) z(s) times\n int_4pimathrmd^2hatmathbfs W^2(hatmathbfs)\n \n int_0^infty mathrmds s^2 phi^2(s)times\n int_4pimathrmd^2hatmathbfs W^2(hatmathbfs)\n 5pt\n = frac\n int_0^infty mathrmds s^2 phi^2(s) z(s)\n \n int_0^infty mathrmds s^2 phi^2(s)\n 4pt\n = frac3s_mathrmmax^3 - s_mathrmmin^3 \n int_s_mathrmmin^s_mathrmmax mathrmds s^2 z(s) \nendsplit\n\nWe have used our assuption concerning the separability of the window function of the survey phi(mathbfs) into a radial and angular part, respectively phi(s) and W(mathbfhats):\n\n phi(mathbfs) = phi(s) W(mathbfhats) \n\nWe remember that all the distances are measured in h_0^-1mathrmMpc. The final integration over mathrmds is performed through the function quadgk of the QuadGK.jl Julia package.\n\nSee also: ϕ, W\n\n\n\n\n\n","category":"function"},{"location":"CosmoUtils/#GaPSE.s","page":"Cosmology Utilities","title":"GaPSE.s","text":" s(s1, s2, y) ::Float64\n\nReturn the value s = s(s_1 s_2 y) = sqrts_1^2 + s_2^2 - 2 s_1 s_2 y\n\nSee also: μ, s2, y\n\n\n\n\n\n","category":"function"},{"location":"CosmoUtils/#GaPSE.μ","page":"Cosmology Utilities","title":"GaPSE.μ","text":" μ(s1, s2, y) ::Float64\n\nReturn the cosine mu=hatmathbfs_1cdothatmathbfs of the angle between the comoving distances mathbfs_1 and mathbfs = mathbfs_2 - mathbfs_1. It can be easily shown that:\n\nmu = mu(s_1 s_2 y) = fracy s_2 - s_1s(s_1 s_2 y) \nquad s = s(s_1 s_2 y) = sqrts_1^2 + s^2 - 2 s_1 s_2 y\n\nwith y=costheta=hatmathbfs_1cdothatmathbfs_2 and where s is obtained from the function s. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nSee also: s, s2, y\n\n\n\n\n\n","category":"function"},{"location":"CosmoUtils/#GaPSE.s2","page":"Cosmology Utilities","title":"GaPSE.s2","text":" s2(s1, s, μ) ::Float64\n\nReturn the value s_2 = sqrts_1^2 + s^2 + 2 s_1 s mu\n\nSee also: s, μ, y\n\n\n\n\n\n","category":"function"},{"location":"CosmoUtils/#GaPSE.y","page":"Cosmology Utilities","title":"GaPSE.y","text":" y(s1, s, y) ::Float64\n\nReturn the cosine y=costheta=hatmathbfs_1cdothatmathbfs_2 of the angle between the comoving distances mathbfs_1 and mathbfs_2 = mathbfs_1 + mathbfs. It can be easily shown that:\n\ny = y(s_1 s mu) = fracmu s + s_1s_2(s_1 s mu) \nquad s_2 = s_2(s_1 s mu) = sqrts_1^2 + s^2 + 2 s_1 s mu\n\nwith mu=hatmathbfs_1cdothatmathbfs and where s_2 is obtained from the function s2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nSee also: s, s2, μ\n\n\n\n\n\n","category":"function"},{"location":"CosmoUtils/#GaPSE.ϕ","page":"Cosmology Utilities","title":"GaPSE.ϕ","text":" ϕ(s, s_min, s_max) ::Float64\n\nRadial part of the survey window function. Return 1.0 if is true that s_mathrmmin s s_mathrmmax and 0.0 otherwise.\n\nIn this software we made the assuption that the survey window function can be separated into a radial and angular part, i.e.:\n\n phi(mathbfs) = phi(s) W(mathbfhats)\n\nSee also: W\n\n\n\n\n\n","category":"function"},{"location":"CosmoUtils/#GaPSE.W","page":"Cosmology Utilities","title":"GaPSE.W","text":" W(θ, θ_max) ::Float64\n\nAngular part of the survey window function. Return 1.0 if is true that 0 leq theta theta_mathrmmax and 0.0 otherwise. It is implicitly assumed an azimutal simmetry of the survey.\n\nIn this software we made the assuption that the survey window function can be separated into a radial and angular part, i.e.:\n\n phi(mathbfs) = phi(s) W(mathbfhats)\n\nSee also: ϕ\n\n\n\n\n\n","category":"function"},{"location":"CosmoUtils/#GaPSE.V_survey","page":"Cosmology Utilities","title":"GaPSE.V_survey","text":" V_survey(s_min, s_max, θ_max) ::Float64\n\nReturn the volume of a survey with azimutal simmetry, i.e.:\n\nbeginsplit\n V(s_mathrmmax s_mathrmmin theta_mathrmmax) = C_mathrmup - C_mathrmdown + TC \n C_mathrmup = fracpi3 s_mathrmmax^3 \n (1 - costheta_mathrmmax)^2 (2 + costheta_mathrmmax) \n C_mathrmdown = fracpi3 s_mathrmmin^3 \n (1 - costheta_mathrmmax)^2 (2 + costheta_mathrmmax) \n TC = fracpi3 (s_mathrmmax^2 + s_mathrmmin^2 + \n s_mathrmmax s_mathrmmin) (s_mathrmmax - s_mathrmmin) \n costheta_mathrmmax sin^2theta_mathrmmax\nendsplit\n\n\n\n\n\n","category":"function"},{"location":"CosmoUtils/#GaPSE.A","page":"Cosmology Utilities","title":"GaPSE.A","text":" A(s_min, s_max, θ_max) ::Float64\n\nReturn the Power Spectrum multipole normalization coefficient A, i.e.:\n\n A(s_mathrmmax s_mathrmmin theta_mathrmmax)= \n frac\n V(s_mathrmmax s_mathrmmin theta_mathrmmax)\n 4 pi^2\n\nwhere V(s_mathrmmax s_mathrmmin theta_mathrmmax) is the survey volume.\n\nPay attention: this is NOT used for the normalization of PS, see instead A_prime\n\nSee also: V_survey\n\n\n\n\n\n","category":"function"},{"location":"CosmoUtils/#GaPSE.A_prime","page":"Cosmology Utilities","title":"GaPSE.A_prime","text":" A_prime :: Float64\n\nIt's the Power Spectrum multipole normalization coefficient A^, i.e.:\n\n A^ = frac3 A (s_mathrmmax^3 - s_mathrmmin^3) = \n frac14pi\n\nSee also: A, V_survey\n\n\n\n\n\n","category":"constant"},{"location":"OtherUtils/","page":"Other Utilities","title":"Other Utilities","text":"DocTestSetup = quote\n using GaPSE\nend","category":"page"},{"location":"OtherUtils/#Other-utilities","page":"Other Utilities","title":"Other utilities","text":"","category":"section"},{"location":"OtherUtils/","page":"Other Utilities","title":"Other Utilities","text":"GaPSE.check_compatible_dicts\nGaPSE.my_println_vec\nGaPSE.my_println_dict\nGaPSE.parent_directory\nGaPSE.check_parent_directory\nGaPSE.return_namefile\nGaPSE.check_namefile\nGaPSE.check_group\nGaPSE.check_fileisingroup\nGaPSE.number_to_string\nGaPSE.vecstring_to_vecnumbers\nGaPSE.readxy\nGaPSE.readxall\nGaPSE.readxyall\nGaPSE.sample_subdivision_begin\nGaPSE.sample_subdivision_middle","category":"page"},{"location":"OtherUtils/#GaPSE.check_compatible_dicts","page":"Other Utilities","title":"GaPSE.check_compatible_dicts","text":"check_compatible_dicts(ref::Dict, b::Dict, name::String = \"NO-NAME\")\n\nCompare the field of two Dict and check if the second one (b) is \"compatible\" with the first one (ref), i.e.:\n\nchecks if each of the key in b is also a key of ref;\nfor each key of b:\nif typeof(ref[key]) <: Real and !(typeof(ref[k]) <: Union{Bool, Int}), checks that typeof(b[k]) <: Real && typeof(b[k]) ≠ Bool\notherwise, checks that typeof(b[k]) == typeof(ref[k])\n\nIf someone of the check mentioned is false, raise an AssertionError, otherwise return nothing. The string name is only used inside the AssertionError messages for the correct name of the input b dictionary.\n\n\n\n\n\n","category":"function"},{"location":"OtherUtils/#GaPSE.parent_directory","page":"Other Utilities","title":"GaPSE.parent_directory","text":"parent_directory(s::String)::String\n\nReturn the name of the parent directory of the input filename s::String. Some examples of use:\n\ns = \"/Users/username/Downloads/file.txt\" => \"/Users/username/Downloads/\"\ns = \"/Users/username/Downloads/\" => \"/Users/username/\"\ns = \"/Users/username/Downloads\" => \"/Users/username/\"\ns = \"/Users/username/\" => \"/Users/\"\ns = \"/Users/username\" => \"/Users/\"\ns = \"/Users/\" => \"/\"\ns = \"/Users\" => \"/\"\ns = \"username/Downloads/file.txt\" => \"username/Downloads/\"\ns = \"username/Downloads/\" => \"username/\"\ns = \"username/Downloads\" => \"username/\"\ns = \"username/\" => \"./\"\ns = \"username\" => \"./\"\ns = \"file.txt\" => \"./\"\n\nIt's used inside the function check_parent_directory.\n\nSee also: check_parent_directory, return_namefile check_namefile \n\n\n\n\n\n","category":"function"},{"location":"OtherUtils/#GaPSE.check_parent_directory","page":"Other Utilities","title":"GaPSE.check_parent_directory","text":"check_parent_directory(s::String)\n\nChecks if the input namefile s::String is placed in an existing directory (whose name is obtained from s through the function parent_directory); if not, it raises an AssertionError. Some examples of the directory which are checked:\n\ns = \"/Users/username/Downloads/file.txt\" => \"/Users/username/Downloads/\"\ns = \"/Users/username/Downloads/\" => \"/Users/username/\"\ns = \"/Users/username/Downloads\" => \"/Users/username/\"\ns = \"/Users/username/\" => \"/Users/\"\ns = \"/Users/username\" => \"/Users/\"\ns = \"/Users/\" => \"/\"\ns = \"/Users\" => \"/\"\ns = \"username/Downloads/file.txt\" => \"username/Downloads/\"\ns = \"username/Downloads/\" => \"username/\"\ns = \"username/Downloads\" => \"username/\"\ns = \"username/\" => \"./\"\ns = \"username\" => \"./\"\ns = \"file.txt\" => \"./\"\n\nSee also: parent_directory, return_namefile check_namefile \n\n\n\n\n\n","category":"function"},{"location":"OtherUtils/#GaPSE.return_namefile","page":"Other Utilities","title":"GaPSE.return_namefile","text":"return_namefile(s::String)::String\n\nReturn the namefile of the input s::String, i.e. it removes the path from the name. Internally it uses the function parent_directory. Some examples of use:\n\ns = \"/Users/matteofoglieni/Downloads/\" => raises an AssertionError\ns = \"Downloads/\" => raises an AssertionError\ns = \"./Downloads/\" => raises an AssertionError\ns = \"file\" => \"file\"\ns = \"file.boh\" => \"file.boh\"\ns = \"/Users/matteo.foglieni/ciao.file\" => \"ciao.file\"\ns = \"matteo.foglieni/ciao.file.boh\" => \"ciao.file.boh\"\ns = \"/Users/matteofoglieni/Downloads/file.txt\" => \"file.txt\"\ns = \"./file.txt\" => \"file.txt\"\ns = \"./file.dat\" => \"file.dat\"\ns = \"file.txt\" => \"file.txt\"\ns = \"file.dat\" => \"file.dat\"\n\nSee also: parent_directory check_parent_directory check_namefile \n\n\n\n\n\n","category":"function"},{"location":"OtherUtils/#GaPSE.check_namefile","page":"Other Utilities","title":"GaPSE.check_namefile","text":"check_namefile(s::String)\n\nCheck if the input namefile s::String is a valid name for a file. Internally it uses the function return_namefile. Some examples of use:\n\ns = \"/Users/matteofoglieni/Downloads/\" => raises an AssertionError\ns = \"Downloads/\" => raises an AssertionError\ns = \"./Downloads/\" => raises an AssertionError\ns = \"file\" => no raises\ns = \"file.boh\" => no raises\ns = \"/Users/matteo.foglieni/ciao.file\" => no raises\ns = \"matteo.foglieni/ciao.file.boh\" => no raises\ns = \"/Users/matteofoglieni/Downloads/file.txt\" => no raises\ns = \"./file.txt\" => no raises\ns = \"./file.dat\" => no raises\ns = \"file.txt\" => no raises\ns = \"file.dat\" => no raises\n\nSee also: parent_directory, check_parent_directory, return_namefile \n\n\n\n\n\n","category":"function"},{"location":"OtherUtils/#GaPSE.check_group","page":"Other Utilities","title":"GaPSE.check_group","text":"check_group(s::String; valid_groups::Vector{String}=VALID_GROUPS)\n\nCheck if the input s::String belongs to valid groups; if not, it raises an AssertionError. The default VALID_GROUPS is made by the following strings: LD , GNC , GNCxLD , LDxGNC , generic ,\n\nSee also: check_fileisingroup\n\n\n\n\n\n","category":"function"},{"location":"OtherUtils/#GaPSE.check_fileisingroup","page":"Other Utilities","title":"GaPSE.check_fileisingroup","text":"check_fileisingroup(input::String, group::String;\n valid_groups::Vector{String}=VALID_GROUPS, comments::Bool=true)\n\nCheck if the filename input::String constains a set of data that are \"compatible\" with the input group::String. The default VALID_GROUPS is made by the following strings: LD , GNC , GNCxLD , LDxGNC , generic , If the file start with comments (lines starting with #), set comments = true.\n\nInternally it recalls the function check_group.\n\nSee also: check_group\n\n\n\n\n\n","category":"function"},{"location":"OtherUtils/#GaPSE.number_to_string","page":"Other Utilities","title":"GaPSE.number_to_string","text":"number_to_string(x::Number) ::String\n\nConvert a x::Number into a String with the following conventions:\n\nx = 3 -> \"3\"\nx = -2.15 -> \"-2.15\"\nx = 2.15 * im -> \"2.15im\"\nx = 0.0 + 2.15 * im -> \"2.15im\"\nx = - 0.0 - 2.15 * im -> \"-2.15im\"\nx = -3.1415 - 2.15 * im -> \"-3.1415-2.15im\"\nx = 3.1415 + 2.15 * im -> \"3.1415+2.15im\"\n\n\n\n\n\n","category":"function"},{"location":"OtherUtils/#GaPSE.vecstring_to_vecnumbers","page":"Other Utilities","title":"GaPSE.vecstring_to_vecnumbers","text":"vecstring_to_vecnumbers(v; \n dt::DataType = Float64 ) ::Vector{dt}\n\nTry to convert a vector of String into a Vector of data type dt. If that raises an Exception, it uses parse elementwise.\n\n\n\n\n\n","category":"function"},{"location":"OtherUtils/#GaPSE.readxy","page":"Other Utilities","title":"GaPSE.readxy","text":"readxy(input::String; comments::Bool=true, \n xdt::DataType = Float64, ydt::DataType = Float64\n ) ::Tuple{Vector{xdt},Vector{ydt}}\n\nRead the file input and return the two data colums with the input types xdt and ydt. If the file start with comments (lines starting with #), set comments = true.\n\nSee also: readxall, readxyall\n\n\n\n\n\n","category":"function"},{"location":"OtherUtils/#GaPSE.readxall","page":"Other Utilities","title":"GaPSE.readxall","text":"readxall(input::String; comments::Bool=true, \n xdt::DataType = Float64, ydt::DataType = Float64\n ) ::Tuple{Vector{xdt},Vector{Vector{ydt}}}\n\nRead the file input and return a tuple having\n\nas first element the data in the first column (with the input type xdt)\nas second element a vector that contains all the following columns (with the input type ydt)\n\nIf the file start with comments (lines starting with #), set comments = true.\n\nSee also: readxy, readxyall\n\n\n\n\n\n","category":"function"},{"location":"OtherUtils/#GaPSE.readxyall","page":"Other Utilities","title":"GaPSE.readxyall","text":"readxyall(input::String; comments::Bool=true, \n xdt::DataType = Float64, ydt::DataType = Float64,\n zdt::DataType=Float64\n ) ::Tuple{Vector{xdt},Vector{ydt},Vector{Vector{zdt}}}\n\nRead the file input and return a tuple having\n\nas first element the data in the first column (with the input type xdt)\nas second element the data in the second column (with the input type ydt)\nas third element a vector that contains all the following columns (with the input type zdt)\n\nIf the file start with comments (lines starting with #), set comments = true.\n\nSee also: readxy, readxall\n\n\n\n\n\n","category":"function"},{"location":"OtherUtils/#GaPSE.sample_subdivision_begin","page":"Other Utilities","title":"GaPSE.sample_subdivision_begin","text":"sample_subdivision_begin(x_min, x_stop, x_end; \n frac_begin::Float64 = 0.5, N::Int = 100, ass::Bool = true)\n\nReturn a vector of N+2 points inside the interval x_min ≤ x ≤ x_max linearly distributed with two different sampling:\n\nin x_min ≤ x ≤ x_stop there are around frac_begin * N points;\nin x_stop ≤ x ≤ x_max there are around (1.0 - frac_begin) * N points.\n\nfrac_begin is then the fraction of the N points that is inside the LEFT INTERVAL. If ass::Bool is set to false the assert checks on the input data will not be performed. \n\n\n\n\n\n","category":"function"},{"location":"OtherUtils/#GaPSE.sample_subdivision_middle","page":"Other Utilities","title":"GaPSE.sample_subdivision_middle","text":"sample_subdivision_middle(x_min, x_start, x_stop, x_max; \n frac_middle::Float64 = 0.5, rel_frac_begin::Union{Float64, Nothing} = nothing, \n N::Int = 100, ass::Bool = true)\n\nReturn a vector of N+3 points inside the interval x_min ≤ x ≤ x_max linearly distributed with three different sampling, depending on the values of frac_middle and rel_frac_begin.\n\nIf rel_frac_begin == nothing, defining the relative size of the segment x_min ≤ x ≤ x_start compared to the \"masked one\" x_min ≤ x ≤ x_start || x_stop ≤ x ≤ x_max as rel_prop_begin = (x_start - x_min) / (x_max - x_min - x_stop + x_start):\n\nin x_min ≤ x ≤ x_start there are around (1.0 - frac_middle) * rel_prop_begin * N points;\nin x_start ≤ x ≤ x_stop there are around frac_middle * N points;\nin x_stop ≤ x ≤ x_max there are around (1.0 - frac_middle) * (1.0 - rel_prop_begin) * N points.\n\nIf rel_frac_begin is instead a float inside the interval 0.0 < rel_frac_begin < 1.0: \n\nin x_min ≤ x ≤ x_start there are around (1.0 - frac_middle) * rel_frac_begin * N points;\nin x_start ≤ x ≤ x_stop there are around frac_middle * N points;\nin x_stop ≤ x ≤ x_max there are around (1.0 - frac_middle) * (1.0 - rel_frac_begin) * N points.\n\nfrac_middle is then the fraction of the N points that is inside the MIDDLE INTERVAL, while rel_frac_begin is the one inside the LEFT INTERVAL COMPARED TO THE MASKED TOTAL ONE. If ass::Bool is set to false the assert checks on the input data will not be performed. \n\n\n\n\n\n","category":"function"},{"location":"PowerSpectrum/","page":"Calculating Power Spectra","title":"Calculating Power Spectra","text":"DocTestSetup = quote\n using GaPSE\nend","category":"page"},{"location":"PowerSpectrum/#Fast-Fourier-Transforms-and-Power-Spectra","page":"Calculating Power Spectra","title":"Fast Fourier Transforms and Power Spectra","text":"","category":"section"},{"location":"PowerSpectrum/#The-FFTLog-package","page":"Calculating Power Spectra","title":"The FFTLog package","text":"","category":"section"},{"location":"PowerSpectrum/","page":"Calculating Power Spectra","title":"Calculating Power Spectra","text":"GaPSE.FFTLog.AbstractPlan\nGaPSE.FFTLog._c_window\nGaPSE.FFTLog._logextrap\nGaPSE.FFTLog._zeropad\nGaPSE.FFTLog._eval_cm!\nGaPSE.FFTLog._eval_ηm!\n\nGaPSE.FFTLog.SingleBesselPlan\nGaPSE.FFTLog.HankelPlan\nGaPSE.FFTLog._eval_gl\nGaPSE.FFTLog._eval_y!\nGaPSE.FFTLog._eval_gl_hm!\nGaPSE.FFTLog.prepare_FFTLog!\nGaPSE.FFTLog.prepare_Hankel!\nGaPSE.FFTLog.get_y\nGaPSE.FFTLog.evaluate_FFTLog\nGaPSE.FFTLog.evaluate_Hankel\nGaPSE.FFTLog.evaluate_Hankel!","category":"page"},{"location":"PowerSpectrum/#GaPSE.FFTLog.AbstractPlan","page":"Calculating Power Spectra","title":"GaPSE.FFTLog.AbstractPlan","text":" abstract type AbstractPlan end\n\nThe abstract type of all the Plan to be used in the code. At the moment, they are:\n\nSingleBesselPlan\nHankelPlan\n\n\n\n\n\n","category":"type"},{"location":"PowerSpectrum/#GaPSE.FFTLog._c_window","page":"Calculating Power Spectra","title":"GaPSE.FFTLog._c_window","text":" _c_window(N::AbstractArray, NCut::Int)\n\nReturns the smoothing window function W(x N_mathrmcut) as defined in Eq. (C.1) of McEwen et al. (2016):\n\nW(x) = begincases\n displaystyle\n fracx - x_mathrmminx_mathrmleft - x_mathrmmin - frac12pisinleft( 2pi fracx - x_mathrmminx_mathrmleft - x_mathrmminright) quadquad\n x x_mathrmleft12pt\n displaystyle\n 1 quadquadquadquadquadquadquadquad \n quadquadquadquadquadquadquad \n x_mathrmleft leq x leq x_mathrmright8pt\n displaystyle\n fracx_mathrmmax - xx_mathrmmax - x_mathrmright -\n frac12pisinleft(\n 2pi fracx_mathrmmax - xx_mathrmmax - x_mathrmright\n right) quad x x_mathrmright\nendcases\n\n\n\n\n\n","category":"function"},{"location":"PowerSpectrum/#GaPSE.FFTLog._logextrap","page":"Calculating Power Spectra","title":"GaPSE.FFTLog._logextrap","text":" _logextrap(x::Vector, \n n_extrap_low::Int, n_extrap_high::Int) ::Vector\n\nGiven an input LOGARITHMICALLY SPACED vector of values x, expands that vector adding n_extrap_low point on the left and n_extrap_high on the right. Consequently, for an input x of N values, it returns a vector X with length N + n_extrap_low + n_extrap_right.\n\nIt is not assumed that the spacing is the same in the two edges of the data.\n\n\n\n\n\n","category":"function"},{"location":"PowerSpectrum/#GaPSE.FFTLog._zeropad","page":"Calculating Power Spectra","title":"GaPSE.FFTLog._zeropad","text":" _zeropad(x::Vector, n_pad::Int)::Vector\n\nConcatenates n_pad zeros both on the left and on the right of the input vector x. Consequently, for an input x of N values, it returns a vector X with length N + 2 * n_pad.\n\n\n\n\n\n","category":"function"},{"location":"PowerSpectrum/#GaPSE.FFTLog._eval_cm!","page":"Calculating Power Spectra","title":"GaPSE.FFTLog._eval_cm!","text":" _eval_cm!(plan::AbstractPlan, fx)\n\nGiven a plan::AbstractPlan, compute the power-law expansion coefficients c_m of the input data vector fx. It is assumed that fx contains the y-axis values corresponding to the x-axis ones plan.x, and consequently their length must be the same. The computed cm vector is stored in plan.cm, and nothing is returned.\n\nFor a function f evaluated the N x-axis values x, the c_m coefficients are\n\nc_m = W_m sum_q=0^N-1 fracf(x_q)x_q^nu e^-frac2piNi m q\n\nwhere W_m is the smoothing window function computed via _c_window and nu is the bias parameter stored in plan.ν\n\nSee also: _c_window, AbstractPlan\n\n\n\n\n\n","category":"function"},{"location":"PowerSpectrum/#GaPSE.FFTLog._eval_ηm!","page":"Calculating Power Spectra","title":"GaPSE.FFTLog._eval_ηm!","text":" _eval_ηm!(plan::AbstractPlan)\n\nGiven an input plan::AbstractPlan, compute all the eta_m coefficients, defined as follows:\n\neta_m = frac2 pi mN Delta_ln x \n\nwhere N, Delta_ln x and the m vector are respectively plan.N, plan.d_ln_x and plan.m.\n\nThe computed ηm vector is stored in plan.cm, and nothing is returned.\n\nSee also: AbstractPlan\n\n\n\n\n\n","category":"function"},{"location":"PowerSpectrum/#GaPSE.FFTLog.SingleBesselPlan","page":"Calculating Power Spectra","title":"GaPSE.FFTLog.SingleBesselPlan","text":" mutable struct SingleBesselPlan{T,C} <: AbstractPlan\n\nThis struct contains all the elements necessary to evaluate the integral with one Bessel function. All the arguments of this struct are keyword arguments. Here we show the compelte list and their default values:\n\nx::Vector{T} : the LOGARITHMICALLY SPACED vector of x-axis values. You need always to provide this vector.\ny::Matrix{T} = zeros(10, 10) : the logarithmically spaced vector of the values where the transformed function will be evaluated. It has the same length of x\nfy::Matrix{T} = zeros(10, 10) : the y-axis of the transformed function; it is a vector if only one Bessel function order is provided in the functions\nhm::Matrix{C} = zeros(ComplexF64, 10, 10) : matrix of the coefficients h_m = c_m h_m mathrmcorr g_ell, where c_ms, h_m mathrmcorrs and g_ell are respectively stored in plan.cm, plan.hm_corr and plan.gl. Each column contains all the h_ms for a given spherical Bessel order ell. \nhm_corr::Matrix{C} = zeros(ComplexF64, 10, 10) : matrix of the coefficients h_m mathrmcorr = (x_0 y_0)^- i eta_m, where eta_m = frac2 pi mN Delta_ln x and x_0 and y_0 are the smallest values of plan.x and plan.y, respectively. Each column contains all the h_m mathrmcorrs for a given spherical Bessel order ell. \nd_ln_x::T = log(x[2] / x[1]) : the spacing between the x elements.\nfy_corr::Matrix{T} = zeros(10, 10) : matrix of the coefficients K(y) = fracsqrtpi4 y^nu, where nu is the bias paremeter stored in plan.ν. Each column contains all the h_m mathrmcorrs for a given spherical Bessel order ell. \n\noriginal_length::Int = length(x) : the original inpout length of the x vector; it is stored because, for numerical stability purposes, during the computation this vector is expanded at the edged, and so the input function ones. \ngl::Matrix{C} = zeros(ComplexF64, 100, 100) : vector with the g_ell values for all the input spherical Bessel order.\nν::T = 1.01 : bias parameter.\nn_extrap_low::Int = 0 : number of points to concatenate on the left of x, logarithmically distributed with the same ratio of the left-edge elements of x\nn_extrap_high::Int = 0 : number of points to concatenate on the right of x, logarithmically distributed with the same ratio of the right-edge elements of x\nc_window_width::T = 0.25 : position where the tapering by the window function begins; by default c_window_width= 0.25, so is begins when m = pm 075 times N2, where N is the size of the input array.\nn_pad::Int = 0 : number of zeros to be concatenated both on the left and on the right of the input function.\nn::Int = 0 : the derivative order for the spherical Bessel function.\nN::Int = original_length + n_extrap_low + n_extrap_high + 2 * n_pad : number of points where the input function is known; are considered both the \"true values\" and the fake ones, added for a more numerically stable fft. \nm::Vector{T} = zeros(N) : vector with all the indexes that will be used for the power-law expansion of the input function\ncm::Vector{C} = zeros(ComplexF64, N) : vector containing all the input function power-law exapnsion c_m coefficients.\nηm::Vector{T} = zeros(N) : vector of all the eta_m = frac2 pi mN Delta_ln x coefficients.\nplan_rfft::FFTW.rFFTWPlan = plan_rfft(randn(1024)) : a random initialized fft plan of FFTW\nplan_irfft = plan_irfft( randn(Complex{Float64}, 2, Int((original_length + n_extrap_low + n_extrap_high + 2 * n_pad) / 2) + 1), original_length + n_extrap_low + n_extrap_high + 2 * n_pad, 2 ) : \n\nSee also: AbstractPlan\n\n\n\n\n\n","category":"type"},{"location":"PowerSpectrum/#GaPSE.FFTLog.HankelPlan","page":"Calculating Power Spectra","title":"GaPSE.FFTLog.HankelPlan","text":" mutable struct HankelPlan{T,C} <: AbstractPlan\n\nA specific type of FFTLogPlan designed for the Hankel transform. Its arguments are the same of SingleBesselPlan, checks its documentation for more information.\n\nSee also: SingleBesselPlan, AbstractPlan\n\n\n\n\n\n","category":"type"},{"location":"PowerSpectrum/#GaPSE.FFTLog._eval_gl","page":"Calculating Power Spectra","title":"GaPSE.FFTLog._eval_gl","text":" _eval_gl(ell, z::Vector, n::Int )::Vector\n\nEvaluate the g_ell coefficients, defined as\n\ng_ell^(n)(z) = (-1)^n 2^z-n frac\n Gammaleft(fracell + z - n2right)\n \n Gammaleft(frac3 + ell + n - z2right)\n \n\n\n\n\n\n","category":"function"},{"location":"PowerSpectrum/#GaPSE.FFTLog._eval_y!","page":"Calculating Power Spectra","title":"GaPSE.FFTLog._eval_y!","text":" _eval_y!(plan::Union{SingleBesselPlan, HankelPlan}, ell::Vector)\n\nGiven an input plan::Union{SingleBesselPlan, HankelPlan}, compute the y values where the output function will be evaluated and the coefficient K(y) outside the IFFT. They are, respectively:\n\ny = fracell + 1x quadquad K(y) = fracsqrtpi4 y^nu\n\nThe vector of their values are stored respectively in plan.y and plan.fy_corr, and nothing is returned.\n\nSee also: SingleBesselPlan, HankelPlan\n\n\n\n\n\n","category":"function"},{"location":"PowerSpectrum/#GaPSE.FFTLog._eval_gl_hm!","page":"Calculating Power Spectra","title":"GaPSE.FFTLog._eval_gl_hm!","text":" _eval_gl_hm!(plan::Union{SingleBesselPlan, HankelPlan}, ell::Vector)\n\nGiven an input plan::Union{SingleBesselPlan, HankelPlan}, compute the g_ell values and the h_m mathrmcorr coefficents inside the IFFT. They are, respectively:\n\ng_ell^(n)(z) = (-1)^n 2^z-n frac\n Gammaleft(fracell + z - n2right)\n \n Gammaleft(frac3 + ell + n - z2right)\n quadquad \nh_m mathrmcorr = (x_0 y_0)^- i eta_m\n\nwhere eta_m = frac2 pi mN Delta_ln x, and x_0 y_0 are the smallest values of plan.x and plan.y, respectively. \n\nThe vector of their values are stored in plan.gl and plan.hy_corr, and nothing is returned.\n\nSee also: SingleBesselPlan, HankelPlan\n\n\n\n\n\n","category":"function"},{"location":"PowerSpectrum/#GaPSE.FFTLog.prepare_FFTLog!","page":"Calculating Power Spectra","title":"GaPSE.FFTLog.prepare_FFTLog!","text":" prepare_FFTLog!(plan::Union{SingleBesselPlan, HankelPlan}, ell::Vector)\n\nGiven an input plan::Union{SingleBesselPlan, HankelPlan}, pre-plan an optimized real-input FFT for all the Bessel function orders stored in the vector ell. In other words, it computes:\n\nthe y vector of values where the transformed will be evaluated (stored in plan.y).\nthe corresponding gl vector of g_ell values (stored in plan.gl).\nthe m vector of indexes for the c_m coefficents (stored in plan.m).\nthe corresponding ηm and hm_corr vector of eta_m and h_m mathrmcorr values (stored in plan.ηm and plan.hm_corr).\n\nSee also: SingleBesselPlan, HankelPlan\n\n\n\n\n\n","category":"function"},{"location":"PowerSpectrum/#GaPSE.FFTLog.prepare_Hankel!","page":"Calculating Power Spectra","title":"GaPSE.FFTLog.prepare_Hankel!","text":" prepare_Hankel!(plan::HankelPlan, ell::Vector)\n\nGiven an input plan::HankelPlan, pre-plan an optimized real-input FFT for all the Bessel function orders stored in the vector ell concerning an Hankel transform. Same as prepare_FFTLog, checks its documentation for more information.\n\nSee also: HankelPlan, prepare_FFTLog!\n\n\n\n\n\n","category":"function"},{"location":"PowerSpectrum/#GaPSE.FFTLog.get_y","page":"Calculating Power Spectra","title":"GaPSE.FFTLog.get_y","text":" get_y(plan::Union{SingleBesselPlan, HankelPlan})::Vector\n\nReturn the computed y vector, containing the values where the transformed function will be evaluated.\n\nSee also: SingleBesselPlan, HankelPlan\n\n\n\n\n\n","category":"function"},{"location":"PowerSpectrum/#GaPSE.FFTLog.evaluate_FFTLog","page":"Calculating Power Spectra","title":"GaPSE.FFTLog.evaluate_FFTLog","text":"evaluate_FFTLog(plan::AbstractPlan, fx)::Union{Vector, Matrix}\n\nGiven an input plan::AbstractPlan, evaluate the FFT fy of the fx y-axis data on the basis of the parameters stored in plan. The result is both stored in plan.fy and retuned as output.\n\nSee also: AbstractPlan\n\n\n\n\n\nevaluate_FFTLog(plan::Union{SingleBesselPlan, HankelPlan}, fx)::Union{Vector, Matrix}\n\nGiven an input plan::Union{SingleBesselPlan, HankelPlan}, evaluate the FFT fy of the fx y-axis data on the basis of the parameters stored in plan. The result is both stored in plan.fy and retuned as output.\n\nSee also: SingleBesselPlan,HankelPlan \n\n\n\n\n\n","category":"function"},{"location":"PowerSpectrum/#GaPSE.FFTLog.evaluate_Hankel","page":"Calculating Power Spectra","title":"GaPSE.FFTLog.evaluate_Hankel","text":"evaluate_Hankel(plan::HankelPlan, fx)::Union{Vector, Matrix}\n\nGiven an input plan::HankelPlan, evaluate the FFT fy of the fx y-axis data on the basis of the parameters stored in plan for an Hankel transform. The result is both stored in plan.fy and retuned as output.\n\nSee also: HankelPlan\n\n\n\n\n\n","category":"function"},{"location":"PowerSpectrum/#GaPSE.FFTLog.evaluate_Hankel!","page":"Calculating Power Spectra","title":"GaPSE.FFTLog.evaluate_Hankel!","text":"evaluate_Hankel!(fy, plan::HankelPlan, fx)\n\nGiven an input plan::HankelPlan, evaluate the FFT fy of the fx y-axis data on the basis of the parameters stored in plan for an Hankel transform. The result is stored both in plan.fy and in the input fy.\n\nSee also: HankelPlan\n\n\n\n\n\n","category":"function"},{"location":"PowerSpectrum/#The-Power-Spectrum-with-FFTLog","page":"Calculating Power Spectra","title":"The Power Spectrum with FFTLog","text":"","category":"section"},{"location":"PowerSpectrum/","page":"Calculating Power Spectra","title":"Calculating Power Spectra","text":"GaPSE.FFTLog_PS_multipole\nGaPSE.FFTLog_all_PS_multipole","category":"page"},{"location":"PowerSpectrum/#GaPSE.FFTLog_PS_multipole","page":"Calculating Power Spectra","title":"GaPSE.FFTLog_PS_multipole","text":" FFTLog_PS_multipole(ss, xis;\n pr::Bool=true,\n L::Int=0, ν::Union{Float64,Nothing}=nothing,\n n_extrap_low::Int=500,\n n_extrap_high::Int=500, n_pad::Int=500,\n )\n\nComputes the Power Spectrum through the FFTLog algorithm. More precisely, it computes the L-order PS multipole through the following Fast Fourier Transform and the effective redshift approximation\n\nP_L(k) = frac2 L + 1A^ (-i)^L phi(s_mathrmeff) int_0^infty \n mathrmd s s^2 j_L(ks) f_mathrmin(s) \n quad A^ = frac14pi\n\nwhere f_mathrmin is the function samples by ss and xis.\n\nOptional arguments\n\npr::Bool=true : want to print the automatic messages to the screen?\nL::Int=0 : which multipole order should I use for this computation? IT MUST MATCH THE MULTIPOLE ORDER OF THE INPUT TPCF!\nν::Union{Float64,Nothing} = nothing : bias parameter, i.e. exponent used to \"balance\" the curve; if nothing, will be set automatically to 1.5\nn_extrap_low::Int = 500 and n_extrap_high::Int = 500 : number of points to concatenate on the left/right of the input x-axis ss vector, logarithmically distributed with the same ratio of the left/right-edge elements of ss.\nn_pad::Int = 500 : number of zeros to be concatenated both on the left and on the right of the input function. They stabilize a lot the algorithm.\n\nSee also: PS_multipole\n\n\n\n\n\n","category":"function"},{"location":"PowerSpectrum/#GaPSE.FFTLog_all_PS_multipole","page":"Calculating Power Spectra","title":"GaPSE.FFTLog_all_PS_multipole","text":" FFTLog_all_PS_multipole(input::String,\n group::String=VALID_GROUPS[end];\n L::Int=0, pr::Bool=true,\n ν::Union{Float64,Nothing,Vector{Float64}}=nothing,\n n_extrap_low::Int=500,\n n_extrap_high::Int=500, n_pad::Int=500\n )\n\nComputes the Power Spectrum through the FFTLog algorithm for a set of TPCFs. More precisely, it read the input file input, taking the first column as the x-axis ss vector and the following columns as the y-axis ones, and computes the L-order PS multipole through the following Fast Fourier Transform and the effective redshift approximation\n\nP_L(k) = frac2 L + 1A^ (-i)^L phi(s_mathrmeff) int_0^infty \n mathrmd s s^2 j_L(ks) f_mathrmin(s) \n quad A^ = frac14pi\n\nwhere f_mathrmin is the function samples by ss and each y-axis xis.\n\nThe group::String=VALID_GROUPS[end] argument allow you to specify the group of the input TPCF, if they were computed through GAPSE. The allowed values for this argument are: LD , GNC , GNCxLD , LDxGNC , generic ,\n\nIf you choose a group pay attention that the number of input TPCF must match the group number (16, 25, 20 and 20 respectively). The last group name (which is also the default value) is used in case the input xis do not belog to a specific group (and so no predefined number is expected).\n\nOptional arguments\n\nL::Int=0 : which multipole order should I use for this computation? IT MUST MATCH THE MULTIPOLE ORDER OF THE INPUT TPCF!\npr::Bool=true : want to print the automatic messages to the screen?\nν::Union{Float64,Nothing} = nothing : bias parameter, i.e. exponent used to \"balance\" the curve; if nothing, will be set automatically to 1.5\nn_extrap_low::Int = 500 and n_extrap_high::Int = 500 : number of points to concatenate on the left/right of the input x-axis ss vector, logarithmically distributed with the same ratio of the left/right-edge elements of ss.\nn_pad::Int = 500 : number of zeros to be concatenated both on the left and on the right of the input function. They stabilize a lot the algorithm.\ncut_first_n::Int=0 and cut_last_n::Int=0 : you can cout the first and/or last n elements of the input data, if they are highly irregular.\n\nSee also: FFTLog_PS_multipole, PS_multipole\n\n\n\n\n\n","category":"function"},{"location":"PowerSpectrum/#The-Power-Spectrum-with-TwoFAST","page":"Calculating Power Spectra","title":"The Power Spectrum with TwoFAST","text":"","category":"section"},{"location":"PowerSpectrum/","page":"Calculating Power Spectra","title":"Calculating Power Spectra","text":"GaPSE.TwoFAST_PS_multipole\nGaPSE.TwoFAST_all_PS_multipole","category":"page"},{"location":"PowerSpectrum/#GaPSE.TwoFAST_PS_multipole","page":"Calculating Power Spectra","title":"GaPSE.TwoFAST_PS_multipole","text":" TwoFAST_PS_multipole(f_in;\n int_s_min::Float64 = 1e-1, int_s_max::Float64 = 1e3,\n L::Int = 0, N::Int = 1024, pr::Bool = true,\n k0::Union{Nothing,Float64} = nothing,\n right::Union{Float64,Nothing} = nothing\n ) ::Tuple{Vector{Float64}, Vector{Float64}}\n\nComputes the Power Spectrum from the input spline f_in through the TwoFAST xicalc function of the TwoFAST Julia package. More precisely, it computes the L-order PS multipole through the following Fast Fourier Transform and the effective redshift approximation\n\nP_L(k) = frac2 L + 1A^ (-i)^L phi(s_mathrmeff) int_0^infty \n mathrmd s s^2 j_L(ks) f_mathrmin(s) \n quad A^ = frac14pi\n\nwhere f_mathrmin is the inpunt spline.\n\nOptional arguments\n\npr::Bool=true : want to print the automatic messages to the screen?\nL::Int=0 : which multipole order should I use for this computation? IT MUST MATCH THE MULTIPOLE ORDER OF THE INPUT TPCF!\nN::Int = 1024 : number of points to be used in Fourier transform \nint_s_min::Float64 = 1e-1 and int_s_max::Float64 = 1e3: extremes of integration\nk0::Union{Nothing,Float64} = nothing : starting point for the xicalc function; if nothing, it will be set k0 = 1.0 / int_s_max\nright::Union{Float64,Nothing} = nothing : do you want to cut the output elements with ks .> right? if set to nothing, no cut will be done.\n\nSee also: PS_multipole\n\n\n\n\n\n TwoFAST_PS_multipole(ss, fs;\n int_s_min::Float64 = 1e-1, int_s_max::Float64 = 1e3,\n epl::Bool = true, pr::Bool = true, L::Int = 0,\n N_left::Int = 12, N_right::Int = 12,\n p0_left = [-2.0, 1.0], p0_right = [-2.0, 1.0],\n k0::Union{Nothing,Float64} = nothing\n ) ::Tuple{Vector{Float64}, Vector{Float64}}\n\nTakes the input data vector ss and fs and creates a spline from them, passing it as input tho the other TwoFAST_PS_multipole method. Depending on the options, it may create also a power law epansions on the edges.\n\nOptional arguments\n\npr::Bool=true : want to print the automatic messages to the screen?\nL::Int=0 : which multipole order should I use for this computation? IT MUST MATCH THE MULTIPOLE ORDER OF THE INPUT TPCF!\nepl::Bool=true : do you want to extend the edges of the input vectors using two fitted power-laws (obtained from EPLs)\nN_left::Int = 12 and N_right::Int = 12 : number of points from left right edges to be used for the power law fitting in EPLs. They matters only if in the given input file ξ is not defined until the extremes of integration int_s_min and int_s_max.\nint_s_min::Float64 = 1e-1 and int_s_max::Float64 = 1e3: extremes of integration; if epl is set to false, their values will be automatically set to min(ss...) and max(ss...) respectively. Their values do matter only if epl=true. \np0_left=[-2.0, 1.0] and p0_right=[-2.0, 1.0]: vectors with the initial values for the left/right power-law fitting of EPLs; the power-law is in the form y = f(x) = b * x^s, so the first vector value is the initial value of s (and of course the second is the one of b).\nk0::Union{Nothing,Float64} = nothing : starting point for the xicalc function; if nothing, it will be set k0 = 1.0 / max(ss...)\nright::Union{Float64,Nothing} = nothing : do you want to cut the output elements with ks .> right? if set to nothing, no cut will be done.\nN::Int = 1024 : number of points to be used in Fourier transform \ncut_first_n::Int=0 and cut_last_n::Int=0 : you can cout the first and/or last n elements of the input data, if they are highly irregular.\n\nSee also: PS_multipole\n\n\n\n\n\n","category":"function"},{"location":"PowerSpectrum/#GaPSE.TwoFAST_all_PS_multipole","page":"Calculating Power Spectra","title":"GaPSE.TwoFAST_all_PS_multipole","text":" TwoFAST_all_PS_multipole(input::String,\n group::String=VALID_GROUPS[end];\n L::Int = 0, pr::Bool = true, \n kwargs...)\n\nComputes the Power Spectrum through the TwoFAST xicalc function of the TwoFAST Julia package for a set of TPCFs. More precisely, it read the input file input, taking the first column as the x-axis ss vector and the following columns as the y-axis ones, and computes the L-order PS multipole through the following Fast Fourier Transform and the effective redshift approximation\n\nP_L(k) = frac2 L + 1A^ (-i)^L phi(s_mathrmeff) int_0^infty \n mathrmd s s^2 j_L(ks) f_mathrmin(s) \n quad A^ = frac14pi\n\nwhere f_mathrmin is the function samples by ss and each y-axis xis.\n\nThe group::String=VALID_GROUPS[end] argument allow you to specify the group of the input TPCF, if they were computed through GAPSE. The allowed values for this argument are: LD , GNC , GNCxLD , LDxGNC , generic ,\n\nIf you choose a group pay attention that the number of input TPCF must match the group number (16, 25, 20 and 20 respectively). The last group name (which is also the default value) is used in case the input xis do not belog to a specific group (and so no predefined number is expected).\n\nOptional arguments\n\npr::Bool=true : want to print the automatic messages to the screen?\nL::Int=0 : which multipole order should I use for this computation? IT MUST MATCH THE MULTIPOLE ORDER OF THE INPUT TPCF!\nepl::Bool=true : do you want to extend the edges of the input vectors using two fitted power-laws (obtained from EPLs)\nN_left::Int = 12 and N_right::Int = 12 : number of points from left right edges to be used for the power law fitting in EPLs. They matters only if in the given input file ξ is not defined until the extremes of integration int_s_min and int_s_max.\nint_s_min::Float64 = 1e-1 and int_s_max::Float64 = 1e3: extremes of integration; if epl is set to false, their values will be automatically set to min(ss...) and max(ss...) respectively. Their values do matter only if epl=true. \np0_left=[-2.0, 1.0] and p0_right=[-2.0, 1.0]: vectors with the initial values for the left/right power-law fitting of EPLs; the power-law is in the form y = f(x) = b * x^s, so the first vector value is the initial value of s (and of course the second is the one of b).\nk0::Union{Nothing,Float64} = nothing : starting point for the xicalc function; if nothing, it will be set k0 = 1.0 / max(ss...)\nright::Union{Float64,Nothing} = nothing : do you want to cut the output elements with ks .> right? if set to nothing, no cut will be done.\nN::Int = 1024 : number of points to be used in Fourier transform \ncut_first_n::Int=0 and cut_last_n::Int=0 : you can cout the first and/or last n elements of the input data, if they are highly irregular.\n\nSee also: TwoFAST_PS_multipole, PS_multipole\n\n\n\n\n\n","category":"function"},{"location":"PowerSpectrum/#The-Power-Spectrum-multipole-computation","page":"Calculating Power Spectra","title":"The Power Spectrum multipole computation","text":"","category":"section"},{"location":"PowerSpectrum/","page":"Calculating Power Spectra","title":"Calculating Power Spectra","text":"GaPSE.PS_multipole\nGaPSE.print_PS_multipole\nGaPSE.all_PS_multipole\nGaPSE.print_all_PS_multipole","category":"page"},{"location":"PowerSpectrum/#GaPSE.PS_multipole","page":"Calculating Power Spectra","title":"GaPSE.PS_multipole","text":" PS_multipole(ss, fs; \n pr::Bool = true, L::Int = 0, \n alg::Symbol = :fftlog, \n cut_first_n::Int = 0, cut_last_n::Int = 0, \n kwargs...\n ) ::Tuple{Vector{Float64}, Vector{Float64}}\n\n PS_multipole(input::String; \n kwargs...)\n\nReturn the L-order PS multipole through the following Fast Fourier Transform and the effective redshift approximation:\n\nP_L(k) = frac2 L + 1A^ (-i)^L phi(s_mathrmeff) int_0^infty \n mathrmd s s^2 j_L(ks) f_mathrmin(s) \n quad A^ = frac14pi\n\nThe second method reads the input file, takes the first column as ss and the second as fs and recalls the first method.\n\nCurrenlty, there are two algorithms you can choose in order to perform the computation; you can choose which one to use through the keyword value alg:\n\nalg = :fftlog (default and recommended option) will employ the FFTLog algorithm.\nalg = :twofast will employ the TwoFAST xicalc function of the TwoFAST Julia package. Note that in the computation the integration range 0leq s leq infty is reduced to int_s_min ≤ s ≤ int_s_max. This alogrithm is not the ideal choise, because TwoFAST is conceived for the direction PS -> TPCF, while is not 100% trustworthy for the other way round.\n\nIMPORTANT: no matter which algorithm you choose, you will need to give the input data in a LOGARITHMICALLY DISTRIBUTED scale. A linear distribution does not fit for the algorithms to apply.\n\nOptional arguments\n\nDepending on the algorithm you choose, the options would change. The options in common are:\n\npr::Bool=true : want to print the automatic messages to the screen?\nL::Int=0 : which multipole order should I use for this computation? IT MUST MATCH THE MULTIPOLE ORDER OF THE INPUT TPCF!\ncut_first_n::Int=0 and cut_last_n::Int=0 : you can cout the first and/or last n elements of the input data, if they are highly irregular.\n\nThe specific ones for alg = :fftlog are:\n\nν::Union{Float64,Nothing} = nothing : bias parameter, i.e. exponent used to \"balance\" the curve; if nothing, will be set automatically to 1.5\nn_extrap_low::Int = 500 and n_extrap_high::Int = 500 : number of points to concatenate on the left/right of the input x-axis ss vector, logarithmically distributed with the same ratio of the left/right-edge elements of ss.\nn_pad::Int = 500 : number of zeros to be concatenated both on the left and on the right of the input function. They stabilize a lot the algorithm.\n\nThe specific ones for alg = :twofast are:\n\nepl::Bool=true : do you want to extend the edges of the input vectors using two fitted power-laws (obtained from EPLs)\nN_left::Int = 12 and N_right::Int = 12 : number of points from left right edges to be used for the power law fitting in EPLs. They matters only if in the given input file ξ is not defined until the extremes of integration int_s_min and int_s_max.\nint_s_min::Float64 = 1e-1 and int_s_max::Float64 = 1e3: extremes of integration; if epl is set to false, their values will be automatically set to min(ss...) and max(ss...) respectively. Their values do matter only if epl=true. \np0_left=[-2.0, 1.0] and p0_right=[-2.0, 1.0]: vectors with the initial values for the left/right power-law fitting of EPLs; the power-law is in the form y = f(x) = b * x^s, so the first vector value is the initial value of s (and of course the second is the one of b).\nk0::Union{Nothing,Float64} = nothing : starting point for the xicalc function; if nothing, it will be set k0 = 1.0 / max(ss...)\nright::Union{Float64,Nothing} = nothing : do you want to cut the output elements with ks .> right? if set to nothing, no cut will be done.\nN::Int = 1024 : number of points to be used in Fourier transform \n\nAnalytical derivation\n\nThe analytical expression previously showed can be easily obtained from the standard one:\n\nbeginsplit\n P_L(k) = frac2 L + 1A (-i)^L \n int_0^infty mathrmd s_1 s_1^2 \n int_0^infty mathrmd s s^2 \n int_-1^+1 mathrmd mu \n j_L(ks) xi(s_1 s mu) phi(s_1) phi(s_2) \n mathcalL_L(mu) Fleft(fracss_1 mu right) \n mathrmwith s_2 = s_2(s_1 s μ) = sqrts_1^2 + s^2 + 2s_1smu\n \n quad A(s_mathrmmax s_mathrmmin theta_mathrmmax) \n frac\n V(s_mathrmmax s_mathrmmin theta_mathrmmax)\n 4 pi^2\nendsplit\n\nwith the definition\n\nf_mathrmin(s_1 s) = int_-1^+1 mathrmd mu \n xi(s_1 s mu) phi(s_2) \n mathcalL_L(mu) Fleft(fracss_1 mu right)\n\nand the application of the effective redshift approximation.\n\nReturns\n\nA Tuple{Vector{Float64}, Vector{Float64}} with:\n\nthe k values vector as first element;\nthe correspoding PS pk values vector as second one.\n\nSee also: V_survey, A, A_prime, EPLs, print_PS_multipole\n\n\n\n\n\n","category":"function"},{"location":"PowerSpectrum/#GaPSE.print_PS_multipole","page":"Calculating Power Spectra","title":"GaPSE.print_PS_multipole","text":" print_PS_multipole(ss, fs, out::String;\n L::Int=0, pr::Bool=true, alg::Symbol=:fftlog, kwargs...)\n print_PS_multipole(input::String, out::String;\n kwargs...)\n\nTakes in input a filename input where is stored a TPCF multipole, calculate the L-order PS multipole through the following Fast Fourier Transform and the effective redshift approximation\n\nP_L(k) = frac2 L + 1A^ (-i)^L phi(s_mathrmeff) int_0^infty \n mathrmd s s^2 j_L(ks) f_mathrmin(s) \n quad A^ = frac14pi\n\nwhere f_mathrmin is the function samples by ss and xis, and save it in the file out, together with the options used for the computation.\n\nThe second method reads the input file, takes the first column as ss and the second as fs and recalls the first method.\n\nOptional arguments\n\nDepending on the algorithm you choose, the options would change. The options in common are:\n\npr::Bool=true : want to print the automatic messages to the screen?\nL::Int=0 : which multipole order should I use for this computation? IT MUST MATCH THE MULTIPOLE ORDER OF THE INPUT TPCF!\ncut_first_n::Int=0 and cut_last_n::Int=0 : you can cout the first and/or last n elements of the input data, if they are highly irregular.\nalg::Symbol = :fftlog : algorithm to be used for the computation. Currenlty, there are two algorithms you can coose in order to perform the computation:\nalg = :fftlog (default and recommended option) will employ the FFTLog algorithm.\nalg = :twofast will employ the TwoFAST xicalc function of the TwoFAST Julia package. Note that in the computation the integration range 0leq s leq infty is reduced to int_s_min ≤ s ≤ int_s_max. This alogrithm is not the ideal choise, because TwoFAST is conceived for the direction PS -> TPCF, while is not 100% trustworthy for the other way round.\n\nThe specific ones for alg = :fftlog are:\n\nν::Union{Float64,Nothing} = nothing : bias parameter, i.e. exponent used to \"balance\" the curve; if nothing, will be set automatically to 1.5\nn_extrap_low::Int = 500 and n_extrap_high::Int = 500 : number of points to concatenate on the left/right of the input x-axis ss vector, logarithmically distributed with the same ratio of the left/right-edge elements of ss.\nn_pad::Int = 500 : number of zeros to be concatenated both on the left and on the right of the input function. They stabilize a lot the algorithm.\n\nThe specific ones for alg = :twofast are:\n\nepl::Bool=true : do you want to extend the edges of the input vectors using two fitted power-laws (obtained from EPLs)\nN_left::Int = 12 and N_right::Int = 12 : number of points from left right edges to be used for the power law fitting in EPLs. They matters only if in the given input file ξ is not defined until the extremes of integration int_s_min and int_s_max.\nint_s_min::Float64 = 1e-1 and int_s_max::Float64 = 1e3: extremes of integration; if epl is set to false, their values will be automatically set to min(ss...) and max(ss...) respectively. Their values do matter only if epl=true. \np0_left=[-2.0, 1.0] and p0_right=[-2.0, 1.0]: vectors with the initial values for the left/right power-law fitting of EPLs; the power-law is in the form y = f(x) = b * x^s, so the first vector value is the initial value of s (and of course the second is the one of b).\nk0::Union{Nothing,Float64} = nothing : starting point for the xicalc function; if nothing, it will be set k0 = 1.0 / max(ss...)\nright::Union{Float64,Nothing} = nothing : do you want to cut the output elements with ks .> right? if set to nothing, no cut will be done.\nN::Int = 1024 : number of points to be used in Fourier transform \n\nSee also: V_survey, A, A_prime, EPLs, PS_multipole\n\n\n\n\n\n","category":"function"},{"location":"PowerSpectrum/#GaPSE.all_PS_multipole","page":"Calculating Power Spectra","title":"GaPSE.all_PS_multipole","text":" function all_PS_multipole(input::String,\n group::String=VALID_GROUPS[end];\n L::Int = 0, pr::Bool = true, \n alg::Symbol=:fftlog, kwargs...\n ) ::Tuple{Vector{Float64}, Vector{Vector{Float64}}}\n\nGiven an input file where the first column is the x-axis data one and all the following columns are the corresponding y-data ones, this function computes all the Power Spectra of each y-data column and return a Tuple containing\n\nas first element, the ks values, common to all the PS\nas second element, a vector where in each position there is the Power Spectra corresponding to the associated inputy y-data. \n\nThe group::String=VALID_GROUPS[end] argument allow you to specify the group of the input TPCF, if they were computed through GAPSE. The allowed values for this argument are: LD , GNC , GNCxLD , LDxGNC , generic ,\n\nIf you choose a group pay attention that the number of input TPCF must match the group number (16, 25, 20 and 20 respectively). The last group name (which is also the default value) is used in case the input xis do not belog to a specific group (and so no predefined number is expected).\n\nOptional arguments\n\nDepending on the algorithm you choose, the options would change. The options in common are:\n\npr::Bool=true : want to print the automatic messages to the screen?\nL::Int=0 : which multipole order should I use for this computation? IT MUST MATCH THE MULTIPOLE ORDER OF THE INPUT TPCF!\ncut_first_n::Int=0 and cut_last_n::Int=0 : you can cout the first and/or last n elements of the input data, if they are highly irregular.\nalg::Symbol = :fftlog : algorithm to be used for the computation. Currenlty, there are two algorithms you can coose in order to perform the computation:\nalg = :fftlog (default and recommended option) will employ the FFTLog algorithm.\nalg = :twofast will employ the TwoFAST xicalc function of the TwoFAST Julia package. Note that in the computation the integration range 0leq s leq infty is reduced to int_s_min ≤ s ≤ int_s_max. This alogrithm is not the ideal choise, because TwoFAST is conceived for the direction PS -> TPCF, while is not 100% trustworthy for the other way round.\n\nThe specific ones for alg = :fftlog are:\n\nν::Union{Float64,Nothing} = nothing : bias parameter, i.e. exponent used to \"balance\" the curve; if nothing, will be set automatically to 1.5\nn_extrap_low::Int = 500 and n_extrap_high::Int = 500 : number of points to concatenate on the left/right of the input x-axis ss vector, logarithmically distributed with the same ratio of the left/right-edge elements of ss.\nn_pad::Int = 500 : number of zeros to be concatenated both on the left and on the right of the input function. They stabilize a lot the algorithm.\n\nThe specific ones for alg = :twofast are:\n\nepl::Bool=true : do you want to extend the edges of the input vectors using two fitted power-laws (obtained from EPLs)\nN_left::Int = 12 and N_right::Int = 12 : number of points from left right edges to be used for the power law fitting in EPLs. They matters only if in the given input file ξ is not defined until the extremes of integration int_s_min and int_s_max.\nint_s_min::Float64 = 1e-1 and int_s_max::Float64 = 1e3: extremes of integration; if epl is set to false, their values will be automatically set to min(ss...) and max(ss...) respectively. Their values do matter only if epl=true. \np0_left=[-2.0, 1.0] and p0_right=[-2.0, 1.0]: vectors with the initial values for the left/right power-law fitting of EPLs; the power-law is in the form y = f(x) = b * x^s, so the first vector value is the initial value of s (and of course the second is the one of b).\nk0::Union{Nothing,Float64} = nothing : starting point for the xicalc function; if nothing, it will be set k0 = 1.0 / max(ss...)\nright::Union{Float64,Nothing} = nothing : do you want to cut the output elements with ks .> right? if set to nothing, no cut will be done.\nN::Int = 1024 : number of points to be used in Fourier transform \n\nSee also: EPLs, PS_multipole\n\n\n\n\n\n","category":"function"},{"location":"PowerSpectrum/#GaPSE.print_all_PS_multipole","page":"Calculating Power Spectra","title":"GaPSE.print_all_PS_multipole","text":" print_all_PS_multipole(input::String, out::String,\n group::String = VALID_GROUPS[end]; \n L::Int = 0, pr::Bool = true, \n alg::Symbol = :fftlog,\n kwargs...)\n\nGiven an inputfile where the first column is the x-axis data one and all the following columns are the corresponding y-data ones, this function computes all the Power Spectra of each y-data column and print in a file namedout` \n\nas first column, the ks values, common to all the PS\nas folowing columns, a vector where in each position there is the Power Spectra corresponding to the associated inputy y-data. \n\nThe group::String=VALID_GROUPS[end] argument allow you to specify the group of the input TPCF, if they were computed through GAPSE. The allowed values for this argument are: LD , GNC , GNCxLD , LDxGNC , generic ,\n\nIf you choose a group pay attention that the number of input TPCF must match the group number (16, 25, 20 and 20 respectively). The last group name (which is also the default value) is used in case the input xis do not belog to a specific group (and so no predefined number is expected).\n\nOptional arguments\n\nDepending on the algorithm you choose, the options would change. The options in common are:\n\npr::Bool=true : want to print the automatic messages to the screen?\nL::Int=0 : which multipole order should I use for this computation? IT MUST MATCH THE MULTIPOLE ORDER OF THE INPUT TPCF!\ncut_first_n::Int=0 and cut_last_n::Int=0 : you can cout the first and/or last n elements of the input data, if they are highly irregular.\nalg::Symbol = :fftlog : algorithm to be used for the computation. Currenlty, there are two algorithms you can coose in order to perform the computation:\nalg = :fftlog (default and recommended option) will employ the FFTLog algorithm.\nalg = :twofast will employ the TwoFAST xicalc function of the TwoFAST Julia package. Note that in the computation the integration range 0leq s leq infty is reduced to int_s_min ≤ s ≤ int_s_max. This alogrithm is not the ideal choise, because TwoFAST is conceived for the direction PS -> TPCF, while is not 100% trustworthy for the other way round.\n\nThe specific ones for alg = :fftlog are:\n\nν::Union{Float64,Nothing} = nothing : bias parameter, i.e. exponent used to \"balance\" the curve; if nothing, will be set automatically to 1.5\nn_extrap_low::Int = 500 and n_extrap_high::Int = 500 : number of points to concatenate on the left/right of the input x-axis ss vector, logarithmically distributed with the same ratio of the left/right-edge elements of ss.\nn_pad::Int = 500 : number of zeros to be concatenated both on the left and on the right of the input function. They stabilize a lot the algorithm.\n\nThe specific ones for alg = :twofast are:\n\nepl::Bool=true : do you want to extend the edges of the input vectors using two fitted power-laws (obtained from EPLs)\nN_left::Int = 12 and N_right::Int = 12 : number of points from left right edges to be used for the power law fitting in EPLs. They matters only if in the given input file ξ is not defined until the extremes of integration int_s_min and int_s_max.\nint_s_min::Float64 = 1e-1 and int_s_max::Float64 = 1e3: extremes of integration; if epl is set to false, their values will be automatically set to min(ss...) and max(ss...) respectively. Their values do matter only if epl=true. \np0_left=[-2.0, 1.0] and p0_right=[-2.0, 1.0]: vectors with the initial values for the left/right power-law fitting of EPLs; the power-law is in the form y = f(x) = b * x^s, so the first vector value is the initial value of s (and of course the second is the one of b).\nk0::Union{Nothing,Float64} = nothing : starting point for the xicalc function; if nothing, it will be set k0 = 1.0 / max(ss...)\nright::Union{Float64,Nothing} = nothing : do you want to cut the output elements with ks .> right? if set to nothing, no cut will be done.\nN::Int = 1024 : number of points to be used in Fourier transform \n\nSee also: EPLs, PS_multipole\n\n\n\n\n\n","category":"function"},{"location":"WindowFIntegrated/","page":"Integrated Window F","title":"Integrated Window F","text":"DocTestSetup = quote\n using GaPSE\nend","category":"page"},{"location":"WindowFIntegrated/#The-Integrated-Window-Function","page":"Integrated Window F","title":"The Integrated Window Function","text":"","category":"section"},{"location":"WindowFIntegrated/","page":"Integrated Window F","title":"Integrated Window F","text":"GaPSE.integrated_F_quadgk\nGaPSE.integrated_F_trapz\nGaPSE.print_map_IntegratedF\nGaPSE.WindowFIntegrated\nGaPSE.spline_integrF","category":"page"},{"location":"WindowFIntegrated/#GaPSE.integrated_F_quadgk","page":"Integrated Window F","title":"GaPSE.integrated_F_quadgk","text":" integrated_F_quadgk(s, μ, s_min, s_max, windowF::WindowF;\n llim=0.0, rlim=Inf, rtol=1e-2, atol=0.0)\n\nComputes the Integrated Window Function fron the input Window Function windowF, through the quadgk function of the QuadGK Julia pagkage, in the point (s,μ) (where s is the comoving distance and μ the angle cosine). s_min and s_max are the min and max value for the radial part of the survey window function.\n\nThe analytical expression of the Integrated window function is the following:\n\nmathcalF(s mu) = \n int_0^infty mathrmds_1 phi(s_1) \n phileft(sqrts_1^2 + s^2 + 2 s_1 s muright) \n Fleft(fracss_1 mu right)\n\nwhere s is the comoving distance, mu the cosine angle, phi is the angular part of the survey window function and F(x μ) is the window function. Check the documentation of WindowF for its definition. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nOptional arguments\n\nllim=nothing and rlim=nothing : integration limits for quadgk; if llim=nothing it will be set to 0.95 * s_min; if rlim=nothing, it will be set to 1.05*s_max, while if rlim=Inf it will be set to 3 * s_max\nrtol=1e-2 and atol=0.0 : relative and absoute tolerance for quadgk\n\nSee also: [WindowF], ϕ\n\n\n\n\n\n","category":"function"},{"location":"WindowFIntegrated/#GaPSE.integrated_F_trapz","page":"Integrated Window F","title":"GaPSE.integrated_F_trapz","text":" integrated_F_trapz(s, μ, s_min, s_max, windowF::WindowF;\n llim=nothing, rlim=nothing, N::Int=1000)\n\nComputes the Integrated Window Function fron the input Window Function windowF, through the trapz function of the Trapz Julia pagkage, in the point (s,μ) (where s is the comoving distance and μ the angle cosine). s_min and s_max are the min and max value for the radial part of the survey window function.\n\nThe analytical expression of the Integrated window function is the following:\n\nmathcalF(s mu) = \n int_0^infty mathrmds_1 phi(s_1) \n phileft(sqrts_1^2 + s^2 + 2 s_1 s muright) \n Fleft(fracss_1 mu right)\n\nwhere s is the comoving distance, mu the cosine angle, phi is the angular part of the survey window function and F(x μ) is the window function. Check the documentation of WindowF for its definition. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nOptional arguments\n\nllim=nothing and rlim=nothing : limits of the sampling interval to be used for trapz; if llim=nothing it will be set to 0.95 * s_min; if rlim=nothing, it will be set to 1.05*s_max, while if rlim=Inf it will be set to 3 * s_max\nN::Int = 1000 : number of points to be used for the sampling\n\nSee also: [WindowF], ϕ\n\n\n\n\n\n","category":"function"},{"location":"WindowFIntegrated/#GaPSE.print_map_IntegratedF","page":"Integrated Window F","title":"GaPSE.print_map_IntegratedF","text":" print_map_IntegratedF(\n s_min, s_max, \n ss::Vector{Float64}, μs::Vector{Float64}, \n windowF::Union{String,WindowF}, out::String;\n alg::Symbol=:trap, llim=nothing, rlim=nothing,\n rtol=1e-2, atol=0.0, N::Int=1000, pr::Bool=true)\n\n print_map_IntegratedF(\n z_min, z_max, \n zs::Vector{Float64}, μs::Vector{Float64}, \n windowF::Union{String,WindowF}, out::String,\n file_data::String; \n names_bg = NAMES_BACKGROUND, h_0 = 0.7, kwargs...)\n\n print_map_IntegratedF(\n z_min, z_max,\n μs::Vector{Float64}, \n windowF::Union{String,WindowF}, out::String,\n file_data::String;\n names_bg = NAMES_BACKGROUND, h_0 = 0.7, N_ss::Int = 100, \n m::Float64 = 2.1, kwargs...)\n\nEvaluate the integrated window function mathcalF(smu) in a rectangual grid of mu and s values, and print the results in the out file.\n\nThe first method takes as input:\n\ns_min and s_max : min and max comoving distance of the survey; their values will be internally used by the radial function ϕ\nss::Vector{Float64} and μs::Vector{Float64} : the vector of s and μ points where to sample the integrated window function mathcalF. They must be a float vector of increasing values; more precisely:\nss must be a float vector of increasing comoving distance values (so each element must be ≥ 0); the first and last values ARE NOT RELATED to s_min and s_max.\nμs must be a float vector of increasing cosine values (so each element x must be -1 ≤ x ≤ 1).\nwindowF::Union{String,WindowF}, i.e. the window function itself; it can be passed as the namefile where the window is stored in (that will be opened with WindowF) or as a WindowF struct directly.\nout::String : the name of the output file\n\nThe second method takes as input the min and max redshifts of the survey (z_minand z_max), the vector of redshifts zs::Vector{Float64} for the integrated window function sampling, μs and windowF as before and the file_data where can be found the association z rightarrow s(z). Such file must have the structure of the background data produced by the CLASS code. Note that also zs musyt be a float vector of increasing redshift values (so each element must be ≥ 0). This method internally recalls the first one, so the other kwargs... are in common.\n\nThe third method takes as input the min and max redshifts of the survey (z_minand z_max) and the same input as the second method (μs, widnowF, out and file_data) but NOT THE REDSHIFT SAMPLING VECTOR zs. The sampling will be internally made linearly from s = 0 to s = m s_mathrmmax, where s_max is the comoving distance associated to z_max (for the data stored in file_data) and m::Float64 = 2.1 a coefficient that we suggest to set equals to 2 < m < 3. N_ss::Int = 100 is the number of s values used for the sampling in the interval 0 m s_mathrmmax. This method internally recalls the first one, so the other kwargs... are in common.\n\nThe analytical expression for the integrated window function is the following:\n\nmathcalF(s mu) = \n int_0^infty mathrmds_1 phi(s_1) \n phileft(sqrts_1^2 + s^2 + 2 s_1 s muright) \n Fleft(fracss_1 mu right)\n\nwhere s is the comoving distance, mu the cosine angle, phi is the angular part of the survey window function and F(x μ) is the window function. Check the documentation of WindowF for its definition. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nOptional arguments\n\nAs optional arguments of the first method:\n\nalg::Symbol = :trap : algorithm to be used for the integration; the valid options are :quad (that will recall integrated_F_quadgk) and :trap (that will recall integrated_F_trapz); other values will lead to AssertionError\nllim=nothing and rlim=nothing : integration limits for quad/trap; if llim=nothing it will be set to 0.95 * s_min; if rlim=nothing, it will be set to 1.05*s_max, while if rlim=Inf it will be set to 3 * s_max.\nN::Int = 1000 : number of points to be used for the sampling of trapz; it's useless if you set alg = :quad;\nrtol=1e-2 and atol=0.0 : relative and absoute tolerance for quadgk; they are useless if you set alg = :trap;\npr::Bool = true : do you want to see the progress-bar of the computation?\n\nThe optional arguments given to the second method will be directly given to the first one. The only two exceptions are options relative to the background data, managed internally by the struct BackgroundData:\n\nnames = NAMES_BACKGROUND : the column names of the file_data. If the colum order change from the default one NAMES_BACKGROUND, you must set as input the vector of string with the correct one, with the SAME names. They are, with the default order:\n[\"z\", \"proper time [Gyr]\", \"conf. time [Mpc]\", \"H [1/Mpc]\", \"comov. dist.\", \"ang.diam.dist.\", \"lum. dist.\", \"comov.snd.hrz.\", \"(.)rhog\", \"(.)rhob\", \"(.)rhocdm\", \"(.)rholambda\", \"(.)rhour\", \"(.)rhocrit\", \"gr.fac. D\", \"gr.fac. f\"]\nh = 0.7 : the adimensional hubble constant. By default, CLASS background data are measured with it numerically expressed (so distances are measured in Mpc, for example), while this code works with h in the unit of measure (so distances are measured in Mpc/h, for example). Change this value to 1.0 if the input data do not have this issue, or to your value of interest (0.67, 0.5, ...).\n\nSee also: integrated_F_quadgk, integrated_F_trapz, ϕ, WindowF, WindowFIntegrated, BackgroundData\n\n\n\n\n\n","category":"function"},{"location":"WindowFIntegrated/#GaPSE.WindowFIntegrated","page":"Integrated Window F","title":"GaPSE.WindowFIntegrated","text":" WindowFIntegrated(\n ss::Vector{Float64}\n μs::Vector{Float64}\n IFs::Matrix{Float64}\n )\n\nStruct containing ss, μs and IFs values of the integrated window function mathcalF(s μ). ss and μs are 1D vectors containing each value only once, while IFs values are contained in a matrix of size (length(ss), length(μs)), so:\n\nalong a fixed column the changing value is s\nalong a fixed row the changing value is μ\n\nThe analytical expression for the integrated window function is the following:\n\nmathcalF(s mu) = \n int_0^infty mathrmds_1 phi(s_1) \n phileft(sqrts_1^2 + s^2 + 2 s_1 s muright) \n Fleft(fracss_1 mu right)\n\nwhere s is the comoving distance, mu the cosine angle, phi is the angular part of the survey window function and F(x μ) is the window function. Check the documentation of WindowF for its definition. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nConstructors\n\n WindowFIntegrated(file::String)\n\nRead the IF map from the file file. Such a file might be produced by print_map_IntegratedF, check its docstring. \n\nIt does not matter if the pattern is\n\n# ss μs IFs\n0.0 -1.0 ...\n0.0 -0.9 ...\n0.0 -0.8 ...\n... ... ...\n\nor \n\n# ss μs IFs\n0.0 -1.0 ...\n0.1 -1.0 ...\n0.2 -1.0 ...\n... ... ...\n\nbecause the constructor will recognise it. What does matter is the columns order: ss first, then μs and finally IFs.\n\nSee also: integrated_F_trapz, integrated_F_quadgk, spline_integrF, WindowF, ϕ, print_map_IntegratedF\n\n\n\n\n\n","category":"type"},{"location":"WindowFIntegrated/#GaPSE.spline_integrF","page":"Integrated Window F","title":"GaPSE.spline_integrF","text":" spline_integrF(s, μ, str::WindowFIntegrated)::Float64\n\nReturn the 2-dim spline value of mathcalF in the given (s,μ), where mathcalF is defined in the input WindowFIntegrated. The spline is obtained through the interpolate function of the GridInterpolations Julia package.\n\nSee also: WindowFIntegrated\n\n\n\n\n\n","category":"function"},{"location":"","page":"Introduction","title":"Introduction","text":"DocTestSetup = quote\n using GaPSE\nend","category":"page"},{"location":"#GaPSE.jl-:-a-Galaxy-Power-Spectrum-Estimator","page":"Introduction","title":"GaPSE.jl : a Galaxy Power Spectrum Estimator","text":"","category":"section"},{"location":"","page":"Introduction","title":"Introduction","text":"This is the documentation of GaPSE.jl package, an implementation of a Galaxy Power Spectrum Estimator written in Julia.","category":"page"},{"location":"#Documentation","page":"Introduction","title":"Documentation","text":"","category":"section"},{"location":"","page":"Introduction","title":"Introduction","text":"The documentation was built using Documenter.jl.","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"using Dates # hide\nprintln(\"Documentation built on $(now()) using Julia $(VERSION).\") # hide","category":"page"},{"location":"#Brief-description","page":"Introduction","title":"Brief description","text":"","category":"section"},{"location":"","page":"Introduction","title":"Introduction","text":"Measurements of the clustering of galaxies in Fourier space, at low wavenumbers, offer a window into the early Universe via the possible presence of scale dependent bias generated by Primordial Non Gaussianities [1] [2]. On such large scales, a Newtonian treatment of density of density perturbations might not be sufficient to describe the measurements, and a fully relativistic calculation should be employed.","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"In this program, we compute, for a given input matter power spectum (obtained from CLASS), all the GR effects two point auto-correlation and cross-correlation functions, for an arbitrary multipole order. This project, and the analytical expressions used for the TPCFs, are based on the article of Emanuele Castorina and Enea Di Dio [3]. ","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"The most confortable way to use this code is through the Jupyter Notebooks: some .ipynb is already provided in the main directory, and we encourage you to follow the TUTORIAL.ipynb file first. The basic structure of the program and the most important functions are there presented.","category":"page"},{"location":"#Licence","page":"Introduction","title":"Licence","text":"","category":"section"},{"location":"","page":"Introduction","title":"Introduction","text":"This software is under the GNU 3.0 General Public Licence. See the file LICENCE.md.","category":"page"},{"location":"#Acknowledgements","page":"Introduction","title":"Acknowledgements","text":"","category":"section"},{"location":"","page":"Introduction","title":"Introduction","text":"This package make extensive use of Spline1D (from the Dierckx[4] Julia package) and the Spherical Bessel Transform function xicalc (from the TwoFAST[5] Julia package).","category":"page"},{"location":"#References","page":"Introduction","title":"References","text":"","category":"section"},{"location":"","page":"Introduction","title":"Introduction","text":"[1] Dalal, Doré et al., Imprints of primordial non-Gaussianities on large-scale structure (2008), American Physical Society, DOI: 10.1103/PhysRevD.77.123514, url: https://journals.aps.org/prd/abstract/10.1103/PhysRevD.77.123514","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"[2] Slosar, Hirata et al., Constraints on local primordial non-Gaussianity from large scale structure (2008), Journal of Cosmology and Astroparticle Physics, DOI: 10.1088/1475-7516/2008/08/031, url: https://doi.org/10.1088/1475-7516/2008/08/031","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"[3] Castorina, Di Dio, The observed galaxy power spectrum in General Relativity (2022), Journal of Cosmology and Astroparticle Physics, DOI: 10.1088/1475-7516/2022/01/061, url: https://doi.org/10.1088/1475-7516/2022/01/061","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"[4] Paul Dierckx, Curve and Surface Fitting with Splines (1993), Oxford University Press","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"[5] Gebhardt, Jeong et al, Fast and accurate computation of projected two-point functions (2018), American Physical Society, DOI: 10.1103/PhysRevD.97.023504, url: https://link.aps.org/doi/10.1103/PhysRevD.97.023504","category":"page"},{"location":"#Contents","page":"Introduction","title":"Contents","text":"","category":"section"},{"location":"","page":"Introduction","title":"Introduction","text":"","category":"page"},{"location":"#Index","page":"Introduction","title":"Index","text":"","category":"section"},{"location":"","page":"Introduction","title":"Introduction","text":"","category":"page"},{"location":"PNG/","page":"implication on PNG","title":"implication on PNG","text":"DocTestSetup = quote\n using GaPSE\nend","category":"page"},{"location":"PNG/#The-implications-on-the-local-Primordial-Non-Gaussianities","page":"implication on PNG","title":"The implications on the local Primordial Non-Gaussianities","text":"","category":"section"},{"location":"PNG/","page":"implication on PNG","title":"implication on PNG","text":"GaPSE.TF\nGaPSE.α_bias\nGaPSE.IntegralIPSalpha\nGaPSE.CosmoPNGParams\nGaPSE.CosmoPNG\nGaPSE.ξ_S_L0\nGaPSE.ξ_S_L2\nGaPSE.ξ_S\nGaPSE.integrand_ξ_S_multipole\nGaPSE.ξ_S_multipole\nGaPSE.map_ξ_S_multipole\nGaPSE.print_map_ξ_S_multipole","category":"page"},{"location":"PNG/#GaPSE.TF","page":"implication on PNG","title":"GaPSE.TF","text":" TF(\n left_value::Float64\n left::Float64\n\n spline::Dierckx.Spline1D\n\n r_si::Float64\n r_b::Float64\n r_a::Float64\n right::Float64\n )\n\nContains all the information useful in order to return the Transfer Function value from:\n\na spline inside the interval left ≤ x ≤ right\nthe associated power law for x > right (with \"right\" coefficients r_si, r_b and r_a)\nthe associated constant left value left_value for x < left\n\nArguments\n\nleft_value::Float64 : the constant value that must be returned in case x < left.\nleft::Float64 : the break between the left power-law (for x right is given, the returned one is obtained from power_law with this coefficients ( where, of course, r_si is the exponent, r_bthe coefficient andr_athe spurious adding constant). NOTE: for numerical issues, the \"pure\" power-lawy = f(x) = b + x^s` should be used. \n\nConstructors\n\nTF(ks, Tks) : from a set of (ks, Tks) pairs, take the mean of the first 10 as left value and fit with power_law_from_data the last 15.\n\nSee also: power_law_from_data\n\n\n\n\n\n","category":"type"},{"location":"PNG/#GaPSE.α_bias","page":"implication on PNG","title":"GaPSE.α_bias","text":" α_bias(k, tf::TF; bf=1.0, D=1.0, Ω_M0=0.29992)\n\nReturn the coefficient alpha_rm bias that relates the Non-Gaussian density fluctiations delta_rm NG and the Non-Gaussian gravitational potential Phi_rm NG in Fourier space:\n\ndelta_rm NG(k) = alpha(k z) Phi_rm NG(k) quad\nalpha(k z) = frac23 frack^2 T_m(k) D(z)Omega_mathrmM0 left(fraccH_0right)^2 \n quad alpha_rm bias = fracb_phi f_rm NLalpha(k z) \n\nbf=1.0 : value of the degenerate product b_phi f_rm NL.\nD = 1.0 : value of the linear growth factor D at present day; inside this function, it is multiplied for a constant q in order to get q D = \n\nSee also: TF\n\n\n\n\n\n","category":"function"},{"location":"PNG/#GaPSE.IntegralIPSalpha","page":"implication on PNG","title":"GaPSE.IntegralIPSalpha","text":" IntegralIPSalpha(\n l_si::Float64\n l_b::Float64\n l_a::Float64\n left::Float64\n\n spline::Dierckx.Spline1D\n\n r_si::Float64\n r_b::Float64\n r_a::Float64\n right::Float64\n )\n\nContains all the information useful in order to return the value of the integral of the Input Power Spectrum weighted with the α_bias function. In other words, return this expression:\n\nint_0^infty fracmathrmd q2 pi^2 q^2 \n fracj_ell(qs)(qs)^n P(q) alpha_mathrmbias \n\nwhere P(q) is the Input Power Spectrum and\n\ndelta_rm NG(k) = alpha(k z) Phi_rm NG(k) quad\nalpha(k z) = frac23 frack^2 T_m(k) D(z)Omega_mathrmM0 left(fraccH_0right)^2 \n quad alpha_rm bias = fracb_phi f_rm NLalpha(k z) \n\nArguments\n\nl_si, l_b, l_a ::Float64 : coefficient for the spurious power-law y = f(x) = a + b x^s for the LEFT edge; when an input value x < left is given, the returned one is obtained from power_law with this coefficients ( where, of course, l_si is the exponent, l_b the coefficient and l_a the spurious adding constant). \nleft::Float64 : the break between the left power-law (for x < left) and the spline (for x ≥ left); its value is the fit_min of the used constructor.\nspline::Dierckx.Spline1D : spline that interpolates between the real values of the integral calculated inside the range left ≤ x ≤ right\nright::Float64 : the break between the right power-law (for x > right) and the spline (for x ≤ right); its value is the fit_max of the used constructor.\nr_si, r_b, r_a ::Float64 : coefficient for the spurious power-law y = f(x) = a + b x^s for the RIGHT edge; when an input value x > right is given, the returned one is obtained from power_law with this coefficients ( where, of course, r_si is the exponent, r_b the coefficient and r_a the spurious adding constant). NOTE: for numerical issues, only the \"pure\" power-law y = f(x) = b + x^s can be used. In other words, it always set r_a = 0.0.\n\nConstructors\n\n IntegralIPSalpha(tf::TF, cosmo::Cosmology, l, n=0; D=nothing, bf=1.0,\n N::Int=1024, kmin=1e-6, kmax=1e4, s0=1e-4,\n fit_left_min=nothing, fit_left_max=nothing, p0_left=nothing,\n fit_right_min=nothing, fit_right_max=nothing, p0_right=nothing)\n\nThe integral obtained with this constructor is calculated through xicalc, and expanded with power-laws at the edges.\n\ntf::TF: the struct that contains all the data concerning the Transfer Function.\ncosmo::Cosmology : cosmology to be used in this computation\nl : degree of the spherical Bessel function to be used.\nn=0 : degree of the exponent for the denominator. The interesting case is only the default value 0.\nD = nothing : value of the linear growth factor D to be used. If nothing, it will be internally set as D(z_mathrmeff), where z_mathrmeff is the effective redshift for the input cosmology.\nbf = 1.0 : value of the degenerate product b_phi f_rm NL.\nkmin = 1e-6, kmax = 1e4, s0 = 1e-4 : values to be passed to xicalc for the integration\nfit_left_min = 2.0, fit_left_max = 10.0 : the limits (min and max) where the integral must be fitted with a power law, for small distances. This operation is necessary, because xicalc, in this context, gives wrong results for too small input distance s; nevertheless, this integral has fixed power-law trends for s rightarrow 0, so this approach gives good results.\np0_left = nothing : vector with the initial values for the left power-law fitting; its length must be 2 (if you want to fit with a pure power-law y = f(x) = b x^s, so only l_si and l_b are matter of concern) or 3 (if you want to fit with a spurious power-law y = f(x) = a + b x^s, so you are also interested in l_a); if nothing, it will be automatically set p0 = [-1.0, 1.0].\nfit_right_min = nothing, fit_right_max = nothing : the limits (min and max) where the integral must be fitted with a power law, for high distances. This integral has fixed power-law trends for s rightarrow infty, so this approach gives good results. If nothing, the last 15 points returned from xicalc are used for this fitting. NOTE: for numerical issues, only the \"pure\" power-law y = f(x) = b + x^s can be used. \np0_right = nothing : vector with the initial values for the left power-law fitting; its length must be 2 (to fit with a pure power-law y = f(x) = b x^s, so only r_si and r_b are matter of concern); if nothing, it will be automatically set p0 = [-4.0, 1.0].\n\nAll the power-law fitting (both \"pure\" and spurious) are made through the local function power_law_from_data.\n\nSee also: power_law_from_data, power_law, Cosmology, α_bias\n\n\n\n\n\n","category":"type"},{"location":"PNG/#GaPSE.CosmoPNGParams","page":"implication on PNG","title":"GaPSE.CosmoPNGParams","text":"CosmoParams(\n D::Float64 \n bf::Float64\n\n flm_0::Float64 \n flM_0::Float64 \n kmin_0::Float64 \n kmax_0::Float64 \n N_0::Int\n\n flm_2::Float64 \n flM_2::Float64 \n kmin_2::Float64 \n kmax_2::Float64 \n N_2::Int\n )\n\nStruct that contains all the parameters and options that are matter of concerns for the CosmoPNG we are interested in.\n\nArguments\n\nD : linear growth factor D to be used for the α_bias function.\nbf : value of the degenerate product b_phi f_rm NL.\nkmin_0, kmax_0, s00: values to be passed toxicalcfor the integration made byIntegralIPSalphaof the term`J0``\nflm_0, flM_0 : the limits (min and max) where the integral made by IntegralIPSalpha of the term J_0 must be fitted with a power law, for small distances. This operation is necessary, because xicalc, in this context, gives wrong results for too small input distance s; nevertheless, this integral has fixed power-law trends for s rightarrow 0, so this approach gives good results.\nkmin_2, kmax_2, s02,flm2,flM2: same as the previous terms, but for the integral`J2``\n\nConstructors\n\n function CosmoPNGParams(D; \n bf = 1.0,\n flm_0 = 5e-2, flM_0 = 1e-1, s0_0 = 1e-4,\n kmin_0 = 1e-6, kmax_0 = 1e4, N_0::Int = 1024,\n flm_2 = 5e-1, flM_2 = 1e0, s0_2 = 1e-4,\n kmin_2 = 1e-6, kmax_2 = 1e4, N_2::Int = 1024,\n )\n\nThe associations are trivials. The only thing to be put attention on is that D is a MANDATORY argument, while all the other ones are keyword arguments with a default value. You should use:\n\npngparams = CosmoPNGParams(cosmo.D_of_s(cosmo.s_eff); ...)\n\nwhere cosmo::Cosmology is the Cosmology you are interested in and s_eff is the effective comoving distance (stored on cosmo). \n\nSee also: Cosmology, CosmoPNG, IntegralIPSalpha, α_bias\n\n\n\n\n\n","category":"type"},{"location":"PNG/#GaPSE.CosmoPNG","page":"implication on PNG","title":"GaPSE.CosmoPNG","text":"CosmoPNG(\n params::CosmoPNGParams\n tf::TF\n file_TF::String\n\n J0::IntegralIPSalpha\n J2::IntegralIPSalpha\n )\n\nStruct that contains all the information that may be used for the Correlation Function computations of the Primordial Non-Gaussianities (PNG) signal.\n\nArguments\n\nparams::CosmoPNGParams : parameters to be used for this Cosmology. See the docstring of CosmoParams for more information on the possible inputs.\ntf::TF : transfer function to be used.\nfile_TF::String : name of the file where the transfer function was read.\nJ0 and J2::IntegralIPSalpha : integrals with the following form:\nJ_ell = int_0^infty fracmathrmd q2 pi^2 q^2 \nj_ell(qs) P(q) alpha_mathrmbias \nwhere P(q) is the Input Power Spectrum and\ndelta_rm NG(k) = alpha(k z) Phi_rm NG(k) quad\nalpha(k z) = frac23 frack^2 T_m(k) D(z)Omega_mathrmM0 left(fraccH_0right)^2 \n quad alpha_rm bias = fracb_phi f_rm NLalpha(k z) \n\nConstructor\n\n CosmoPNG(\n pngparams::CosmoPNGParams,\n cosmo::Cosmology, file_TF::String;\n comments::Bool=true\n )\n\npngparams::CosmoParams : parameters to be used for this Cosmology. See the docstring of CosmoParams for more information on the possible inputs.\ncosmo::Cosmology : cosmology to be considered, both in terms od Input Power Spectrum and of cosmological parameters.\nfile_TF::String : name of the file where the Transfer Function to be used is stored.\ncomments::Bool=true : the file_TF file contains comments at the beginning?\n\nSee also: TF, IntegralIPSalpha, Cosmology\n\n\n\n\n\n","category":"type"},{"location":"PNG/#GaPSE.ξ_S_L0","page":"implication on PNG","title":"GaPSE.ξ_S_L0","text":"ξ_S_L0(P::Point, cosmo::Cosmology, cosmopng::CosmoPNG)\nξ_S_L0(s1, cosmo::Cosmology, cosmopng::CosmoPNG)\n\nReturn the value of the Two-Point Correlation Function (TPCF) monopole of the signal (S) of the local Primordial Non-Gaussianities (PNG) (for the given cosmo::Cosmology and cosmopng::CosmoPNG). In the first method, you should pass the Point where to evaluate that function, while in the second (that internally recalls the first) you must provide the comoving distance s. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of such TPCF monopole is the following:\n\nxi^mathrmS_0(s) = 2 left( b + frac13f(z_mathrmeff)right)\n D^2(z_mathrmeff) J_0(s)\n\nwhere: \n\nb is the galaxy bias (stored in cosmo)\nz is the redshift associated to the comoving distance s in this cosmology\ns_mathrmeff is the effective comoving distance stored in cosmo (and z_mathrmeff its associated effective redshift in that cosmology)\nD the linear growth factor and f the linear growth rate (whose splines are stored in cosmo)\nJ_ell (stored in cosmopng) is defined as\nJ_ell(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) j_ell(qs) alpha_mathrmbias(qz)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo), j_ell as spherical Bessel function of order ell and\nalpha_rm bias(qz) = fracb_phi f_rm NLalpha(q z) quad quad \nalpha(q z) = frac23 fracq^2 T_m(q) D(z)Omega_mathrmM0 left(fraccH_0right)^2\nwith b_phif_rm NL is stored in cosmopng. Check the documentation of α_bias and CosmoPNG for more information.\n\nSee also: Point, Cosmology, CosmoPNG, α_bias, ξ_S_L2, ξ_S, integrand_ξ_S_multipole, ξ_S_multipole map_ξ_S_multipole, print_map_ξ_S_multipole\n\n\n\n\n\n","category":"function"},{"location":"PNG/#GaPSE.ξ_S_L2","page":"implication on PNG","title":"GaPSE.ξ_S_L2","text":"ξ_S_L2(P::Point, cosmo::Cosmology, cosmopng::CosmoPNG)\nξ_S_L2(s1, cosmo::Cosmology, cosmopng::CosmoPNG)\n\nReturn the value of the Two-Point Correlation Function (TPCF) quadrupole of the signal (S) of the local Primordial Non-Gaussianities (PNG) (for the given cosmo::Cosmology and cosmopng::CosmoPNG). In the first method, you should pass the Point where to evaluate that function, while in the second (that internally recalls the first) you must provide the comoving distance s. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of such TPCF monopole is the following:\n\nxi^mathrmS_2(s) = - frac43 f(z_mathrmeff)\n D^2(z_mathrmeff) J_2(s)\n\nwhere: \n\nb is the galaxy bias (stored in cosmo)\nz is the redshift associated to the comoving distance s in this cosmology\ns_mathrmeff is the effective comoving distance stored in cosmo (and z_mathrmeff its associated effective redshift in that cosmology)\nD the linear growth factor and f the linear growth rate (whose splines are stored in cosmo)\nJ_ell (stored in cosmopng) is defined as\nJ_ell(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) j_ell(qs) alpha_mathrmbias(qz)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo), j_ell as spherical Bessel function of order ell and\nalpha_rm bias(qz) = fracb_phi f_rm NLalpha(q z) quad quad \nalpha(q z) = frac23 fracq^2 T_m(q) D(z)Omega_mathrmM0 left(fraccH_0right)^2\nwith b_phif_rm NL is stored in cosmopng. Check the documentation of α_bias and CosmoPNG for more information.\n\nSee also: Point, Cosmology, CosmoPNG, α_bias, ξ_S_L0, ξ_S, integrand_ξ_S_multipole, ξ_S_multipole map_ξ_S_multipole, print_map_ξ_S_multipole\n\n\n\n\n\n","category":"function"},{"location":"PNG/#GaPSE.ξ_S","page":"implication on PNG","title":"GaPSE.ξ_S","text":"ξ_S(s, μ, cosmo::Cosmology, cosmopng::CosmoPNG)\n\nReturn the value of the Two-Point Correlation Function (TPCF) of the signal (S) of the local Primordial Non-Gaussianities (PNG) in the given comoving distance s and cosine value for the Legendre polynomials μ (for the given cosmo::Cosmology and cosmopng::CosmoPNG). We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of such TPCF monopole is the following:\n\nbeginsplit\nxi^mathrmS(smu) = xi^mathrmS_0(s) + \n xi^mathrmS_2(s) mathcalL_2(mu) \nxi^mathrmS_0(s) = 2 left( b + frac13f(z_mathrmeff)right)\n D^2(z_mathrmeff) J_0(s) \nxi^mathrmS_2(s) = - frac43 f(z_mathrmeff)\n D^2(z_mathrmeff) J_2(s)\nendsplit\n\nwhere: \n\nb is the galaxy bias (stored in cosmo)\nz is the redshift associated to the comoving distance s in this cosmology\ns_mathrmeff is the effective comoving distance stored in cosmo (and z_mathrmeff its associated effective redshift in that cosmology)\nD the linear growth factor and f the linear growth rate (whose splines are stored in cosmo)\nmathcalL_ell the Legendre polynomial of order ell\nJ_ell (stored in cosmopng) is defined as\nJ_ell(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) j_ell(qs) alpha_mathrmbias(qz)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo), j_ell as spherical Bessel function of order ell and\nalpha_rm bias(qz) = fracb_phi f_rm NLalpha(q z) quad quad \nalpha(q z) = frac23 fracq^2 T_m(q) D(z)Omega_mathrmM0 left(fraccH_0right)^2\nwith b_phif_rm NL is stored in cosmopng. Check the documentation of α_bias and CosmoPNG for more information.\n\nSee also: Point, Cosmology, CosmoPNG, α_bias, ξ_S_L0, ξ_S_L2, integrand_ξ_S_multipole, ξ_S_multipole map_ξ_S_multipole, print_map_ξ_S_multipole\n\n\n\n\n\n","category":"function"},{"location":"PNG/#GaPSE.integrand_ξ_S_multipole","page":"implication on PNG","title":"GaPSE.integrand_ξ_S_multipole","text":" integrand_ξ_S_multipole(s, μ, cosmo::Cosmology, cosmopng::CosmoPNG;\n L::Int=0, use_windows::Bool=true)\n\nReturn the integrand on mu = hatmathbfs_1 cdot hatmathbfs of the Two-Point Correlation Function (TPCF) concerning the signal (S) of the local Primordial Non-Gaussianities (PNG), i.e. the following function f(s mu):\n\n f_L(s mu) = xi^mathrmS left(s muright) \n mathcalL_L(mu) times \n begincases \n frac1mathcalNmathcalF(s mu) quad mathrmuse_windows == true \n 1 quadquad mathrmuse_windows == false\n endcases\n\nwhere:\n\nxi^mathrmS is the TPCF of the PNG signal, computed from ξ_S.\nmathcalL_L(mu) is the Legendre polynomial of order L\nmathcalF(s mu) is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)\nmathcalN is the integrated window function norm (check the documentation of WindowFIntegrated)\n\nInputs\n\ns: the comoving distance where must be evaluated the integral\nμ: the cosine between s1 and s where must be evaluated the integral\ncosmo::Cosmology: cosmology to be used in this computation\ncosmopng::CosmoPNG: struct that contains all the information that may be used for the TPCF computations of the PNG signal.\n\nOptional arguments\n\nL::Int = 0: order of the Legendre polynomial to be used\nuse_windows::Bool = false: tells if the integrand must consider mathcalF or not.\n\nSee also:ξ_S, ξ_S_multipole, map_ξ_S_multipole, print_map_ξ_S_multipole WindowFIntegrated, Cosmology, CosmoPNG, \n\n\n\n\n\n","category":"function"},{"location":"PNG/#GaPSE.ξ_S_multipole","page":"implication on PNG","title":"GaPSE.ξ_S_multipole","text":" ξ_S_multipole(\n s, cosmo::Cosmology, cosmopng::CosmoPNG;;\n L::Int = 0, use_windows::Bool = true,\n atol_quad::Float64 = 0.0,\n rtol_quad::Float64 = 1e-2\n enhancer::Float64 = 1e6 ) ::Float64\n\nEvaluate the multipole of order L of the Two-Point Correlation Function (TPCF) concerning the signal (S) of the local Primordial Non-Gaussianities (PNG), i.e. the following function xi^mathrmS (s):\n\n xi^mathrmS (s) = frac2 L + 12 int_-1^+1 mathrmdmu \n xi^mathrmS left(s muright) \n mathcalL_L(mu) times \n begincases \n frac1mathcalNmathcalF(s mu) quad mathrmuse_windows == true \n 1 quadquad mathrmuse_windows == false\n endcases\n\nwhere:\n\nxi^mathrmS(smu) is the TPCF of the PNG signal with the angular dependence, computed from ξ_S.\nmathcalL_L(mu) is the Legendre polynomial of order L\nmathcalF(s mu) is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)\nmathcalN is the integrated window function norm (check the documentation of WindowFIntegrated)\n\nThe integration over mu is preformed through the Julia function quadgk from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n\nInputs\n\ns: the comoving distance where must be evaluated the integral\ncosmo::Cosmology: cosmology to be used in this computation\ncosmopng::CosmoPNG: struct that contains all the information that may be used for the TPCF computations of the PNG signal.\n\nOptional arguments\n\nL::Int = 0: order of the Legendre polynomial to be used\nuse_windows::Bool = false: tells if the integrand must consider mathcalF or not.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\n\nSee also: ξ_S, integrand_ξ_S_multipole, map_ξ_S_multipole, print_map_ξ_S_multipole WindowFIntegrated, Cosmology, CosmoPNG, \n\n\n\n\n\n","category":"function"},{"location":"PNG/#GaPSE.map_ξ_S_multipole","page":"implication on PNG","title":"GaPSE.map_ξ_S_multipole","text":" map_ξ_S_multipole(\n cosmo::Cosmology, cosmopng::CosmoPNG,\n ss = nothing;\n L::Int = 0, use_windows::Bool = true,\n atol_quad::Float64 = 0.0,\n rtol_quad::Float64 = 1e-2,\n enhancer::Float64 = 1e6,\n pr::Bool = true,\n N_log::Int = 1000,\n kwargs...) ::Tuple{Vector{Float64}, Vector{Float64}}\n\nEvaluate the multipole of order L of the Two-Point Correlation Function (TPCF) concerning the signal (S) of the local Primordial Non-Gaussianities (PNG), for all the comoving distance values stored inside ss. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log).\n\nThe function evaluated is then the following xi^mathrmS (s):\n\n xi^mathrmS (s) = frac2 L + 12 int_-1^+1 mathrmdmu \n xi^mathrmS left(s muright) \n mathcalL_L(mu) times \n begincases \n frac1mathcalNmathcalF(s mu) quad mathrmuse_windows == true \n 1 quadquad mathrmuse_windows == false\n endcases\n\nwhere:\n\nxi^mathrmS(smu) is the TPCF of the PNG signal with the angular dependence, computed from ξ_S.\nmathcalL_L(mu) is the Legendre polynomial of order L\nmathcalF(s mu) is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)\nmathcalN is the integrated window function norm (check the documentation of WindowFIntegrated)\n\nThe integration over mu is preformed through the Julia function quadgk from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n\nInputs\n\ncosmo::Cosmology: cosmology to be used in this computation\ncosmopng::CosmoPNG: struct that contains all the information that may be used for the TPCF computations of the PNG signal.\nss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). This is why it is returned also the vector of the \"input\" values.\n\nOptional arguments\n\nThis function recall internally ξ_S_multipole, so the kwargs of the latter are valid also for the former; we report them for comfortness:\n\nL::Int = 0: order of the Legendre polynomial to be used\nuse_windows::Bool = false: tells if the integrand must consider mathcalF or not.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\nN_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing \npr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)\n\nReturns\n\nA Tuple{Vector{Float64}, Vector{Float64}}, which has as first element the ss vector and as second one the corresponding ξ value evaluated.\n\nSee also: ξ_S, integrand_ξ_S_multipole, ξ_S_multipole, print_map_ξ_S_multipole WindowFIntegrated, Cosmology, CosmoPNG, \n\n\n\n\n\n","category":"function"},{"location":"PNG/#GaPSE.print_map_ξ_S_multipole","page":"implication on PNG","title":"GaPSE.print_map_ξ_S_multipole","text":" print_map_ξ_S_multipole(\n cosmo::Cosmology, cosmopng::CosmoPNG, \n out::String, ss = nothing;\n L::Int = 0, use_windows::Bool = true,\n atol_quad::Float64 = 0.0,\n rtol_quad::Float64 = 1e-2,\n enhancer::Float64 = 1e6,\n pr::Bool = true,\n N_log::Int = 1000,\n kwargs...)\n\nEvaluate the multipole of order L of the Two-Point Correlation Function (TPCF) concerning the signal (S) of the local Primordial Non-Gaussianities (PNG), for all the comoving distance values stored inside ss, and print the results (with all the options used) in a file named out. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log).\n\nThe function evaluated is then the following xi^mathrmS (s):\n\n xi^mathrmS (s) = frac2 L + 12 int_-1^+1 mathrmdmu \n xi^mathrmS left(s muright) \n mathcalL_L(mu) times \n begincases \n frac1mathcalNmathcalF(s mu) quad mathrmuse_windows == true \n 1 quadquad mathrmuse_windows == false\n endcases\n\nwhere:\n\nxi^mathrmS(smu) is the TPCF of the PNG signal with the angular dependence, computed from ξ_S.\nmathcalL_L(mu) is the Legendre polynomial of order L\nmathcalF(s mu) is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)\nmathcalN is the integrated window function norm (check the documentation of WindowFIntegrated)\n\nThe integration over mu is preformed through the Julia function quadgk from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n\nInputs\n\ncosmo::Cosmology: cosmology to be used in this computation\ncosmopng::CosmoPNG: struct that contains all the information that may be used for the TPCF computations of the PNG signal.\nout::String : name of the file where the results must be stored.\nss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). This is why it is returned also the vector of the \"input\" values.\n\nOptional arguments\n\nThis function recall internally map_ξ_S_multipole, so the kwargs of the latter are valid also for the former; we report them for comfortness:\n\nL::Int = 0: order of the Legendre polynomial to be used\nuse_windows::Bool = false: tells if the integrand must consider mathcalF or not.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\nN_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing \npr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)\n\nSee also: ξ_S, integrand_ξ_S_multipole, ξ_S_multipole, map_ξ_S_multipole WindowFIntegrated, Cosmology, CosmoPNG\n\n\n\n\n\n","category":"function"}] +[{"location":"GNCxLD_Correlations_1/","page":"GNCxLD TPCFs","title":"GNCxLD TPCFs","text":"DocTestSetup = quote\n using GaPSE\nend","category":"page"},{"location":"GNCxLD_Correlations_1/#GNCxLD-TPCFs","page":"GNCxLD TPCFs","title":"GNCxLD TPCFs","text":"","category":"section"},{"location":"GNCxLD_Correlations_1/#Two-Point-Cross-Correlation-Functions","page":"GNCxLD TPCFs","title":"Two-Point Cross-Correlation Functions","text":"","category":"section"},{"location":"GNCxLD_Correlations_1/","page":"GNCxLD TPCFs","title":"GNCxLD TPCFs","text":"GaPSE.ξ_GNCxLD_Newtonian_Doppler\nGaPSE.ξ_GNCxLD_Newtonian_Lensing\nGaPSE.ξ_GNCxLD_Newtonian_LocalGP\nGaPSE.ξ_GNCxLD_Newtonian_IntegratedGP\nGaPSE.ξ_GNCxLD_Doppler_Doppler\nGaPSE.ξ_GNCxLD_Doppler_Lensing\nGaPSE.ξ_GNCxLD_Doppler_LocalGP\nGaPSE.ξ_GNCxLD_Doppler_IntegratedGP\nGaPSE.ξ_GNCxLD_Lensing_Doppler\nGaPSE.ξ_GNCxLD_Lensing_Lensing\nGaPSE.ξ_GNCxLD_Lensing_LocalGP\nGaPSE.ξ_GNCxLD_Lensing_IntegratedGP\nGaPSE.ξ_GNCxLD_LocalGP_Doppler\nGaPSE.ξ_GNCxLD_LocalGP_Lensing\nGaPSE.ξ_GNCxLD_LocalGP_LocalGP\nGaPSE.ξ_GNCxLD_LocalGP_IntegratedGP\nGaPSE.ξ_GNCxLD_IntegratedGP_Doppler\nGaPSE.ξ_GNCxLD_IntegratedGP_Lensing\nGaPSE.ξ_GNCxLD_IntegratedGP_LocalGP\nGaPSE.ξ_GNCxLD_IntegratedGP_IntegratedGP","category":"page"},{"location":"GNCxLD_Correlations_1/#GaPSE.ξ_GNCxLD_Newtonian_Doppler","page":"GNCxLD TPCFs","title":"GaPSE.ξ_GNCxLD_Newtonian_Doppler","text":"ξ_GNCxLD_Newtonian_Doppler(P1::Point, P2::Point, y, cosmo::Cosmology;\n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing,\n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing ) ::Float64 \n\nξ_GNCxLD_Newtonian_Doppler(\n s1, s2, y, cosmo::Cosmology; kwargs... ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Newtonian effect arising from the Galaxy Number Counts (GNC) and the Doppler one arising from the Luminosity Distance (LD) perturbations.\n\nIn the first method, you should pass the two Point (P1 and P2) where to evaluate the function, while in the second method (that internally recalls the first) you must provide the two corresponding comoving distances s1 and s2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this TPCF is the following:\n\nbeginsplit\n xi^delta v_parallel( s_1 s_2 y ) = \n D_1 D_2 mathfrakJ^delta v_parallel_alpha left \n mathfrakJ^delta v_parallel_00 I^0_0 (s) + \n mathfrakJ^delta v_parallel_02 I^0_2 (s) +\n mathfrakJ^delta v_parallel_04 I^0_4 (s) \n right \nendsplit\n\nwith\n\nbeginsplit\n mathfrakJ^delta v_parallel_alpha = - f_2 mathcalH_2 mathfrakR_2\n \n \n mathfrakJ^delta v_parallel_00 =\n frac115 left\n s_2 left 5 b_1 + (2 y^2 + 1) f_1 right -\n y s_1 left 3 f_1 + 5 b_1 right\n right \n \n \n mathfrakJ^delta v_parallel_02 =\n frac121 s^2 \n left \n left\n (y^2 + 1) f_1 + 7 b_1\n right s_2^3 -\n y left\n 21 b_1 + (5 y^2 + 4) f_1 \n right s_1 s_2^2 +\n rightnonumber \n left qquad qquad\n left\n 7 (2 y^2 + 1) b_1 + (10 y^2 - 1) f_1\n right s_1^2 s_2 -\n y left\n 7 b_1 + 3 f_1\n right s_1^3\n right\n \n \n mathfrakJ^delta v_parallel_04 =\n fracf_135 s^2 \n left\n 2 y s_1 ^3\n - 2 (y^2 + 2) s_1 ^2 s_2 +\n y (y^2 + 5) s_1 s_2^2 +\n (1 - 3 y^2) s_2 ^3\n right \n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nmathfrakR_1 = mathfrakR(s_1), ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathfrakR(s) = 1 - frac1mathcalH(s) s \nb_1, s_mathrmb 1, mathitf_mathrmevo 1 (and b_2, s_mathrmb 2, mathitf_mathrmevo 2) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nInputs\n\nP1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nb1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:\nif not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;\nif you set one or more values, they will override the cosmo ones in this computation;\nthe two sets of values should be different only if you are interested in studing two galaxy species;\nonly the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities. \ns_lim=nothing : parameter used in order to avoid the divergence of the mathcalR and mathfrakR denominators: when 0 leq s leq s_mathrmlim the returned values are\nforall s in 0 s_mathrmlim quad \n mathfrakR(s) = 1 - frac1mathcalH_0 s_mathrmlim quad\n mathcalR(s) = 5 s_mathrmb + \n frac2 - 5 s_mathrmbmathcalH_0 s_mathrmlim + \n fracdotmathcalHmathcalH_0^2 - mathitf_mathrmevo \nIf nothing, the fault value stored in cosmo will be considered.\n\nSee also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole\n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations_1/#GaPSE.ξ_GNCxLD_Newtonian_Lensing","page":"GNCxLD TPCFs","title":"GaPSE.ξ_GNCxLD_Newtonian_Lensing","text":"ξ_GNCxLD_Newtonian_Lensing(\n s1, s2, y, cosmo::Cosmology;\n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing,\n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,\n en::Float64 = 1e6, N_χs::Int = 100 ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Newtonian effect arising from the Galaxy Number Counts (GNC) and the Lensing one arising from the Luminosity Distance (LD) perturbations.\n\nYou must provide the two comoving distances s1 and s2 where to evaluate the function. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this TPCF is the following:\n\nbeginsplit\n xi^delta kappa ( s_1 s_2 y ) =\n D_1 int_0^s_2 mathrmdchi_2 \n mathfrakJ^delta kappa_alpha\n left \n mathfrakJ^delta kappa_00 I_0^0 ( Deltachi_2 ) + \n mathfrakJ^delta kappa_02 I_2^0 ( Delta chi_2 ) + \n mathfrakJ^delta kappa_00 I_4^0 ( Delta chi_2 ) \n right \nendsplit\n\nwith\n\nbeginsplit\n mathfrakJ^delta kappa_alpha =\n - frac\n mathcalH_0 ^2 Omega_mathrmM0 D(chi_2)\n \n a(chi_2 ) s_2\n \n (chi_2 - s_2 )\n \n \n mathfrakJ^delta kappa_00 =\n frac15\n left\n (3 y^2 - 1) chi_2 f_1 - y s_1(3 f_1 + 5 b_1) \n right \n \n \n mathfrakJ^delta kappa_02 =\n frac114 Deltachi_2^2 \n left\n 4 f_1 (3 y^2 - 1) chi_2^3 - \n 2 y \n left\n (3 y^2 + 8) f_1 + 7 b_1\n right s_1 chi_2^2 +\n right nonumber \n leftqquad qquadqquad\n left\n (9 y^2 + 11) f_1 - 7 (y^2 + 3) b_1\n right s_1^2 chi_2 -\n 2 y left7 b_1 + 3 f_1 right s_1^3\n right \n \n \n mathfrakJ^delta kappa_04 =\n fracf_170 Deltachi_2^4 \n left\n (6 y^2 - 2) chi_2^5 +\n 6 y (y^2 - 3) s_1 chi_2^4 -\n (y^4 + 12 y^2 - 21) s_1^2 chi_2^3 +\n rightnonumber \n leftqquadqquadqquad\n 2 y (y^2 + 3) s_1^3 chi_2^2 -\n 12 chi_2 s_1^4 + \n 4 y s_1 ^5\n right \n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nmathfrakR_1 = mathfrakR(s_1), ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathfrakR(s) = 1 - frac1mathcalH(s) s \nb_1, s_mathrmb 1, mathitf_mathrmevo 1 (and b_2, s_mathrmb 2, mathitf_mathrmevo 2) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nThe computation is made applying trapz() (see the Trapz Julia package) to the integrand function integrand_ξ_GNCxLD_Newtonian_Lensing.\n\nInputs\n\ns1 and s2: comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nb1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:\nif not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;\nif you set one or more values, they will override the cosmo ones in this computation;\nthe two sets of values should be different only if you are interested in studing two galaxy species;\nonly the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities. \ns_lim=nothing : parameter used in order to avoid the divergence of the mathcalR and mathfrakR denominators: when 0 leq s leq s_mathrmlim the returned values are\nforall s in 0 s_mathrmlim quad \n mathfrakR(s) = 1 - frac1mathcalH_0 s_mathrmlim quad\n mathcalR(s) = 5 s_mathrmb + \n frac2 - 5 s_mathrmbmathcalH_0 s_mathrmlim + \n fracdotmathcalHmathcalH_0^2 - mathitf_mathrmevo \nIf nothing, the fault value stored in cosmo will be considered.\nen::Float64 = 1e6: just a float number used in order to deal better with small numbers;\nN_χs::Int = 100: number of points to be used for sampling the integral along the range (0, s2) (for χ2); it has been checked that with N_χs ≥ 100 the result is stable.\n\nSee also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole\n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations_1/#GaPSE.ξ_GNCxLD_Newtonian_LocalGP","page":"GNCxLD TPCFs","title":"GaPSE.ξ_GNCxLD_Newtonian_LocalGP","text":"ξ_GNCxLD_Newtonian_LocalGP(P1::Point, P2::Point, y, cosmo::Cosmology;\n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing,\n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing ) ::Float64\n\nξ_GNCxLD_Newtonian_LocalGP(\n s1, s2, y, cosmo::Cosmology; kwargs... ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Newtonian effect arising from the Galaxy Number Counts (GNC) and the Local Gravitational Potential (GP) one arising from the Luminosity Distance (LD) perturbations.\n\nIn the first method, you should pass the two Point (P1 and P2) where to evaluate the function, while in the second method (that internally recalls the first) you must provide the two corresponding comoving distances s1 and s2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this TPCF is the following:\n\nbeginsplit\n xi^delta phi( s_1 s_2 y ) = \n D_1 D_2 mathfrakJ^delta phi_alpha left \n mathfrakJ^delta phi_beta \n left(\n frac130 I_0^0 (s) + \n frac121 I_2^0 (s) +\n frac170 I_4^0 (s) \n right) +\n mathfrakJ^delta phi_20 I_0^2 (s)\n right \n \nendsplit\n\nwith\n\nbeginsplit\n mathfrakJ^delta phi_alpha =\n - fracmathcalH_0^2 Omega_mathrmM0a_2\n (1 + mathfrakR_2)\n \n \n mathfrakJ^delta phi_beta =\n f_1 left \n (3 y^2 - 1) s_2^2 - 4 y s_1 s_2 + 2 s_1^2\n right \n \n \n mathfrakJ^delta phi_20 = \n - frac12(3 b_1 + f_1) (s_1^2 + s_2^2 - 2 y s_1 s_2)\n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nmathfrakR_1 = mathfrakR(s_1), ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathfrakR(s) = 1 - frac1mathcalH(s) s \nb_1, s_mathrmb 1, mathitf_mathrmevo 1 (and b_2, s_mathrmb 2, mathitf_mathrmevo 2) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nInputs\n\nP1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nb1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:\nif not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;\nif you set one or more values, they will override the cosmo ones in this computation;\nthe two sets of values should be different only if you are interested in studing two galaxy species;\nonly the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities. \ns_lim=nothing : parameter used in order to avoid the divergence of the mathcalR and mathfrakR denominators: when 0 leq s leq s_mathrmlim the returned values are\nforall s in 0 s_mathrmlim quad \n mathfrakR(s) = 1 - frac1mathcalH_0 s_mathrmlim quad\n mathcalR(s) = 5 s_mathrmb + \n frac2 - 5 s_mathrmbmathcalH_0 s_mathrmlim + \n fracdotmathcalHmathcalH_0^2 - mathitf_mathrmevo \nIf nothing, the fault value stored in cosmo will be considered.\n\nSee also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole\n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations_1/#GaPSE.ξ_GNCxLD_Newtonian_IntegratedGP","page":"GNCxLD TPCFs","title":"GaPSE.ξ_GNCxLD_Newtonian_IntegratedGP","text":"ξ_GNCxLD_Newtonian_IntegratedGP(\n s1, s2, y, cosmo::Cosmology;\n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing,\n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,\n en::Float64 = 1e6, N_χs::Int = 100 ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Newtonian effect arising from the Galaxy Number Counts (GNC) and the Integrated Gravitational Potential (GP) one arising from the Luminosity Distance (LD) perturbations.\n\nYou must provide the two comoving distances s1 and s2 where to evaluate the function. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this TPCF is the following:\n\nbeginsplit\n xi^delta intphi(s_1 s_2 y ) =\n D_1 int_0^s_2 mathrmdchi_2 \n mathfrakJ^delta intphi_alpha\n left \n mathfrakJ^delta intphi_20 I_0^2 ( Deltachi_2 ) +\n right \n left \n mathfrakJ^delta intphi_beta\n left(\n frac115 I_0^0 ( Deltachi_2 ) + \n frac121 I_2^0 ( Deltachi_2 ) +\n frac135 I_4^0 ( Deltachi_2 )\n right) \n right \nendsplit\n\nwith\n\nbeginsplit\n mathfrakJ^delta intphi_alpha =\n - fracmathcalH_0^2 Omega_mathrmM0 D(chi_2)3 a(chi_2) s_2 \n left \n s_2 mathfrakR_2 mathcalH(chi_2) ( f(chi_2) - 1) - 1\n right \n \n \n mathfrakJ^delta intphi_beta =\n f_1 left \n (3 y^2 - 1) chi_2^2 - 4 y s_1 chi_2 + 2 s_1^2\n right \n \n \n mathfrakJ^delta intphi_20 =\n - Deltachi_2^2 ( 3 b_1 + f_1)\n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nmathfrakR_1 = mathfrakR(s_1), ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathfrakR(s) = 1 - frac1mathcalH(s) s \nb_1, s_mathrmb 1, mathitf_mathrmevo 1 (and b_2, s_mathrmb 2, mathitf_mathrmevo 2) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nThe computation is made applying trapz() (see the Trapz Julia package) to the integrand function integrand_ξ_GNCxLD_Newtonian_IntegratedGP.\n\nInputs\n\ns1 and s2: comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nb1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:\nif not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;\nif you set one or more values, they will override the cosmo ones in this computation;\nthe two sets of values should be different only if you are interested in studing two galaxy species;\nonly the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities. \ns_lim=nothing : parameter used in order to avoid the divergence of the mathcalR and mathfrakR denominators: when 0 leq s leq s_mathrmlim the returned values are\nforall s in 0 s_mathrmlim quad \n mathfrakR(s) = 1 - frac1mathcalH_0 s_mathrmlim quad\n mathcalR(s) = 5 s_mathrmb + \n frac2 - 5 s_mathrmbmathcalH_0 s_mathrmlim + \n fracdotmathcalHmathcalH_0^2 - mathitf_mathrmevo \nIf nothing, the fault value stored in cosmo will be considered.\nen::Float64 = 1e6: just a float number used in order to deal better with small numbers;\nN_χs::Int = 100: number of points to be used for sampling the integral along the range (0, s2) (for χ2); it has been checked that with N_χs ≥ 100 the result is stable.\n\nSee also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole\n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations_1/#GaPSE.ξ_GNCxLD_Doppler_Doppler","page":"GNCxLD TPCFs","title":"GaPSE.ξ_GNCxLD_Doppler_Doppler","text":"ξ_GNCxLD_Doppler_Doppler(\n P1::Point, P2::Point, y, cosmo::Cosmology;\n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, \n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing ) ::Float64\n\nξ_GNCxLD_Doppler_Doppler(\n s1, s2, y, cosmo::Cosmology; \n kwargs... ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Doppler effect arising from the Galaxy Number Counts (GNC) and the Doppler one arising from the Luminosity Distance (LD) perturbations.\n\nIn the first method, you should pass the two Point (P1 and P2) where to evaluate the function, while in the second method (that internally recalls the first) you must provide the two corresponding comoving distances s1 and s2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this TPCF is the following:\n\nbeginsplit\n xi^v_parallel v_parallel( s_1 s_2 y ) =\n D_1 D_2 mathfrakJ_alpha^v_parallel v_parallel\n left \n mathfrakJ_beta^v_parallel v_parallel\n left( \n frac145 I_0^0(s) +\n frac263 I_2^0 (s) + \n frac1105 I_4^0(s)\n right) +\n mathfrakJ^v_parallel v_parallel_20 I_0^2 (s)\n right \n \nendsplit\n\nwith\n\nbeginsplit\n mathfrakJ_alpha^v_parallel v_parallel = \n - f_1 f_2mathcalH_1 mathcalH_2 mathcalR_1 mathfrakR_2\n \n \n mathfrakJ_beta^v_parallel v_parallel = \n y^2 s_1 s_2 - 2 y (s_1^2 + s_2^2) + 3 s_1 s_2\n \n \n mathfrakJ_20^v_parallel v_parallel =\n frac13 y s^2\n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nmathfrakR_1 = mathfrakR(s_1), ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathfrakR(s) = 1 - frac1mathcalH(s) s \nb_1, s_mathrmb 1, mathitf_mathrmevo 1 (and b_2, s_mathrmb 2, mathitf_mathrmevo 2) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nInputs\n\nP1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nb1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:\nif not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;\nif you set one or more values, they will override the cosmo ones in this computation;\nthe two sets of values should be different only if you are interested in studing two galaxy species;\nonly the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities. \ns_lim=nothing : parameter used in order to avoid the divergence of the mathcalR and mathfrakR denominators: when 0 leq s leq s_mathrmlim the returned values are\nforall s in 0 s_mathrmlim quad \n mathfrakR(s) = 1 - frac1mathcalH_0 s_mathrmlim quad\n mathcalR(s) = 5 s_mathrmb + \n frac2 - 5 s_mathrmbmathcalH_0 s_mathrmlim + \n fracdotmathcalHmathcalH_0^2 - mathitf_mathrmevo \nIf nothing, the fault value stored in cosmo will be considered.\n\nSee also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole\n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations_1/#GaPSE.ξ_GNCxLD_Doppler_Lensing","page":"GNCxLD TPCFs","title":"GaPSE.ξ_GNCxLD_Doppler_Lensing","text":"ξ_GNCxLD_Doppler_Lensing(s1, s2, y, cosmo::Cosmology;\n en::Float64 = 1e6, N_χs::Int = 100,\n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing,\n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Doppler effect arising from the Galaxy Number Counts (GNC) and the Lensing one arising from the Luminosity Distance (LD) perturbations.\n\nYou must provide the two comoving distances s1 and s2 where to evaluate the function. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this TPCF is the following:\n\nbeginsplit\n xi^v_parallelkappa (s_1 s_2 y) =\n D_1 int_0^s_2 mathrmdchi_2 \n mathfrakJ^kappa v_parallel_alpha times \n left\n mathfrakJ^kappa v_parallel_00 I_0^0(Deltachi_2) + \n mathfrakJ^kappa v_parallel_02 I_2^0(Deltachi_2) + \n mathfrakJ^kappa v_parallel_04 I_4^0(Deltachi_2) + \n mathfrakJ^kappa v_parallel_20 I_0^2(Deltachi_2)\n right\nendsplit\n\nwith\n\nbeginsplit\n mathfrakJ^kappa v_parallel_alpha = \n - mathcalH_0^2 Omega_mathrmM0 f_1 mathcalH_1 mathcalR_1 \n fracD(chi_2) (chi_2 - s_2)a(chi_2) s_2\n \n \n mathfrakJ^kappa v_parallel_00 = \n frac115\n left\n chi_2^2 y + chi_2(4 y^2 - 3) s_1 - 2 y s_1^2\n right\n \n \n mathfrakJ^kappa v_parallel_02 = \n frac142 Deltachi_2^2\n left\n 4 chi_2^4 y + 4 chi_2^3 (2 y^2 - 3) s_1 +\n chi_2^2 y (11 - 23 y^2) s_1^2 +\n right\n leftqquadqquadqquad\n chi_2 (23 y^2 - 3) s_1^3 - 8 y s_1^4\n right nonumber\n \n \n mathfrakJ^kappa v_parallel_04 = \n frac170 Deltachi_2^2 \n left\n 2chi_2^4 y + 2 chi_2^3 (2 y^2 - 3) s_1 -\n chi_2^2 y (y^2 + 5) s_1^2 + \n right\n leftqquadqquadqquad\n chi_2 (y^2 + 9) s_1^3 - 4 y s_1^4\n right nonumber\n \n \n mathfrakJ^kappa v_parallel_20 = y Deltachi_2^2 \n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nmathfrakR_1 = mathfrakR(s_1), ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathfrakR(s) = 1 - frac1mathcalH(s) s \nb_1, s_mathrmb 1, mathitf_mathrmevo 1 (and b_2, s_mathrmb 2, mathitf_mathrmevo 2) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nThe computation is made applying trapz() (see the Trapz Julia package) to the integrand function integrand_ξ_GNCxLD_Doppler_Lensing.\n\nInputs\n\ns1 and s2: comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nb1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:\nif not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;\nif you set one or more values, they will override the cosmo ones in this computation;\nthe two sets of values should be different only if you are interested in studing two galaxy species;\nonly the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities. \ns_lim=nothing : parameter used in order to avoid the divergence of the mathcalR and mathfrakR denominators: when 0 leq s leq s_mathrmlim the returned values are\nforall s in 0 s_mathrmlim quad \n mathfrakR(s) = 1 - frac1mathcalH_0 s_mathrmlim quad\n mathcalR(s) = 5 s_mathrmb + \n frac2 - 5 s_mathrmbmathcalH_0 s_mathrmlim + \n fracdotmathcalHmathcalH_0^2 - mathitf_mathrmevo \nIf nothing, the fault value stored in cosmo will be considered.\nen::Float64 = 1e6: just a float number used in order to deal better with small numbers;\nN_χs::Int = 100: number of points to be used for sampling the integral along the range (0, s2) (for χ2); it has been checked that with N_χs ≥ 100 the result is stable.\n\nSee also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole\n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations_1/#GaPSE.ξ_GNCxLD_Doppler_LocalGP","page":"GNCxLD TPCFs","title":"GaPSE.ξ_GNCxLD_Doppler_LocalGP","text":"ξ_GNCxLD_Doppler_LocalGP(P1::Point, P2::Point, y, cosmo::Cosmology;\n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, \n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing ) ::Float64\n\nξ_GNCxLD_Doppler_LocalGP(s1, s2, y, cosmo::Cosmology; kwargs... ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Doppler effect arising from the Galaxy Number Counts (GNC) and the Local Gravitational Potential (GP) one arising from the Luminosity Distance (LD) perturbations.\n\nIn the first method, you should pass the two Point (P1 and P2) where to evaluate the function, while in the second method (that internally recalls the first) you must provide the two corresponding comoving distances s1 and s2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this TPCF is the following:\n\nbeginsplit\n xi^v_parallelphi (s_1 s_2 y) = \n D_1 D_2 mathfrakJ^v_parallelphi_31 I^3_1(s) \nendsplit\n\nwith\n\nbeginsplit\n mathfrakJ^v_parallelphi_31 = \n - frac32 a_2 f_1 mathcalH_1 mathcalR_1 mathcalH_0^2 \n Omega_mathrmM0 (1 + mathfrakR_2)(y s_2 - s_1) \n s^2 \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nmathfrakR_1 = mathfrakR(s_1), ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathfrakR(s) = 1 - frac1mathcalH(s) s \nb_1, s_mathrmb 1, mathitf_mathrmevo 1 (and b_2, s_mathrmb 2, mathitf_mathrmevo 2) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nInputs\n\nP1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nb1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:\nif not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;\nif you set one or more values, they will override the cosmo ones in this computation;\nthe two sets of values should be different only if you are interested in studing two galaxy species;\nonly the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities. \ns_lim=nothing : parameter used in order to avoid the divergence of the mathcalR and mathfrakR denominators: when 0 leq s leq s_mathrmlim the returned values are\nforall s in 0 s_mathrmlim quad \n mathfrakR(s) = 1 - frac1mathcalH_0 s_mathrmlim quad\n mathcalR(s) = 5 s_mathrmb + \n frac2 - 5 s_mathrmbmathcalH_0 s_mathrmlim + \n fracdotmathcalHmathcalH_0^2 - mathitf_mathrmevo \nIf nothing, the fault value stored in cosmo will be considered.\n\nSee also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole\n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations_1/#GaPSE.ξ_GNCxLD_Doppler_IntegratedGP","page":"GNCxLD TPCFs","title":"GaPSE.ξ_GNCxLD_Doppler_IntegratedGP","text":"ξ_GNCxLD_Doppler_IntegratedGP(s1, s2, y, cosmo::Cosmology;\n en::Float64 = 1e6, N_χs::Int = 100,\n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, \n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Doppler effect arising from the Galaxy Number Counts (GNC) and the Integrated Gravitational Potential (GP) one arising from the Luminosity Distance (LD) perturbations.\n\nYou must provide the two comoving distances s1 and s2 where to evaluate the function. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this TPCF is the following:\n\nbeginsplit\n xi^v_parallel intphi (s_1 s_2 y) =\n D_1 int_0^s_2 mathrmdchi_2 \n mathfrakJ^v_parallel intphi_31 I_1^3(Deltachi_2) \nendsplit\n\nwith\n\nbeginsplit\n mathfrakJ^v_parallel intphi_31 =\n 3 f_1 mathcalH_1 mathcalR_1 mathcalH_0^2 Omega_mathrmM0\n frac\n D(chi_2)(chi_2 y - s_1)\n \n a(chi_2) s_2\n Deltachi_2^2 left\n s_2 mathfrakR_2 mathcalH(chi_2)(f_2 -1) - 1 \n right \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nmathfrakR_1 = mathfrakR(s_1), ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathfrakR(s) = 1 - frac1mathcalH(s) s \nb_1, s_mathrmb 1, mathitf_mathrmevo 1 (and b_2, s_mathrmb 2, mathitf_mathrmevo 2) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nThe computation is made applying trapz() (see the Trapz Julia package) to the integrand function integrand_ξ_GNCxLD_Doppler_IntegratedGP.\n\nInputs\n\ns1 and s2: comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nb1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:\nif not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;\nif you set one or more values, they will override the cosmo ones in this computation;\nthe two sets of values should be different only if you are interested in studing two galaxy species;\nonly the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities. \ns_lim=nothing : parameter used in order to avoid the divergence of the mathcalR and mathfrakR denominators: when 0 leq s leq s_mathrmlim the returned values are\nforall s in 0 s_mathrmlim quad \n mathfrakR(s) = 1 - frac1mathcalH_0 s_mathrmlim quad\n mathcalR(s) = 5 s_mathrmb + \n frac2 - 5 s_mathrmbmathcalH_0 s_mathrmlim + \n fracdotmathcalHmathcalH_0^2 - mathitf_mathrmevo \nIf nothing, the fault value stored in cosmo will be considered.\nen::Float64 = 1e6: just a float number used in order to deal better with small numbers;\nN_χs::Int = 100: number of points to be used for sampling the integral along the range (0, s2) (for χ2); it has been checked that with N_χs ≥ 100 the result is stable.\n\nSee also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole\n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations_1/#GaPSE.ξ_GNCxLD_Lensing_Doppler","page":"GNCxLD TPCFs","title":"GaPSE.ξ_GNCxLD_Lensing_Doppler","text":"ξ_GNCxLD_Lensing_Doppler(\n s1, s2, y, cosmo::Cosmology;\n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing,\n\t 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,\n en::Float64=1e6, N_χs::Int=100 ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Lensing effect arising from the Galaxy Number Counts (GNC) and the Doppler one arising from the Luminosity Distance (LD) perturbations.\n\nYou must provide the two comoving distances s1 and s2 where to evaluate the function. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this TPCF is the following:\n\nbeginsplit\n xi^kappa v_parallel (s_1 s_2 y) = \n D_2 int_0^s_1 mathrmdchi_1 \n mathfrakJ^kappa v_parallel_alpha times \n left\n mathfrakJ^kappa v_parallel_00 I_0^0(Deltachi_1) + \n mathfrakJ^kappa v_parallel_02 I_2^0(Deltachi_1) + \n mathfrakJ^kappa v_parallel_04 I_4^0(Deltachi_1) + \n mathfrakJ^kappa v_parallel_20 I_0^2(Deltachi_1)\n right\nendsplit\n\nwith\n\nbeginsplit\n mathfrakJ^kappa v_parallel_alpha = \n - mathcalH_0^2 Omega_mathrmM0 f_2 mathcalH_2 mathfrakR_2 \n fracD(chi_1) (chi_1 - s_1)a(chi_1) s_1\n (5 s_mathrmb 1 - 2 )\n \n \n mathfrakJ^kappa v_parallel_00 = \n frac115\n left\n chi_1^2 y + chi_1(4 y^2 - 3) s_2 - 2 y s_2^2\n right\n \n \n mathfrakJ^kappa v_parallel_02 = \n frac142 Deltachi_1^2\n left\n 4 chi_1^4 y + 4 chi_1^3 (2 y^2 - 3) s_2 +\n chi_1^2 y (11 - 23 y^2) s_2^2 +\n right\n leftqquadqquadqquad\n chi_1 (23 y^2 - 3) s_2^3 - 8 y s_2^4\n right nonumber\n \n \n mathfrakJ^kappa v_parallel_04 = \n frac170 Deltachi_1^2 \n left\n 2chi_1^4 y + 2 chi_1^3 (2 y^2 - 3) s_2 -\n chi_1^2 y (y^2 + 5) s_2^2 + \n right\n leftqquadqquadqquad\n chi_1(y^2 + 9) s_2^3 - 4 y s_2^4\n right nonumber\n \n \n mathfrakJ^kappa v_parallel_20 = y Deltachi_1^2 \n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nmathfrakR_1 = mathfrakR(s_1), ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathfrakR(s) = 1 - frac1mathcalH(s) s \nb_1, s_mathrmb 1, mathitf_mathrmevo 1 (and b_2, s_mathrmb 2, mathitf_mathrmevo 2) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nThe computation is made applying trapz() (see the Trapz Julia package) to the integrand function integrand_ξ_GNCxLD_Lensing_Doppler.\n\nInputs\n\ns1 and s2: comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nb1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:\nif not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;\nif you set one or more values, they will override the cosmo ones in this computation;\nthe two sets of values should be different only if you are interested in studing two galaxy species;\nonly the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities. \ns_lim=nothing : parameter used in order to avoid the divergence of the mathcalR and mathfrakR denominators: when 0 leq s leq s_mathrmlim the returned values are\nforall s in 0 s_mathrmlim quad \n mathfrakR(s) = 1 - frac1mathcalH_0 s_mathrmlim quad\n mathcalR(s) = 5 s_mathrmb + \n frac2 - 5 s_mathrmbmathcalH_0 s_mathrmlim + \n fracdotmathcalHmathcalH_0^2 - mathitf_mathrmevo \nIf nothing, the fault value stored in cosmo will be considered.\nen::Float64 = 1e6: just a float number used in order to deal better with small numbers;\nN_χs::Int = 100: number of points to be used for sampling the integral along the range (0, s1) (for χ1); it has been checked that with N_χs ≥ 100 the result is stable.\n\nSee also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole\n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations_1/#GaPSE.ξ_GNCxLD_Lensing_Lensing","page":"GNCxLD TPCFs","title":"GaPSE.ξ_GNCxLD_Lensing_Lensing","text":"ξ_GNCxLD_Lensing_Lensing(\n P1::Point, P2::Point, y, cosmo::Cosmology;\n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing,\n\t 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,\n en::Float64=1e6, N_χs_2::Int=100 ) ::Float64\n\nξ_GNCxLD_Lensing_Lensing(s1, s2, y, cosmo::Cosmology; kwargs... ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Lensing effect arising from the Galaxy Number Counts (GNC) and the Lensing one arising from the Luminosity Distance (LD) perturbations.\n\nIn the first method, you should pass the two extreme Points (P1 and P2) where to evaluate the function. In the second method (that internally recalls the first), you must provide the two corresponding comoving distances s1, s2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this TPCF is the following:\n\nbeginsplit\n xi^kappakappa (s_1 s_2 y) = \n int_0^s_1 mathrmdchi_1 int_0^s_2 mathrmdchi_2 \n mathfrakJ^kappakappa_alpha\n left\n mathfrakJ^kappakappa_00 I_0^0(Deltachi) + \n mathfrakJ^kappakappa_02 I_2^0(Deltachi) +\n right\n left\n mathfrakJ^kappakappa_31 I_1^3(Deltachi) +\n mathfrakJ^kappakappa_22 I_2^2(Deltachi)\n right nonumber \nendsplit\n\nwith\n\nbeginsplit\n mathfrakJ^kappakappa_alpha = \n - frac\n mathcalH_0^4 Omega_mathrmM0^2 D(chi_1) D(chi_2) \n \n s_1 s_2 a(chi_1) a(chi_2)\n (chi_1 - s_1)(chi_2 - s_2)\n (5 s_mathrmb 2 - 1)\n \n \n mathfrakJ^kappakappa_00 = \n -frac 3 chi_1^2 chi_2^24 Deltachi^4 (y^2 - 1)\n left\n 8 y (chi_1^2 + chi_2^2) - 9chi_1chi_2y^2 - \n 7chi_1chi_2\n right \n \n \n mathfrakJ^kappakappa_02 = \n -frac 3 chi_1^2 chi_2^22 Deltachi^4(y^2 - 1)\n left\n 4 y (chi_1^2 + chi_2^2) - 3 chi_1 chi_2 y^2 -\n 5 chi_1 chi_2\n right \n \n \n mathfrakJ^kappakappa_31 = 9 y Deltachi^2 \n \n \n mathfrakJ^kappakappa_22 = \n frac9 chi_1 chi_24 Deltachi^4\n left\n 2(chi_1^4 + chi_2^4)(7 y^2 - 3) - \n 16 y chi_1 chi_2 (chi_1^2 + chi_2^2)(y^2 + 1) + \n right\n leftqquadqquadqquad\n chi_1^2 chi_2^2 (11y^4 + 14y^2 + 23) \n right \n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nmathfrakR_1 = mathfrakR(s_1), ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathfrakR(s) = 1 - frac1mathcalH(s) s \nb_1, s_mathrmb 1, mathitf_mathrmevo 1 (and b_2, s_mathrmb 2, mathitf_mathrmevo 2) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nThe computation is made applying trapz() (see the Trapz Julia package) to the integrand function integrand_ξ_GNCxLD_Lensing_Lensing.\n\nInputs\n\nP1::Point, P2::Point or s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nb1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:\nif not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;\nif you set one or more values, they will override the cosmo ones in this computation;\nthe two sets of values should be different only if you are interested in studing two galaxy species;\nonly the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities. \ns_lim=nothing : parameter used in order to avoid the divergence of the mathcalR and mathfrakR denominators: when 0 leq s leq s_mathrmlim the returned values are\nforall s in 0 s_mathrmlim quad \n mathfrakR(s) = 1 - frac1mathcalH_0 s_mathrmlim quad\n mathcalR(s) = 5 s_mathrmb + \n frac2 - 5 s_mathrmbmathcalH_0 s_mathrmlim + \n fracdotmathcalHmathcalH_0^2 - mathitf_mathrmevo \nIf nothing, the fault value stored in cosmo will be considered.\nen::Float64 = 1e6: just a float number used in order to deal better with small numbers;\nN_χs_2::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ1) and (0, s2) (for χ2); it has been checked that with N_χs_2 ≥ 50 the result is stable.\n\nSee also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole\n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations_1/#GaPSE.ξ_GNCxLD_Lensing_LocalGP","page":"GNCxLD TPCFs","title":"GaPSE.ξ_GNCxLD_Lensing_LocalGP","text":" ξ_GNCxLD_Lensing_LocalGP(\n\t s1, s2, y, cosmo::Cosmology;\n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing,\n\t 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,\n\t en::Float64 = 1e6, N_χs::Int = 100) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Lensing effect arising from the Galaxy Number Counts (GNC) and the Local Gravitational Potential (GP) one arising from the Luminosity Distance (LD) perturbations.\n\nYou must provide the two comoving distances s1 and s2 where to evaluate the function. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this TPCF is the following:\n\nbeginsplit\n xi^kappa phi (s_1 s_2 y) = \n D_2 int_0^s_1 mathrmdchi_1 \n mathfrakJ^kappa phi_alpha left\n mathfrakJ^kappa phi_31 I_1^3(Deltachi_1) + \n mathfrakJ^kappa phi_22 I_2^2(Deltachi_1)\n right nonumber \nendsplit\n\nwith\n\nbeginsplit\n mathfrakJ^kappa phi_alpha =\n - frac\n 9 mathcalH_0^4 Omega_mathrmM0^2 s_2 D(chi_1)(s_1 - chi_1)\n \n 4 a_2 s_1a(chi_1)\n \n (1 + mathfrakR_2)\n (5 s_mathrmb 1 - 2)\n \n \n mathfrakJ^kappa phi_31 = -2 y Deltachi_1^2 \n \n \n mathfrakJ^kappa phi_22 = chi_1 s_2 (1 - y^2) \n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nmathfrakR_1 = mathfrakR(s_1), ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathfrakR(s) = 1 - frac1mathcalH(s) s \nb_1, s_mathrmb 1, mathitf_mathrmevo 1 (and b_2, s_mathrmb 2, mathitf_mathrmevo 2) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nThe computation is made applying trapz() (see the Trapz Julia package) to the integrand function integrand_ξ_GNCxLD_Lensing_LocalGP.\n\nInputs\n\ns1 and s2: comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nb1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:\nif not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;\nif you set one or more values, they will override the cosmo ones in this computation;\nthe two sets of values should be different only if you are interested in studing two galaxy species;\nonly the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities. \ns_lim=nothing : parameter used in order to avoid the divergence of the mathcalR and mathfrakR denominators: when 0 leq s leq s_mathrmlim the returned values are\nforall s in 0 s_mathrmlim quad \n mathfrakR(s) = 1 - frac1mathcalH_0 s_mathrmlim quad\n mathcalR(s) = 5 s_mathrmb + \n frac2 - 5 s_mathrmbmathcalH_0 s_mathrmlim + \n fracdotmathcalHmathcalH_0^2 - mathitf_mathrmevo \nIf nothing, the fault value stored in cosmo will be considered.\nen::Float64 = 1e6: just a float number used in order to deal better with small numbers;\nN_χs::Int = 100: number of points to be used for sampling the integral along the range (0, s1) (for χ1); it has been checked that with N_χs ≥ 100 the result is stable.\n\nSee also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole\n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations_1/#GaPSE.ξ_GNCxLD_Lensing_IntegratedGP","page":"GNCxLD TPCFs","title":"GaPSE.ξ_GNCxLD_Lensing_IntegratedGP","text":"ξ_GNCxLD_Lensing_IntegratedGP(\n P1::Point, P2::Point, y, cosmo::Cosmology;\n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing,\n\t 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,\n en::Float64 = 1e6, N_χs_2::Int = 100 ) ::Float64\n\nξ_GNCxLD_Lensing_IntegratedGP(s1, s2, y, cosmo::Cosmology; kwargs... ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Lensing effect arising from the Galaxy Number Counts (GNC) and the Integrated Gravitational Potential (GP) one arising from the Luminosity Distance (LD) perturbations.\n\nIn the first method, you should pass the two extreme Points (P1 and P2) where to evaluate the function. In the second method (that internally recalls the first), you must provide the two corresponding comoving distances s1, s2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this TPCF is the following:\n\nbeginsplit\n xi^kappaintphi (s_1 s_2 y) = \n int_0^s_1 mathrmdchi_1 int_0^s_2 mathrmdchi_2 \n mathfrakJ^kappaintphi_alpha\n left \n mathfrakJ^kappaintphi_31 I_1^3(Deltachi) + \n mathfrakJ^kappaintphi_22 I_2^2(Deltachi) \n right \nendsplit\n\nwith\n\nbeginsplit\n mathfrakJ^kappaintphi_alpha =\n frac92 mathcalH_0^4 Omega_mathrmM0^2 \n frac\n D(chi_1) D(chi_2) chi_2 (s_1 - chi_1)\n \n s_1 s_2 a(chi_1) a(chi_2)\n (5 s_mathrmb 1 - 2 )\n left\n s_2 mathfrakR_2 mathcalH(chi_2) (f(chi_2) - 1) - 1\n right\n \n \n mathfrakJ^kappaintphi_31 = -2 y Deltachi^2\n \n \n mathfrakJ^kappaintphi_22 = chi_1 chi_2(1 - y^2) \n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nmathfrakR_1 = mathfrakR(s_1), ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathfrakR(s) = 1 - frac1mathcalH(s) s \nb_1, s_mathrmb 1, mathitf_mathrmevo 1 (and b_2, s_mathrmb 2, mathitf_mathrmevo 2) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nThe computation is made applying trapz() (see the Trapz Julia package) to the integrand function integrand_ξ_GNCxLD_Lensing_IntegratedGP.\n\nInputs\n\nP1::Point, P2::Point or s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nb1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:\nif not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;\nif you set one or more values, they will override the cosmo ones in this computation;\nthe two sets of values should be different only if you are interested in studing two galaxy species;\nonly the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities. \ns_lim=nothing : parameter used in order to avoid the divergence of the mathcalR and mathfrakR denominators: when 0 leq s leq s_mathrmlim the returned values are\nforall s in 0 s_mathrmlim quad \n mathfrakR(s) = 1 - frac1mathcalH_0 s_mathrmlim quad\n mathcalR(s) = 5 s_mathrmb + \n frac2 - 5 s_mathrmbmathcalH_0 s_mathrmlim + \n fracdotmathcalHmathcalH_0^2 - mathitf_mathrmevo \nIf nothing, the fault value stored in cosmo will be considered.\nen::Float64 = 1e6: just a float number used in order to deal better with small numbers;\nN_χs_2::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ1) and (0, s2) (for χ2); it has been checked that with N_χs_2 ≥ 50 the result is stable.\n\nSee also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole\n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations_1/#GaPSE.ξ_GNCxLD_LocalGP_Doppler","page":"GNCxLD TPCFs","title":"GaPSE.ξ_GNCxLD_LocalGP_Doppler","text":"ξ_GNCxLD_LocalGP_Doppler(P1::Point, P2::Point, y, cosmo::Cosmology;\n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing,\n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing ) ::Float64\n\nξ_GNCxLD_LocalGP_Doppler(\n s1, s2, y, cosmo::Cosmology; kwargs... ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Local Gravitational Potential (GP) effect arising from the Galaxy Number Counts (GNC) and the Doppler one arising from the Luminosity Distance (LD) perturbations.\n\nIn the first method, you should pass the two Point (P1 and P2) where to evaluate the function, while in the second method (that internally recalls the first) you must provide the two corresponding comoving distances s1 and s2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this TPCF is the following:\n\nbeginsplit\n xi^phi v_parallel ( s_1 s_2 y ) = \n D_1 D_2 mathfrakJ^phi v_parallel_alpha\n left \n frac190 I_0^0 (s) +\n frac163 I_2^0 (s) + \n frac1210 I_4^0 (s) +\n frac16 I_0^2 (s) \n right \nendsplit\n\nwith\n\nbeginsplit\n mathfrakJ^phi v_parallel_alpha =\n - fracf_2 mathcalH_2 mathfrakR_2 s^2a_1 (y s_1 - s_2) \n times\n qquadqquadqquad\n left \n 2 f_1 a_1 mathcalH_1^2 (mathitf_mathrmevo 1 - 3) + \n 3 mathcalH_0^2 Omega_mathrmM0 (f_1 + mathcalR_1 + 5 s_mathrmb 1 - 2)\n right\n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nmathfrakR_1 = mathfrakR(s_1), ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathfrakR(s) = 1 - frac1mathcalH(s) s \nb_1, s_mathrmb 1, mathitf_mathrmevo 1 (and b_2, s_mathrmb 2, mathitf_mathrmevo 2) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nInputs\n\nP1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nb1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:\nif not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;\nif you set one or more values, they will override the cosmo ones in this computation;\nthe two sets of values should be different only if you are interested in studing two galaxy species;\nonly the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities. \ns_lim=nothing : parameter used in order to avoid the divergence of the mathcalR and mathfrakR denominators: when 0 leq s leq s_mathrmlim the returned values are\nforall s in 0 s_mathrmlim quad \n mathfrakR(s) = 1 - frac1mathcalH_0 s_mathrmlim quad\n mathcalR(s) = 5 s_mathrmb + \n frac2 - 5 s_mathrmbmathcalH_0 s_mathrmlim + \n fracdotmathcalHmathcalH_0^2 - mathitf_mathrmevo \nIf nothing, the fault value stored in cosmo will be considered.\n\nSee also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole\n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations_1/#GaPSE.ξ_GNCxLD_LocalGP_Lensing","page":"GNCxLD TPCFs","title":"GaPSE.ξ_GNCxLD_LocalGP_Lensing","text":"ξ_GNCxLD_LocalGP_Lensing(\n\ts1, s2, y, cosmo::Cosmology;\n\tb1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing,\n\t𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,\n\ten::Float64 = 1e6, N_χs::Int = 100) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Local Gravitational Potential (GP) effect arising from the Galaxy Number Counts (GNC) and the Lensing one arising from the Luminosity Distance (LD) perturbations.\n\nYou must provide the two comoving distances s1 and s2 where to evaluate the function. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this TPCF is the following:\n\nbeginsplit\n xi^phi kappa (s_1 s_2 y ) = \n D_1 int_0^s_2 mathrmdchi_2 \n mathfrakJ^phi kappa_alphaleft \n mathfrakJ^phi kappa_20 I_0^2 ( Delta chi_2 ) +\n rightnonumber \n leftqquad\n mathfrakJ^phi kappa_beta\n left(\n frac160 I_0^0 ( Delta chi_2 ) +\n frac142 I_2^0 ( Delta chi_2 ) +\n frac1140 I_4^0 ( Delta chi_2 ) \n right)\n right \nendsplit\n\nwith\n\nbeginsplit\n mathfrakJ^phi kappa_alpha = \n - fracmathcalH_0^2 Omega_mathrmM0 s_1 D(chi_2) a_1 s_2 a(chi_2)\n (chi_2 - s_2) \n times\n qquadqquad\n left\n 2 f_1 a_1 mathcalH_1^2 (mathitf_mathrmevo 1 - 3) + \n 3 mathcalH_0^2 Omega_mathrmM0 (f_1 + mathcalR_1 + 5 s_mathrmb 1 - 2)\n right nonumber\n \n \n mathfrakJ^phi kappa_beta =\n 2 y chi_2^2 - chi_2 s_1 (y^2 + 3) + 2 y s_1^2\n \n \n mathfrakJ^phi kappa_20 = frac12 y Deltachi_2^2 \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nmathfrakR_1 = mathfrakR(s_1), ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathfrakR(s) = 1 - frac1mathcalH(s) s \nb_1, s_mathrmb 1, mathitf_mathrmevo 1 (and b_2, s_mathrmb 2, mathitf_mathrmevo 2) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nThe computation is made applying trapz() (see the Trapz Julia package) to the integrand function integrand_ξ_GNCxLD_LocalGP_Lensing.\n\nInputs\n\ns1 and s2: comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nb1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:\nif not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;\nif you set one or more values, they will override the cosmo ones in this computation;\nthe two sets of values should be different only if you are interested in studing two galaxy species;\nonly the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities. \ns_lim=nothing : parameter used in order to avoid the divergence of the mathcalR and mathfrakR denominators: when 0 leq s leq s_mathrmlim the returned values are\nforall s in 0 s_mathrmlim quad \n mathfrakR(s) = 1 - frac1mathcalH_0 s_mathrmlim quad\n mathcalR(s) = 5 s_mathrmb + \n frac2 - 5 s_mathrmbmathcalH_0 s_mathrmlim + \n fracdotmathcalHmathcalH_0^2 - mathitf_mathrmevo \nIf nothing, the fault value stored in cosmo will be considered.\nen::Float64 = 1e6: just a float number used in order to deal better with small numbers;\nN_χs::Int = 100: number of points to be used for sampling the integral along the range (0, s2) (for χ2); it has been checked that with N_χs ≥ 100 the result is stable.\n\nSee also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole\n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations_1/#GaPSE.ξ_GNCxLD_LocalGP_LocalGP","page":"GNCxLD TPCFs","title":"GaPSE.ξ_GNCxLD_LocalGP_LocalGP","text":"ξ_GNCxLD_LocalGP_LocalGP(P1::Point, P2::Point, y, cosmo::Cosmology;\n\tb1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing,\n\t𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing ) ::Float64\n\nξ_GNCxLD_LocalGP_LocalGP(\n\ts1, s2, y, cosmo::Cosmology; kwargs... ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Local Gravitational pential (GP) effect arising from the Galaxy Number Counts (GNC) and the Local GP one arising from the Luminosity Distance (LD) perturbations.\n\nIn the first method, you should pass the two Point (P1 and P2) where to evaluate the function, while in the second method (that internally recalls the first) you must provide the two corresponding comoving distances s1 and s2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this TPCF is the following:\n\nbeginsplit\n xi^phiphi( s_1 s_2 y ) = \n D_1 D_2 mathfrakJ_40^phiphi( s_1 s_2 ) tildeI_0^4 (s) \n \nendsplit\n\nwith\n\nbeginsplit\n mathfrakJ_04^phiphi (s_1 s_2) = \n - frac3 mathcalH_0^2 Omega_mathrmM0 s^44 a_1 a_2\n (1 + mathfrakR_2)\n left\n 2 a_1 f_1( mathitf_mathrmevo 1-3) mathcalH_1^2 + \n 3 mathcalH_0^2 Omega_mathrmM0 (f_1 + mathcalR_1 + 5 s_mathrmb 1 - 2)\n right \n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nmathfrakR_1 = mathfrakR(s_1), ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathfrakR(s) = 1 - frac1mathcalH(s) s \nb_1, s_mathrmb 1, mathitf_mathrmevo 1 (and b_2, s_mathrmb 2, mathitf_mathrmevo 2) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nInputs\n\nP1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nb1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:\nif not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;\nif you set one or more values, they will override the cosmo ones in this computation;\nthe two sets of values should be different only if you are interested in studing two galaxy species;\nonly the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities. \ns_lim=nothing : parameter used in order to avoid the divergence of the mathcalR and mathfrakR denominators: when 0 leq s leq s_mathrmlim the returned values are\nforall s in 0 s_mathrmlim quad \n mathfrakR(s) = 1 - frac1mathcalH_0 s_mathrmlim quad\n mathcalR(s) = 5 s_mathrmb + \n frac2 - 5 s_mathrmbmathcalH_0 s_mathrmlim + \n fracdotmathcalHmathcalH_0^2 - mathitf_mathrmevo \nIf nothing, the fault value stored in cosmo will be considered.\n\nSee also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole\n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations_1/#GaPSE.ξ_GNCxLD_LocalGP_IntegratedGP","page":"GNCxLD TPCFs","title":"GaPSE.ξ_GNCxLD_LocalGP_IntegratedGP","text":"ξ_GNCxLD_LocalGP_IntegratedGP(\n\ts1, s2, y, cosmo::Cosmology;\n\tb1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing,\n\t𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,\n\ten::Float64=1e6, N_χs::Int=100 ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Local Gravitational Potential (GP) effect arising from the Galaxy Number Counts (GNC) and the Integrated GP one arising from the Luminosity Distance (LD) perturbations.\n\nYou must provide the two comoving distances s1 and s2 where to evaluate the function. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this TPCF is the following:\n\nbeginsplit\n xi^phi intphi ( s_1 s_2 y ) = \n D_1 int_0^s_2 mathrmdchi_2 \n mathfrakJ^phi intphi_40 I_0^4 ( Deltachi_2 ) \n \nendsplit\n\nwith\n\nbeginsplit\n mathfrakJ^phi intphi_40 =\n - frac\n 3 Deltachi_2^4 mathcalH_0^2 Omega_mathrmM0 D(chi_2) \n \n 2 s_2 a(chi_2) a_1\n left\n s_2 mathcalH(chi_2) mathfrakR_2 ( f(chi_2) - 1 ) - 1\n right \n times\n qquadqquadqquad\n left\n 2 a_1 f_1 mathcalH_1^2 (mathitf_mathrmevo 1 - 3) +\n 3 mathcalH_0^2 Omega_mathrmM0 (f_1 + mathcalR_1 + 5 s_mathrmb 1 - 2)\n right\n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nmathfrakR_1 = mathfrakR(s_1), ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathfrakR(s) = 1 - frac1mathcalH(s) s \nb_1, s_mathrmb 1, mathitf_mathrmevo 1 (and b_2, s_mathrmb 2, mathitf_mathrmevo 2) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nThe computation is made applying trapz() (see the Trapz Julia package) to the integrand function integrand_ξ_GNCxLD_LocalGP_IntegratedGP.\n\nInputs\n\ns1 and s2: comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nb1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:\nif not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;\nif you set one or more values, they will override the cosmo ones in this computation;\nthe two sets of values should be different only if you are interested in studing two galaxy species;\nonly the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities. \ns_lim=nothing : parameter used in order to avoid the divergence of the mathcalR and mathfrakR denominators: when 0 leq s leq s_mathrmlim the returned values are\nforall s in 0 s_mathrmlim quad \n mathfrakR(s) = 1 - frac1mathcalH_0 s_mathrmlim quad\n mathcalR(s) = 5 s_mathrmb + \n frac2 - 5 s_mathrmbmathcalH_0 s_mathrmlim + \n fracdotmathcalHmathcalH_0^2 - mathitf_mathrmevo \nIf nothing, the fault value stored in cosmo will be considered.\nen::Float64 = 1e6: just a float number used in order to deal better with small numbers;\nN_χs::Int = 100: number of points to be used for sampling the integral along the range (0, s2) (for χ2); it has been checked that with N_χs ≥ 100 the result is stable.\n\nSee also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole\n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations_1/#GaPSE.ξ_GNCxLD_IntegratedGP_Doppler","page":"GNCxLD TPCFs","title":"GaPSE.ξ_GNCxLD_IntegratedGP_Doppler","text":"ξ_GNCxLD_IntegratedGP_Doppler(s1, s2, y, cosmo::Cosmology;\n en::Float64 = 1e6, N_χs::Int = 100, \n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, \n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Integrated Gravitational Potential (GP) effect arising from the Galaxy Number Counts (GNC) and the Doppler one arising from the Luminosity Distance (LD) perturbations.\n\nYou must provide the two comoving distances s1 and s2 where to evaluate the function. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this TPCF is the following:\n\nbeginsplit\n xi^intphi v_parallel (s_1 s_2 y) =\n D_2 int_0^s_1 mathrmdchi_1 \n mathfrakJ^intphi v_parallel_31 I_1^3(Deltachi_1) \nendsplit\n\nwith\n\nbeginsplit\n mathfrakJ^intphi v_parallel_31 =\n - 3 f_2 mathcalH_2 mathfrakR_2 mathcalH_0^2 Omega_mathrmM0\n frac\n D(chi_1)(s_2 - chi_1 y)\n \n a(chi_1) s_1\n Deltachi_1^2 left\n s_1 mathcalR_1 mathcalH(chi_1)(f_1 - 1) - 5 s_mathrmb 1 + 2\n right \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nmathfrakR_1 = mathfrakR(s_1), ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathfrakR(s) = 1 - frac1mathcalH(s) s \nb_1, s_mathrmb 1, mathitf_mathrmevo 1 (and b_2, s_mathrmb 2, mathitf_mathrmevo 2) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nThe computation is made applying trapz() (see the Trapz Julia package) to the integrand function integrand_ξ_GNCxLD_IntegratedGP_Doppler.\n\nInputs\n\ns1 and s2: comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nb1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:\nif not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;\nif you set one or more values, they will override the cosmo ones in this computation;\nthe two sets of values should be different only if you are interested in studing two galaxy species;\nonly the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities. \ns_lim=nothing : parameter used in order to avoid the divergence of the mathcalR and mathfrakR denominators: when 0 leq s leq s_mathrmlim the returned values are\nforall s in 0 s_mathrmlim quad \n mathfrakR(s) = 1 - frac1mathcalH_0 s_mathrmlim quad\n mathcalR(s) = 5 s_mathrmb + \n frac2 - 5 s_mathrmbmathcalH_0 s_mathrmlim + \n fracdotmathcalHmathcalH_0^2 - mathitf_mathrmevo \nIf nothing, the fault value stored in cosmo will be considered.\nen::Float64 = 1e6: just a float number used in order to deal better with small numbers;\nN_χs::Int = 100: number of points to be used for sampling the integral along the range (0, s1) (for χ1); it has been checked that with N_χs ≥ 100 the result is stable.\n\nSee also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole\n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations_1/#GaPSE.ξ_GNCxLD_IntegratedGP_Lensing","page":"GNCxLD TPCFs","title":"GaPSE.ξ_GNCxLD_IntegratedGP_Lensing","text":"ξ_GNCxLD_IntegratedGP_Lensing(\n s1, s2, y, cosmo::Cosmology;\n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing,\n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing, \n en::Float64 = 1e6, N_χs::Int = 100 ) ::Float64\n\nξ_GNCxLD_IntegratedGP_Lensing(\n s1, s2, y, cosmo::Cosmology; \n kwargs... ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Integrated Gravitational Potential (GP) effect arising from the Galaxy Number Counts (GNC) and the Lensing one arising from the Luminosity Distance (LD) perturbations.\n\nIn the first method, you should pass the two extreme Points (P1 and P2) where to evaluate the function. In the second method (that internally recalls the first), you must provide the two corresponding comoving distances s1, s2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this TPCF is the following:\n\nbeginsplit\n xi^intphi kappa ( s_1 s_2 y ) = \n int_0^s_1 mathrmdchi_1 int_0^s_2 mathrmdchi_2 \n mathfrakJ_alpha^intphi kappa \n left \n mathfrakJ_31^intphi kappa I_1^3 ( Delta chi ) +\n mathfrakJ_22^intphi kappa I_2^2 ( Delta chi ) \n right \nendsplit\n\nwith\n\nbeginsplit\n mathfrakJ_alpha^intphi kappa =\n - frac\n 9 chi_1 mathcalH_0^4 Omega_mathrmM0^2 D(chi_1) D(chi_2) \n \n a(chi_1) a(chi_2) s_1 s_2\n \n (chi_2 - s_2)\n left\n mathcalH(chi_1) mathcalR_1 s_1 (f(chi_1) - 1) - 5 s_mathrmb 1 + 2\n right\n \n \n mathfrakJ_31^intphi kappa = y Deltachi^2\n \n \n mathfrakJ_22^intphi kappa = \n frac12 (y^2 - 1) chi_1 chi_2 \n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nmathfrakR_1 = mathfrakR(s_1), ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathfrakR(s) = 1 - frac1mathcalH(s) s \nb_1, s_mathrmb 1, mathitf_mathrmevo 1 (and b_2, s_mathrmb 2, mathitf_mathrmevo 2) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nThe computation is made applying trapz() (see the Trapz Julia package) to the integrand function integrand_ξ_GNCxLD_IntegratedGP_Lensing.\n\nInputs\n\nP1::Point, P2::Point or s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nb1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:\nif not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;\nif you set one or more values, they will override the cosmo ones in this computation;\nthe two sets of values should be different only if you are interested in studing two galaxy species;\nonly the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities. \ns_lim=nothing : parameter used in order to avoid the divergence of the mathcalR and mathfrakR denominators: when 0 leq s leq s_mathrmlim the returned values are\nforall s in 0 s_mathrmlim quad \n mathfrakR(s) = 1 - frac1mathcalH_0 s_mathrmlim quad\n mathcalR(s) = 5 s_mathrmb + \n frac2 - 5 s_mathrmbmathcalH_0 s_mathrmlim + \n fracdotmathcalHmathcalH_0^2 - mathitf_mathrmevo \nIf nothing, the fault value stored in cosmo will be considered.\nen::Float64 = 1e6: just a float number used in order to deal better with small numbers;\nN_χs_2::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ1) and (0, s2) (for χ2); it has been checked that with N_χs_2 ≥ 50 the result is stable.\n\nSee also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole\n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations_1/#GaPSE.ξ_GNCxLD_IntegratedGP_LocalGP","page":"GNCxLD TPCFs","title":"GaPSE.ξ_GNCxLD_IntegratedGP_LocalGP","text":"ξ_GNCxLD_IntegratedGP_LocalGP(\n s1, s2, y, cosmo::Cosmology;\n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing,\n\t 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,\n en::Float64 = 1e6, N_χs::Int = 100 ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Integrated Gravitational Potential (GP) effect arising from the Galaxy Number Counts (GNC) and the Local GP one arising from the Luminosity Distance (LD) perturbations.\n\nYou must provide the two comoving distances s1 and s2 where to evaluate the function. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this TPCF is the following:\n\nbeginsplit\n xi^intphi phi (s_1 s_2 y) = \n D_2 int_0^s_1 mathrmdchi_1 \n mathfrakJ^intphi phi_40 tildeI^4_0(Deltachi_1)\n \nendsplit\n\nwith\n\nbeginsplit\n mathfrakJ^intphi phi_40 =\n - frac9 mathcalH_0^4 Omega_mathrmM0^2 D(chi_1) 2 a_2 s_1 a(chi_1) \n Deltachi_1^4 (1 + mathfrakR_2)\n left\n s_1 mathcalH(chi_1) mathcalR_1 (f(chi_1) - 1) - 5 s_mathrmb 1 + 2\n right \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nmathfrakR_1 = mathfrakR(s_1), ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathfrakR(s) = 1 - frac1mathcalH(s) s \nb_1, s_mathrmb 1, mathitf_mathrmevo 1 (and b_2, s_mathrmb 2, mathitf_mathrmevo 2) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nThe computation is made applying trapz() (see the Trapz Julia package) to the integrand function integrand_ξ_GNCxLD_IntegratedGP_LocalGP.\n\nInputs\n\ns1 and s2: comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nb1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:\nif not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;\nif you set one or more values, they will override the cosmo ones in this computation;\nthe two sets of values should be different only if you are interested in studing two galaxy species;\nonly the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities. \ns_lim=nothing : parameter used in order to avoid the divergence of the mathcalR and mathfrakR denominators: when 0 leq s leq s_mathrmlim the returned values are\nforall s in 0 s_mathrmlim quad \n mathfrakR(s) = 1 - frac1mathcalH_0 s_mathrmlim quad\n mathcalR(s) = 5 s_mathrmb + \n frac2 - 5 s_mathrmbmathcalH_0 s_mathrmlim + \n fracdotmathcalHmathcalH_0^2 - mathitf_mathrmevo \nIf nothing, the fault value stored in cosmo will be considered.\nen::Float64 = 1e6: just a float number used in order to deal better with small numbers;\nN_χs::Int = 100: number of points to be used for sampling the integral along the range (0, s1) (for χ1); it has been checked that with N_χs ≥ 100 the result is stable.\n\nSee also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole\n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations_1/#GaPSE.ξ_GNCxLD_IntegratedGP_IntegratedGP","page":"GNCxLD TPCFs","title":"GaPSE.ξ_GNCxLD_IntegratedGP_IntegratedGP","text":"ξ_GNCxLD_IntegratedGP_IntegratedGP(\n P1::Point, P2::Point, y, cosmo::Cosmology; \n en::Float64 = 1e10, N_χs::Int = 100,\n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, \n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing ) ::Float64\n\nξ_GNCxLD_IntegratedGP_IntegratedGP(\n s1, s2, y, cosmo::Cosmology; kwargs...) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Integrated Gravitational Potential (GP) effect arising from the Galaxy Number Counts (GNC) and the Integrated GP one arising from the Luminosity Distance (LD) perturbations.\n\nIn the first method, you should pass the two extreme Points (P1 and P2) where to evaluate the function. In the second method (that internally recalls the first), you must provide the two corresponding comoving distances s1, s2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this TPCF is the following:\n\nbeginsplit\n xi^intphi int phi ( s_1 s_2 y ) = \n int_0^s_1 mathrmdchi_1 int_0^s_2 mathrmdchi_2 \n mathfrakJ^int phi int phi_40 \n tildeI_0^4 ( Deltachi) \nendsplit\n\nwith\n\nbeginsplit\n mathfrakJ^int phiint phi_40 =\n - frac\n 9 Deltachi ^4 mathcalH_0^4 Omega_mathrmM0^2 D(chi_1) D(chi_2)\n \n a(chi_1) a(chi_2) s_1 s_2\n \n left\n s_1 (f(chi_1) - 1) mathcalH(chi_1) mathcalR_1 - 5 s_mathrmb 1 + 2\n right times\n nonumber \n left\n s_2 (f(chi_2) - 1) mathcalH(chi_2) mathfrakR_2 - 1\n right\n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nmathfrakR_1 = mathfrakR(s_1), ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathfrakR(s) = 1 - frac1mathcalH(s) s \nb_1, s_mathrmb 1, mathitf_mathrmevo 1 (and b_2, s_mathrmb 2, mathitf_mathrmevo 2) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nThe computation is made applying trapz() (see the Trapz Julia package) to the integrand function integrand_ξ_GNCxLD_IntegratedGP_IntegratedGP.\n\nInputs\n\nP1::Point, P2::Point or s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nb1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:\nif not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;\nif you set one or more values, they will override the cosmo ones in this computation;\nthe two sets of values should be different only if you are interested in studing two galaxy species;\nonly the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities. \ns_lim=nothing : parameter used in order to avoid the divergence of the mathcalR and mathfrakR denominators: when 0 leq s leq s_mathrmlim the returned values are\nforall s in 0 s_mathrmlim quad \n mathfrakR(s) = 1 - frac1mathcalH_0 s_mathrmlim quad\n mathcalR(s) = 5 s_mathrmb + \n frac2 - 5 s_mathrmbmathcalH_0 s_mathrmlim + \n fracdotmathcalHmathcalH_0^2 - mathitf_mathrmevo \nIf nothing, the fault value stored in cosmo will be considered.\nen::Float64 = 1e6: just a float number used in order to deal better with small numbers;\nN_χs_2::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ1) and (0, s2) (for χ2); it has been checked that with N_χs_2 ≥ 50 the result is stable.\n\nSee also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole\n\n\n\n\n\n","category":"function"},{"location":"Dicts/","page":"Dictionaries and names","title":"Dictionaries and names","text":"DocTestSetup = quote\n using GaPSE\nend","category":"page"},{"location":"Dicts/#Dictionaries-and-other-consts","page":"Dictionaries and names","title":"Dictionaries and other consts","text":"","category":"section"},{"location":"Dicts/","page":"Dictionaries and names","title":"Dictionaries and names","text":"GaPSE.VALID_INTEGRATION_ALGORITHM\nGaPSE.VALID_KWARGS_GNC\n\nGaPSE.GR_EFFECTS_LD\nGaPSE.VEC_ξs_LD\nGaPSE.DICT_GR_ξs_LD\nGaPSE.INDEX_GR_EFFECT_LD\nGaPSE.GR_EFFECT_INDEX_LD\n\nGaPSE.GR_EFFECTS_GNC\nGaPSE.VEC_ξs_GNC\nGaPSE.DICT_GR_ξs_GNC\nGaPSE.DICT_ξs_GR_GNC\nGaPSE.INDEX_GR_EFFECT_GNC\nGaPSE.GR_EFFECT_INDEX_GNC\nGaPSE.EFFECTS_WITH_OBS_VEL\nGaPSE.VALID_OBS_VALUES\n\nGaPSE.GR_EFFECTS_GNCxLD\nGaPSE.GR_EFFECTS_LDxGNC\nGaPSE.VEC_ξs_GNCxLD\nGaPSE.VEC_ξs_LDxGNC\nGaPSE.DICT_GR_ξs_GNCxLD\nGaPSE.DICT_GR_ξs_LDxGNC\nGaPSE.INDEX_GR_EFFECT_GNCxLD\nGaPSE.INDEX_GR_EFFECT_LDxGNC\nGaPSE.GR_EFFECT_INDEX_GNCxLD\nGaPSE.GR_EFFECT_INDEX_LDxGNC","category":"page"},{"location":"Dicts/#GaPSE.VALID_INTEGRATION_ALGORITHM","page":"Dictionaries and names","title":"GaPSE.VALID_INTEGRATION_ALGORITHM","text":"const VALID_INTEGRATION_ALGORITHM = [:lobatto, :quad, :trap]\n\nValid integration lgorithm that can be used in order to perform an integration over the mu angle cosine.\n\n\n\n\n\n","category":"constant"},{"location":"Dicts/#GaPSE.VALID_KWARGS_GNC","page":"Dictionaries and names","title":"GaPSE.VALID_KWARGS_GNC","text":"const VALID_KWARGS_GNC = [\n :L, :use_windows, :alg, :obs,\n :N_trap, :N_lob, :atol_quad, :rtol_quad,\n :N_χs :N_χs_2, :pr, :suit_sampling]\n\nValid keyword argument names for the GNC function group.\n\n\n\n\n\n","category":"constant"},{"location":"Dicts/#GaPSE.GR_EFFECTS_LD","page":"Dictionaries and names","title":"GaPSE.GR_EFFECTS_LD","text":"const GR_EFFECTS_LD = [\n \"auto_doppler\", \"auto_lensing\",\n \"auto_localgp\", \"auto_integratedgp\", \n \n \"lensing_doppler\", \"doppler_lensing\",\n \"doppler_localgp\", \"localgp_doppler\",\n \"doppler_integratedgp\", \"integratedgp_doppler\",\n \"lensing_localgp\", \"localgp_lensing\",\n \"lensing_integratedgp\", \"integratedgp_lensing\",\n \"localgp_integratedgp\", \"integratedgp_localgp\",\n]\n\nThe names of the GR effects implemented. Their order is associated with the one in VEC_ξs_LD, so be careful to change it.\n\nSee also: VEC_ξs_LD\n\n\n\n\n\n","category":"constant"},{"location":"Dicts/#GaPSE.VEC_ξs_LD","page":"Dictionaries and names","title":"GaPSE.VEC_ξs_LD","text":"const VEC_ξs_LD = [\n ξ_LD_Doppler, ξ_LD_Lensing, ξ_LD_LocalGP, ξ_LD_IntegratedGP, \n ξ_LD_Lensing_Doppler, ξ_LD_Doppler_Lensing,\n ξ_LD_Doppler_LocalGP, ξ_LD_LocalGP_Doppler,\n ξ_LD_Doppler_IntegratedGP, ξ_LD_IntegratedGP_Doppler,\n ξ_LD_Lensing_LocalGP, ξ_LD_LocalGP_Lensing,\n ξ_LD_Lensing_IntegratedGP, ξ_LD_IntegratedGP_Lensing,\n ξ_LD_LocalGP_IntegratedGP, ξ_LD_IntegratedGP_LocalGP\n]\n\nThe names of the GR effect TPCFs implemented. Their order is associated with the one in GR_EFFECTS_LD, so be careful to change it.\n\nSee also: GR_EFFECTS_LD\n\n\n\n\n\n","category":"constant"},{"location":"Dicts/#GaPSE.DICT_GR_ξs_LD","page":"Dictionaries and names","title":"GaPSE.DICT_GR_ξs_LD","text":"const DICT_GR_ξs_LD::Dict{String,Function}\n\nFor an input key string effect from GR_EFFECTS_LD, return the associated TPCF DICT_GR_ξs_LD[effect] from VEC_ξs_LD.\n\nExample\n\njulia> GaPSE.DICT_GR_ξs_LD[\"auto_doppler\"]\nξ_LD_Doppler\n\nSee also: GR_EFFECTS_LD, VEC_ξs_LD\n\n\n\n\n\n","category":"constant"},{"location":"Dicts/#GaPSE.INDEX_GR_EFFECT_LD","page":"Dictionaries and names","title":"GaPSE.INDEX_GR_EFFECT_LD","text":"const INDEX_GR_EFFECT_LD::Dict{String,Integer}\n\nFor an input key string effect from GR_EFFECTS_LD, return the associated index position in that vector.\n\nExample\n\njulia> GaPSE.INDEX_GR_EFFECT_LD[\"auto_doppler\"]\n1\n\nSee also: GR_EFFECTS_LD\n\n\n\n\n\n","category":"constant"},{"location":"Dicts/#GaPSE.GR_EFFECT_INDEX_LD","page":"Dictionaries and names","title":"GaPSE.GR_EFFECT_INDEX_LD","text":"const GR_EFFECT_INDEX_LD::Dict{Integer,String}\n\nFor an input index position i of GR_EFFECTS_LD, return the associated key string effect.\n\nExample\n\njulia> GaPSE.DICT_GR_ξs_LD[1]\n\"auto_doppler\"\n\nSee also: GR_EFFECTS_LD\n\n\n\n\n\n","category":"constant"},{"location":"Dicts/#GaPSE.GR_EFFECTS_GNC","page":"Dictionaries and names","title":"GaPSE.GR_EFFECTS_GNC","text":"const GR_EFFECTS_GNC = [\n \"auto_newton\", \"auto_doppler\", \"auto_lensing\",\n \"auto_localgp\", \"auto_integratedgp\", \n \n \"newton_doppler\", \"doppler_newton\",\n \"newton_lensing\", \"lensing_newton\",\n \"newton_localgp\", \"localgp_newton\",\n \"newton_integratedgp\", \"integratedgp_newton\",\n \"lensing_doppler\", \"doppler_lensing\",\n \"doppler_localgp\", \"localgp_doppler\",\n \"doppler_integratedgp\", \"integratedgp_doppler\",\n \"lensing_localgp\", \"localgp_lensing\",\n \"lensing_integratedgp\", \"integratedgp_lensing\",\n \"localgp_integratedgp\", \"integratedgp_localgp\",\n]\n\nThe names of the GR effects implemented. Their order is associated with the one in VEC_ξs_GNC, so be careful to change it.\n\nSee also: VEC_ξs_GNC\n\n\n\n\n\n","category":"constant"},{"location":"Dicts/#GaPSE.VEC_ξs_GNC","page":"Dictionaries and names","title":"GaPSE.VEC_ξs_GNC","text":"const VEC_ξs_GNC = [\n ξ_GNC_Newtonian, ξ_GNC_Doppler, ξ_GNC_Lensing,\n ξ_GNC_LocalGP, ξ_GNC_IntegratedGP, \n \n ξ_GNC_Newtonian_Doppler, ξ_GNC_Doppler_Newtonian,\n ξ_GNC_Newtonian_Lensing, ξ_GNC_Lensing_Newtonian,\n ξ_GNC_Newtonian_LocalGP, ξ_GNC_LocalGP_Newtonian,\n ξ_GNC_Newtonian_IntegratedGP, ξ_GNC_IntegratedGP_Newtonian,\n ξ_GNC_Lensing_Doppler, ξ_GNC_Doppler_Lensing,\n ξ_GNC_Doppler_LocalGP, ξ_GNC_LocalGP_Doppler,\n ξ_GNC_Doppler_IntegratedGP, ξ_GNC_IntegratedGP_Doppler,\n ξ_GNC_Lensing_LocalGP, ξ_GNC_LocalGP_Lensing,\n ξ_GNC_Lensing_IntegratedGP, ξ_GNC_IntegratedGP_Lensing,\n ξ_GNC_LocalGP_IntegratedGP, ξ_GNC_IntegratedGP_LocalGP\n]\n\nThe names of the GR effect TPCFs implemented. Their order is associated with the one in GR_EFFECTS_GNC, so be careful to change it.\n\nSee also: GR_EFFECTS_GNC\n\n\n\n\n\n","category":"constant"},{"location":"Dicts/#GaPSE.DICT_GR_ξs_GNC","page":"Dictionaries and names","title":"GaPSE.DICT_GR_ξs_GNC","text":"const DICT_GR_ξs_GNC::Dict{String,Function}\n\nFor an input key string effect from GR_EFFECTS_GNC, return the associated TPCF DICT_GR_ξs_GNC[effect] from VEC_ξs_GNC.\n\nExample\n\njulia> GaPSE.DICT_GR_ξs_GNC[\"auto_doppler\"]\nξ_GNC_Doppler\n\nSee also: GR_EFFECTS_GNC, VEC_ξs_GNC\n\n\n\n\n\n","category":"constant"},{"location":"Dicts/#GaPSE.DICT_ξs_GR_GNC","page":"Dictionaries and names","title":"GaPSE.DICT_ξs_GR_GNC","text":"const DICT_GR_ξs_GNC::Dict{Function,String}\n\nFor an input key TPCF function func from VEC_ξs_GNC, return the associated string DICT_GR_ξs_GNC[func] from GR_EFFECTS_GNC,\n\nExample\n\njulia> GaPSE.DICT_GR_ξs_GNC[ξ_GNC_Doppler]\n\"auto_doppler\"\n\nSee also: GR_EFFECTS_GNC, VEC_ξs_GNC\n\n\n\n\n\n","category":"constant"},{"location":"Dicts/#GaPSE.INDEX_GR_EFFECT_GNC","page":"Dictionaries and names","title":"GaPSE.INDEX_GR_EFFECT_GNC","text":"const INDEX_GR_EFFECT_GNC::Dict{String,Integer}\n\nFor an input key string effect from GR_EFFECTS_GNC, return the associated index position in that vector.\n\nExample\n\njulia> GaPSE.INDEX_GR_EFFECT_GNC[\"auto_doppler\"]\n1\n\nSee also: GR_EFFECTS_GNC\n\n\n\n\n\n","category":"constant"},{"location":"Dicts/#GaPSE.GR_EFFECT_INDEX_GNC","page":"Dictionaries and names","title":"GaPSE.GR_EFFECT_INDEX_GNC","text":"const GR_EFFECT_INDEX_GNC::Dict{Integer,String}\n\nFor an input index position i of GR_EFFECTS_GNC, return the associated key string effect.\n\nExample\n\njulia> GaPSE.DICT_GR_ξs_GNC[1]\n\"auto_doppler\"\n\nSee also: GR_EFFECTS_GNC\n\n\n\n\n\n","category":"constant"},{"location":"Dicts/#GaPSE.EFFECTS_WITH_OBS_VEL","page":"Dictionaries and names","title":"GaPSE.EFFECTS_WITH_OBS_VEL","text":"const EFFECTS_WITH_OBS_VEL = [\n \"auto_doppler\",\n \"newton_doppler\", \"doppler_newton\",\n \"lensing_doppler\", \"doppler_lensing\",\n \"doppler_localgp\", \"localgp_doppler\",\n \"doppler_integratedgp\", \"integratedgp_doppler\",\n]\n\nContains the names of the GNC effects that have observer terms derived from a non-zero observer velocity.\n\n\n\n\n\n","category":"constant"},{"location":"Dicts/#GaPSE.VALID_OBS_VALUES","page":"Dictionaries and names","title":"GaPSE.VALID_OBS_VALUES","text":"const VALID_OBS_VALUES = [:yes, :no, :noobsvel]\n\nContains the valid Symbols for the variable \"obs\", which refers to the GNC terms related to the observer.\n\n\n\n\n\n","category":"constant"},{"location":"Dicts/#GaPSE.GR_EFFECTS_GNCxLD","page":"Dictionaries and names","title":"GaPSE.GR_EFFECTS_GNCxLD","text":"const GR_EFFECTS_GNCxLD = [\n \"newton_doppler\", \n \"newton_lensing\", \n \"newton_localgp\", \n \"newton_integratedgp\",\n\n \"doppler_doppler\",\n \"doppler_lensing\",\n \"doppler_localgp\", \n \"doppler_integratedgp\",\n\n \"lensing_doppler\",\n \"lensing_lensing\",\n \"lensing_localgp\",\n \"lensing_integratedgp\",\n \n \"localgp_doppler\",\n \"localgp_lensing\",\n \"localgp_localgp\",\n \"localgp_integratedgp\",\n\n \"integratedgp_doppler\",\n \"integratedgp_lensing\",\n \"integratedgp_localgp\",\n \"integratedgp_integratedgp\",\n]\n\nThe names of the GR effects implemented. Their order is associated with the one in VEC_ξs_GNCxLD, so be careful to change it.\n\nSee also: VEC_ξs_GNCxLD\n\n\n\n\n\n","category":"constant"},{"location":"Dicts/#GaPSE.GR_EFFECTS_LDxGNC","page":"Dictionaries and names","title":"GaPSE.GR_EFFECTS_LDxGNC","text":"const GR_EFFECTS_LDxGNC = [\n \"doppler_newton\", \n \"lensing_newton\", \n \"localgp_newton\", \n \"integratedgp_newton\",\n\n \"doppler_doppler\",\n \"lensing_doppler\",\n \"localgp_doppler\", \n \"integratedgp_doppler\",\n\n \"doppler_lensing\",\n \"lensing_lensing\",\n \"localgp_lensing\",\n \"integratedgp_lensing\",\n \n \"doppler_localgp\",\n \"lensing_localgp\",\n \"localgp_localgp\",\n \"integratedgp_localgp\",\n\n \"doppler_integratedgp\",\n \"lensing_integratedgp\",\n \"localgp_integratedgp\",\n \"integratedgp_integratedgp\",\n]\n\nThe names of the GR effects implemented. Their order is associated with the one in VEC_ξs_LDxGNC, so be careful to change it.\n\nSee also: VEC_ξs_LDxGNC\n\n\n\n\n\n","category":"constant"},{"location":"Dicts/#GaPSE.VEC_ξs_GNCxLD","page":"Dictionaries and names","title":"GaPSE.VEC_ξs_GNCxLD","text":"const VEC_ξs_GNCxLD = [\n ξ_GNCxLD_Newtonian_Doppler,\n ξ_GNCxLD_Newtonian_Lensing, \n ξ_GNCxLD_Newtonian_LocalGP, \n ξ_GNCxLD_Newtonian_IntegratedGP, \n\n ξ_GNCxLD_Doppler_Doppler,\n ξ_GNCxLD_Doppler_Lensing,\n ξ_GNCxLD_Doppler_LocalGP, \n ξ_GNCxLD_Doppler_IntegratedGP, \n \n ξ_GNCxLD_Lensing_Doppler,\n ξ_GNCxLD_Lensing_Lensing,\n ξ_GNCxLD_Lensing_LocalGP,\n ξ_GNCxLD_Lensing_IntegratedGP,\n\n ξ_GNCxLD_LocalGP_Doppler,\n ξ_GNCxLD_LocalGP_Lensing,\n ξ_GNCxLD_LocalGP_LocalGP,\n ξ_GNCxLD_LocalGP_IntegratedGP,\n\n ξ_GNCxLD_IntegratedGP_Doppler,\n ξ_GNCxLD_IntegratedGP_Lensing,\n ξ_GNCxLD_IntegratedGP_LocalGP,\n ξ_GNCxLD_IntegratedGP_IntegratedGP,\n]\n\nThe names of the GR effect TPCFs implemented. Their order is associated with the one in GR_EFFECTS_GNCxLD, so be careful to change it.\n\nSee also: GR_EFFECTS_GNCxLD\n\n\n\n\n\n","category":"constant"},{"location":"Dicts/#GaPSE.VEC_ξs_LDxGNC","page":"Dictionaries and names","title":"GaPSE.VEC_ξs_LDxGNC","text":"const VEC_ξs_LDxGNC = [\n ξ_LDxGNC_Doppler_Newtonian,\n ξ_LDxGNC_Lensing_Newtonian,\n ξ_LDxGNC_LocalGP_Newtonian,\n ξ_LDxGNC_IntegratedGP_Newtonian,\n\n ξ_LDxGNC_Doppler_Doppler,\n ξ_LDxGNC_Lensing_Doppler,\n ξ_LDxGNC_LocalGP_Doppler,\n ξ_LDxGNC_IntegratedGP_Doppler,\n\n ξ_LDxGNC_Doppler_Lensing,\n ξ_LDxGNC_Lensing_Lensing,\n ξ_LDxGNC_LocalGP_Lensing,\n ξ_LDxGNC_IntegratedGP_Lensing,\n\n ξ_LDxGNC_Doppler_LocalGP,\n ξ_LDxGNC_Lensing_LocalGP,\n ξ_LDxGNC_LocalGP_LocalGP,\n ξ_LDxGNC_IntegratedGP_LocalGP,\n\n ξ_LDxGNC_Doppler_IntegratedGP,\n ξ_LDxGNC_Lensing_IntegratedGP,\n ξ_LDxGNC_LocalGP_IntegratedGP,\n ξ_LDxGNC_IntegratedGP_IntegratedGP,\n]\n\nThe names of the GR effect TPCFs implemented. Their order is associated with the one in GR_EFFECTS_LDxGNC, so be careful to change it.\n\nSee also: GR_EFFECTS_LDxGNC\n\n\n\n\n\n","category":"constant"},{"location":"Dicts/#GaPSE.DICT_GR_ξs_GNCxLD","page":"Dictionaries and names","title":"GaPSE.DICT_GR_ξs_GNCxLD","text":"const DICT_GR_ξs_GNCxLD::Dict{String,Function}\n\nFor an input key string effect from GR_EFFECTS_GNCxLD, return the associated TPCF DICT_GR_ξs_GNCxLD[effect] from VEC_ξs_GNCxLD.\n\nExample\n\njulia> GaPSE.DICT_GR_ξs_GNCxLD[\"lensing_doppler\"]\nξ_GNCxLD_Lensing_Doppler\n\nSee also: GR_EFFECTS_GNCxLD, VEC_ξs_GNCxLD\n\n\n\n\n\n","category":"constant"},{"location":"Dicts/#GaPSE.DICT_GR_ξs_LDxGNC","page":"Dictionaries and names","title":"GaPSE.DICT_GR_ξs_LDxGNC","text":"const DICT_GR_ξs_LDxGNC::Dict{String,Function}\n\nFor an input key string effect from GR_EFFECTS_LDxGNC, return the associated TPCF DICT_GR_ξs_LDxGNC[effect] from VEC_ξs_v.\n\nExample\n\njulia> GaPSE.DICT_GR_ξs_LDxGNC[\"lensing_doppler\"]\nξ_LDxGNC_Lensing_Doppler\n\nSee also: GR_EFFECTS_LDxGNC, VEC_ξs_LDxGNC\n\n\n\n\n\n","category":"constant"},{"location":"Dicts/#GaPSE.INDEX_GR_EFFECT_GNCxLD","page":"Dictionaries and names","title":"GaPSE.INDEX_GR_EFFECT_GNCxLD","text":"const INDEX_GR_EFFECT_GNCxLD::Dict{String,Integer}\n\nFor an input key string effect from GR_EFFECTS_GNCxLD, return the associated index position in that vector.\n\nExample\n\njulia> GaPSE.INDEX_GR_EFFECT_GNCxLD[\"newton_lensing\"]\n2\n\nSee also: GR_EFFECTS_GNCxLD\n\n\n\n\n\n","category":"constant"},{"location":"Dicts/#GaPSE.INDEX_GR_EFFECT_LDxGNC","page":"Dictionaries and names","title":"GaPSE.INDEX_GR_EFFECT_LDxGNC","text":"const INDEX_GR_EFFECT_LDxGNC::Dict{String,Integer}\n\nFor an input key string effect from GR_EFFECTS_LDxGNC, return the associated index position in that vector.\n\nExample\n\njulia> GaPSE.INDEX_GR_EFFECT_LDxGNC[\"lensing_newton\"]\n2\n\nSee also: GR_EFFECTS_LDxGNC\n\n\n\n\n\n","category":"constant"},{"location":"Dicts/#GaPSE.GR_EFFECT_INDEX_GNCxLD","page":"Dictionaries and names","title":"GaPSE.GR_EFFECT_INDEX_GNCxLD","text":"const GR_EFFECT_INDEX_GNCxLD::Dict{Integer,String}\n\nFor an input index position i of GR_EFFECTS_GNCxLD, return the associated key string effect.\n\nExample\n\njulia> GaPSE.DICT_GR_ξs_GNCxLD[2]\n\"newton_doppler\"\n\nSee also: GR_EFFECTS_GNCxLD\n\n\n\n\n\n","category":"constant"},{"location":"Dicts/#GaPSE.GR_EFFECT_INDEX_LDxGNC","page":"Dictionaries and names","title":"GaPSE.GR_EFFECT_INDEX_LDxGNC","text":"const GR_EFFECT_INDEX_LDxGNC::Dict{Integer,String}\n\nFor an input index position i of GR_EFFECTS_LDxGNC, return the associated key string effect.\n\nExample\n\njulia> GaPSE.DICT_GR_ξs_LDxGNC[2]\n\"doppler_newton\"\n\nSee also: GR_EFFECTS_LDxGNC\n\n\n\n\n\n","category":"constant"},{"location":"GNC_Correlations_2/","page":"GNC TPCFs","title":"GNC TPCFs","text":"DocTestSetup = quote\n using GaPSE\nend","category":"page"},{"location":"GNC_Correlations_2/#GNC-TPCFs","page":"GNC TPCFs","title":"GNC TPCFs","text":"","category":"section"},{"location":"GNC_Correlations_2/#Two-Point-Cross-Correlation-Functions","page":"GNC TPCFs","title":"Two-Point Cross-Correlation Functions","text":"","category":"section"},{"location":"GNC_Correlations_2/","page":"GNC TPCFs","title":"GNC TPCFs","text":"GaPSE.ξ_GNC_Newtonian_Doppler\nGaPSE.ξ_GNC_Doppler_Newtonian\nGaPSE.ξ_GNC_Newtonian_Lensing\nGaPSE.ξ_GNC_Lensing_Newtonian\nGaPSE.ξ_GNC_Newtonian_LocalGP\nGaPSE.ξ_GNC_LocalGP_Newtonian\nGaPSE.ξ_GNC_Newtonian_IntegratedGP\nGaPSE.ξ_GNC_IntegratedGP_Newtonian\nGaPSE.ξ_GNC_Doppler_Lensing\nGaPSE.ξ_GNC_Lensing_Doppler\nGaPSE.ξ_GNC_Doppler_LocalGP\nGaPSE.ξ_GNC_LocalGP_Doppler\nGaPSE.ξ_GNC_Doppler_IntegratedGP\nGaPSE.ξ_GNC_IntegratedGP_Doppler\nGaPSE.ξ_GNC_Lensing_LocalGP\nGaPSE.ξ_GNC_LocalGP_Lensing\nGaPSE.ξ_GNC_Lensing_IntegratedGP\nGaPSE.ξ_GNC_IntegratedGP_Lensing\nGaPSE.ξ_GNC_LocalGP_IntegratedGP\nGaPSE.ξ_GNC_IntegratedGP_LocalGP","category":"page"},{"location":"GNC_Correlations_2/#GaPSE.ξ_GNC_Newtonian_Doppler","page":"GNC TPCFs","title":"GaPSE.ξ_GNC_Newtonian_Doppler","text":"ξ_GNC_Newtonian_Doppler(\n P1::Point, P2::Point, y, cosmo::Cosmology; \n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, \n 𝑓_evo1=nothing, 𝑓_evo2=nothing,\n s_lim=nothing, obs::Union{Bool, Symbol} = :noobsvel\n ) ::Float64\n\nξ_GNC_Newtonian_Doppler(s1, s2, y, cosmo::Cosmology;\n kwargs...) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Newtonian and the Doppler effects arising from the Galaxy Number Counts (GNC).\n\nIn the first method, you should pass the two Point (P1 and P2) where to evaluate the function, while in the second method (that internally recalls the first) you must provide the two corresponding comoving distances s1 and s2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this TPCF is the following:\n\nbeginsplit\n xi^delta v_parallel( s_1 s_2 y ) = \n D_1 D_2 J^delta v_parallel_alpha left \n J^delta v_parallel_00 I^0_0 (s) + \n J^delta v_parallel_02 I^0_2 (s) +\n J^delta v_parallel_04 I^0_4 (s) \n rightnonumber \n + D_1 J^delta v_parallel_beta left \n J^delta v_parallel_11 I^1_1 (s_1) + \n J^delta v_parallel_13 I^1_3 (s_1) \n right\nendsplit\n\nwith\n\nbeginsplit\n J^delta v_parallel_alpha = f_2 mathcalH_2 mathcalR_2\n \n \n J^delta v_parallel_beta = \n y f_0 mathcalH_0 s_1 (mathcalR_2 - 5s_mathrmb 2 + 2)\n \n \n J^delta v_parallel_00 =\n frac115 left\n s_2 left 5 b_1 + (2 y^2 + 1) f_1 right -\n y s_1 left 3 f_1 + 5 b_1 right\n right \n \n \n J^delta v_parallel_02 =\n frac121 s^2 \n left \n left\n (y^2 + 1) f_1 + 7 b_1\n right s_2^3 -\n y left\n 21 b_1 + (5 y^2 + 4) f_1 \n right s_1 s_2^2 +\n rightnonumber \n left qquad qquad\n left\n 7 (2 y^2 + 1) b_1 + (10 y^2 - 1) f_1\n right s_1^2 s_2 -\n y left\n 7 b_1 + 3 f_1\n right s_1^3\n right\n \n \n J^delta v_parallel_04 =\n fracf_135 s^2 \n left\n 2 y s_1 ^3\n - 2 (y^2 + 2) s_1 ^2 s_2 +\n y (y^2 + 5) s_1 s_2^2 +\n (1 - 3 y^2) s_2 ^3\n right \n \n \n J^delta v_parallel_11 = frac15 (5b_1+3 f_1 ) \n \n \n J^delta v_parallel_13 = -frac25 f_1 \n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nb_1, s_mathrmb 1, mathitf_mathrmevo 1 (and b_2, s_mathrmb 2, mathitf_mathrmevo 2) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nIn this TPCF, the term proportional to onlyD(s_1) is an observer term (while the term proportional to D(s_1) D(s_2) is not) and it does depend on the observer velocity. Consequently, if you set obs = :yes or obs = true both of them will computed, while for obs = :no, obs = false or even obs = :noobsvel only the first one will be taken into account.\n\nInputs\n\nP1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nb1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:\nif not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;\nif you set one or more values, they will override the cosmo ones in this computation;\nthe two sets of values should be different only if you are interested in studing two galaxy species;\nonly the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities. \ns_lim=nothing : parameter used in order to avoid the divergence of the mathcalR and mathfrakR denominators: when 0 leq s leq s_mathrmlim the returned values are\nforall s in 0 s_mathrmlim quad \n mathfrakR(s) = 1 - frac1mathcalH_0 s_mathrmlim quad\n mathcalR(s) = 5 s_mathrmb + \n frac2 - 5 s_mathrmbmathcalH_0 s_mathrmlim + \n fracdotmathcalHmathcalH_0^2 - mathitf_mathrmevo \nIf nothing, the default value stored in cosmo will be considered.\nobs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?\n:yes or true -> all the observer effects will be considered\n:no or false -> no observer term will be taken into account\n:noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations_2/#GaPSE.ξ_GNC_Doppler_Newtonian","page":"GNC TPCFs","title":"GaPSE.ξ_GNC_Doppler_Newtonian","text":"ξ_GNC_Doppler_Newtonian(s1, s2, y, cosmo::Cosmology; \n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, \n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing, \n obs::Union{Bool, Symbol} = :noobsvel\n ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Doppler and the Newtonian effects arising from the Galaxy Number Counts (GNC).\n\nIt's computed through the symmetric function ξ_GNC_Newtonian_Doppler; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nInputs\n\ns1 and s2: comoving distances where the TPCF has to be calculated;\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nkwargs... : Keyword arguments to be passed to the symmetric TPCF\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_Newtonian_Doppler\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations_2/#GaPSE.ξ_GNC_Newtonian_Lensing","page":"GNC TPCFs","title":"GaPSE.ξ_GNC_Newtonian_Lensing","text":"ξ_GNC_Newtonian_Lensing(s1, s2, y, cosmo::Cosmology;\n en::Float64=1e6, N_χs::Int=100, Δχ_min::Float64=1e-1,\n obs::Union{Bool,Symbol}=:noobsvel, \n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, \n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,\n suit_sampling::Bool = true )::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Newtonian and the Lensing effects arising from the Galaxy Number Counts (GNC).\n\nYou must provide the two comoving distances s1 and s2 where to evaluate the function. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this TPCF is the following:\n\nbeginequation\n xi^delta kappa ( s_1 s_2 y ) =\n D_1 int_0^s_2mathrmd chi_2\n J^delta kappa_alpha\n left \n J^delta kappa_00 I_0^0 ( Deltachi_2 ) + \n J^delta kappa_02 I_2^0 ( Delta chi_2 ) + \n J^delta kappa_04 I_4^0 ( Delta chi_2 ) \n right \nendequation\n\nwith\n\nbeginsplit\n J^delta kappa_alpha =\n frac\n mathcalH_0 ^2 Omega_mathrmM0 D (chi_2)\n \n a(chi_2 ) s_2\n \n (chi_2 - s_2 ) (5s_mathrmb 2 - 2) \n \n \n J^delta kappa_00 =\n frac15\n left\n (3 y^2 - 1) chi_2 f_1 - y s_1(3 f_1 + 5 b_1) \n right \n \n \n J^delta kappa_02 =\n frac114 Deltachi_2^2 \n left\n 4 f_1 (3 y^2 - 1) chi_2^3 - \n 2 y \n left\n (3 y^2 + 8) f_1 + 7 b_1\n right s_1 chi_2^2 +\n right nonumber \n leftqquad qquadqquad\n left\n (9 y^2 + 11) f_1 - 7 (y^2 + 3) b_1\n right s_1^2 chi_2 -\n 2 y left7 b_1 + 3 f_1 right s_1^3\n right \n \n \n J^delta kappa_04 =\n fracf_170 Deltachi_2^4 \n left\n (6 y^2 - 2) chi_2^5 +\n 6 y (y^2 - 3) s_1 chi_2^4 -\n (y^4 + 12 y^2 - 21) s_1^2 chi_2^3 +\n rightnonumber \n leftqquadqquadqquad\n 2 y (y^2 + 3) s_1^3 chi_2^2 -\n 12 chi_2 s_1^4 + \n 4 y s_1 ^5\n right \n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nb_1, s_mathrmb 1, mathitf_mathrmevo 1 (and b_2, s_mathrmb 2, mathitf_mathrmevo 2) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nIn this TPCF there are no observer terms. The obs keyword is inserted only for compatibility with the other GNC TPCFs.\n\nThis function is computed integrating integrand_ξ_GNC_Newtonian_Lensing with trapz() from the Trapz Julia package.\n\nInputs\n\ns1 and s2: comoving distances where the TPCF has to be calculated.\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nb1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:\nif not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;\nif you set one or more values, they will override the cosmo ones in this computation;\nthe two sets of values should be different only if you are interested in studing two galaxy species;\nonly the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities. \ns_lim=nothing : parameter used in order to avoid the divergence of the mathcalR and mathfrakR denominators: when 0 leq s leq s_mathrmlim the returned values are\nforall s in 0 s_mathrmlim quad \n mathfrakR(s) = 1 - frac1mathcalH_0 s_mathrmlim quad\n mathcalR(s) = 5 s_mathrmb + \n frac2 - 5 s_mathrmbmathcalH_0 s_mathrmlim + \n fracdotmathcalHmathcalH_0^2 - mathitf_mathrmevo \nIf nothing, the default value stored in cosmo will be considered.\nen::Float64 = 1e6: just a float number used in order to deal better with small numbers;\nΔχ_min::Float64 = 1e-4 : when Deltachi_2 = sqrts_1^2 + chi_2^2 - 2 s_1 chi_2 y to 0^+, some I_ell^n term diverges, but the overall parenthesis has a known limit:\n lim_Delta chi_2 to 0^+ \n left(\n J_00^delta kappa I^0_0(Delta chi_2 ) + \n J_02^delta kappa I^0_2(Delta chi_2 ) + \n J_04^delta kappa I^4_0(Delta chi_2 ) \n right) = \n - frac15 s_1 left(f_1 + 5 b_1right) sigma_0\nSo, when it happens that Delta chi_2 Deltachi_mathrmmin, the function considers this limit as the result of the parenthesis instead of calculating it in the normal way; it prevents computational divergences.\nN_χs::Int = 100: number of points to be used for sampling the integral along the range (0, s2) (for χ2); it has been checked that with N_χs ≥ 100 the result is stable.\nsuit_sampling::Bool = true : this bool keyword can be found in all the TPCFs which have at least one χ integral; it is conceived to enable a sampling of the χ integral(s) suited for the given TPCF; however, it actually have an effect only in the TPCFs that have such a sampling implemented in the code. Currently, only ξ_GNC_Newtonian_Lensing (and its simmetryc TPCF) has it.\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, integrand_ξ_GNC_Newtonian_Lensing\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations_2/#GaPSE.ξ_GNC_Lensing_Newtonian","page":"GNC TPCFs","title":"GaPSE.ξ_GNC_Lensing_Newtonian","text":"ξ_GNC_Lensing_Newtonian(s1, s2, y, cosmo::Cosmology; \n en::Float64=1e6, N_χs::Int=100, Δχ_min::Float64=1e-1,\n obs::Union{Bool,Symbol}=:noobsvel, \n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, \n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,\n suit_sampling::Bool = true )::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Lensing and the Newtonian effects arising from the Galaxy Number Counts (GNC).\n\nIt's computed through the symmetric function ξ_GNC_Newtonian_Lensing; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nInputs\n\ns1 and s2: comoving distances where the TPCF has to be calculated;\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nkwargs... : Keyword arguments to be passed to the symmetric TPCF\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_Newtonian_Lensing\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations_2/#GaPSE.ξ_GNC_Newtonian_LocalGP","page":"GNC TPCFs","title":"GaPSE.ξ_GNC_Newtonian_LocalGP","text":"ξ_GNC_Newtonian_LocalGP(\n P1::Point, P2::Point, y, cosmo::Cosmology;\n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, \n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,\n obs::Union{Bool, Symbol} = :noobsvel\n ) ::Float64\n\nξ_GNC_Newtonian_LocalGP(s1, s2, y, cosmo::Cosmology;\n kwargs...) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Newtonian and the Local Gravitational Potential (GP) effects arising from the Galaxy Number Counts (GNC).\n\nIn the first method, you should pass the two Point (P1 and P2) where to evaluate the function, while in the second method (that internally recalls the first) you must provide the two corresponding comoving distances s1 and s2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this TPCF is the following:\n\nbeginsplit\n xi^delta phi( s_1 s_2 y ) = \n D_1 D_2 J^delta phi_alpha left \n J^delta phi_beta \n left(\n frac130 I_0^0 (s) + \n frac121 I_2^0 (s) +\n frac170 I_4^0 (s) \n right) +\n J^delta phi_20 I_0^2 (s)\n right nonumber \n + D_1 J^delta phi_gamma left \n J^delta phi_31 I^3_1 (s_1) +\n J^delta phi_11 I^1_1 (s_1) + \n J^delta phi_13 I^1_3 (s_1) \n right \nendsplit\n\nwith\n\nbeginsplit\n J^delta phi_alpha =\n frac13 a_2 left \n 2 f_2 a_2 mathcalH_2^2 (mathitf_mathrmevo 2 - 3) +\n 3 mathcalH_0^2 Omega_mathrmM0 (f_2 + mathcalR_2 + 5 s_mathrmb 2 - 2)\n right \n \n \n J^delta phi_beta =\n f_1 left \n (3 y^2 - 1) s_2^2 - 4 y s_1 s_2 + 2 s_1^2\n right \n \n \n J^delta phi_gamma =\n fracmathcalH_0 s_1^22 s_2 left \n 2 f_0 (mathcalH_0 s_2 mathcalR_2 + 5 s_mathrmb 2 - 2) - \n 3 mathcalH_0 s_2 mathcalR_2\n right \n \n \n J^delta phi_20 = \n - frac12(3 b_1 + f_1) (s_1^2 + s_2^2 - 2 y s_1 s_2)\n \n \n J^delta phi_31 = - (3 b_1 + f_1) \n \n \n J^delta phi_11 =\n J^delta phi_13 = frac15(b_1 + f_1) \n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nb_1, s_mathrmb 1, mathitf_mathrmevo 1 (and b_2, s_mathrmb 2, mathitf_mathrmevo 2) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nIn this TPCF, the term proportional to onlyD(s_1) is an observer term (while the term proportional to D(s_1) D(s_2) is not), but does not depend on the observer velocitz. Consequently, if you set obs = :yes, obs = true or even obs = :noobsvel both of them will computed, while for obs = :no or obs = false only the first one will be taken into account.\n\nInputs\n\nP1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nb1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:\nif not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;\nif you set one or more values, they will override the cosmo ones in this computation;\nthe two sets of values should be different only if you are interested in studing two galaxy species;\nonly the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities. \ns_lim=nothing : parameter used in order to avoid the divergence of the mathcalR and mathfrakR denominators: when 0 leq s leq s_mathrmlim the returned values are\nforall s in 0 s_mathrmlim quad \n mathfrakR(s) = 1 - frac1mathcalH_0 s_mathrmlim quad\n mathcalR(s) = 5 s_mathrmb + \n frac2 - 5 s_mathrmbmathcalH_0 s_mathrmlim + \n fracdotmathcalHmathcalH_0^2 - mathitf_mathrmevo \nIf nothing, the default value stored in cosmo will be considered.\nobs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?\n:yes or true -> all the observer effects will be considered\n:no or false -> no observer term will be taken into account\n:noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations_2/#GaPSE.ξ_GNC_LocalGP_Newtonian","page":"GNC TPCFs","title":"GaPSE.ξ_GNC_LocalGP_Newtonian","text":"ξ_GNC_LocalGP_Newtonian(s1, s2, y, cosmo::Cosmology; \n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, \n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,\n obs::Union{Bool, Symbol} = :noobsvel ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Local Gravitational Potential (GP) and the Newtonian effects arising from the Galaxy Number Counts (GNC).\n\nIt's computed through the symmetric function ξ_GNC_Newtonian_LocalGP; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nInputs\n\ns1 and s2: comoving distances where the TPCF has to be calculated;\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nkwargs... : Keyword arguments to be passed to the symmetric TPCF\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_Newtonian_LocalGP\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations_2/#GaPSE.ξ_GNC_Newtonian_IntegratedGP","page":"GNC TPCFs","title":"GaPSE.ξ_GNC_Newtonian_IntegratedGP","text":"ξ_GNC_Newtonian_IntegratedGP(\n s1, s2, y, cosmo::Cosmology;\n en::Float64=1e6, N_χs::Int=100, \n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, \n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,\n obs::Union{Bool,Symbol}=:noobsvel,\n suit_sampling::Bool=true\n ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Newtonian and the Integrated Gravitational Potential (GP) effects arising from the Galaxy Number Counts (GNC).\n\nYou must provide the two comoving distances s1 and s2 where to evaluate the function. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this integrand is the following:\n\nbeginsplit\n xi^delta intphi( s_1 s_2 y ) =\n D_1 int_0^s_2mathrmd chi_2 \n J^delta intphi_alpha\n left \n J^delta intphi_20 I_0^2 ( Deltachi_2 ) +\n right \n left \n J^delta intphi_beta\n left(\n frac115 I_0^0 ( Deltachi_2 ) + \n frac121 I_2^0 ( Deltachi_2 ) +\n frac135 I_4^0 ( Deltachi_2 )\n right) \n right nonumber\nendsplit\n\nwhere\n\nbeginsplit\n J^delta intphi_alpha =\n fracmathcalH_0^2 Omega_mathrmM0 D(chi_2)3 a(chi_2) s_2 \n left \n s_2 mathcalR_2 mathcalH(chi_2) ( f(chi_2) - 1) - 5 s_mathrmb 2 + 2\n right \n \n \n J^delta intphi_beta =\n f_1 left \n (3 y^2 - 1) chi_2^2 - 4 y s_1 chi_2 + 2 s_1^2\n right \n \n \n J^delta intphi_20 =\n - Deltachi_2^2 ( 3 b_1 + f_1)\n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nb_1, s_mathrmb 1, mathitf_mathrmevo 1 (and b_2, s_mathrmb 2, mathitf_mathrmevo 2) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nIn this TPCF there are no observer terms. The obs keyword is inserted only for compatibility with the other GNC TPCFs.\n\nThis function is computed integrating integrand_ξ_GNC_Newtonian_IntegratedGP with trapz() from the Trapz Julia package.\n\nInputs\n\nP1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nb1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:\nif not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;\nif you set one or more values, they will override the cosmo ones in this computation;\nthe two sets of values should be different only if you are interested in studing two galaxy species;\nonly the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities. \ns_lim=nothing : parameter used in order to avoid the divergence of the mathcalR and mathfrakR denominators: when 0 leq s leq s_mathrmlim the returned values are\nforall s in 0 s_mathrmlim quad \n mathfrakR(s) = 1 - frac1mathcalH_0 s_mathrmlim quad\n mathcalR(s) = 5 s_mathrmb + \n frac2 - 5 s_mathrmbmathcalH_0 s_mathrmlim + \n fracdotmathcalHmathcalH_0^2 - mathitf_mathrmevo \nIf nothing, the default value stored in cosmo will be considered.\nobs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?\n:yes or true -> all the observer effects will be considered\n:no or false -> no observer term will be taken into account\n:noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account\nen::Float64 = 1e6: just a float number used in order to deal better with small numbers;\nN_χs::Int = 100: number of points to be used for sampling the integral along the range (0, s2) (for χ2); it has been checked that with N_χs ≥ 100 the result is stable.\nsuit_sampling::Bool = true : this bool keyword can be found in all the TPCFs which have at least one χ integral; it is conceived to enable a sampling of the χ integral(s) suited for the given TPCF; however, it actually have an effect only in the TPCFs that have such a sampling implemented in the code. Currently, only ξ_GNC_Newtonian_Lensing (and its simmetryc TPCF) has it.\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, integrand_ξ_GNC_Newtonian_IntegratedGP\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations_2/#GaPSE.ξ_GNC_IntegratedGP_Newtonian","page":"GNC TPCFs","title":"GaPSE.ξ_GNC_IntegratedGP_Newtonian","text":"ξ_GNC_IntegratedGP_Newtonian(s1, s2, y, cosmo::Cosmology; \n en::Float64=1e6, N_χs::Int=100, \n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, \n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,\n obs::Union{Bool,Symbol}=:noobsvel,\n suit_sampling::Bool=true ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Integrated Gravitational Potential (GP) and the Newtonian effects arising from the Galaxy Number Counts (GNC).\n\nIt's computed through the symmetric function ξ_GNC_Newtonian_IntegratedGP; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nInputs\n\ns1 and s2: comoving distances where the TPCF has to be calculated;\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nkwargs... : Keyword arguments to be passed to the symmetric TPCF\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_Newtonian_IntegratedGP\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations_2/#GaPSE.ξ_GNC_Doppler_Lensing","page":"GNC TPCFs","title":"GaPSE.ξ_GNC_Doppler_Lensing","text":"ξ_GNC_Doppler_Lensing(s1, s2, y, cosmo::Cosmology;\n en::Float64=1e6, N_χs::Int=100, Δχ_min::Float64=1e-1,\n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, \n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing, \n obs::Union{Bool,Symbol}=:noobsvel,\n suit_sampling::Bool=true ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Doppler and the Lensing effects arising from the Galaxy Number Counts (GNC).\n\nIt's computed through the symmetric function ξ_GNC_Lensing_Doppler; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nInputs\n\ns1 and s2: comoving distances where the TPCF has to be calculated;\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nkwargs... : Keyword arguments to be passed to the symmetric TPCF\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_Lensing_Doppler\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations_2/#GaPSE.ξ_GNC_Lensing_Doppler","page":"GNC TPCFs","title":"GaPSE.ξ_GNC_Lensing_Doppler","text":"ξ_GNC_Lensing_Doppler(\n s1, s2, y, cosmo::Cosmology;\n en::Float64=1e6, N_χs::Int=100, \n Δχ_min::Float64=1e-1,\n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, \n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing, \n obs::Union{Bool,Symbol}=:noobsvel,\n suit_sampling::Bool=true\n ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Lensing and the Doppler effects arising from the Galaxy Number Counts (GNC).\n\nYou must provide the two comoving distances s1 and s2 where to evaluate the function. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this TPCF is the following:\n\nbeginsplit\n xi^kappa v_parallel ( s_1 s_2 y ) = \n D_2 int_0^s_1dd chi_1 \n J^kappa v_parallel_alpha left\n J^kappa v_parallel_00 I_0^0 ( Delta chi_1 ) +\n J^kappa v_parallel_02 I_2^0 ( Delta chi_1 ) \n right nonumber \n left\n + J^kappa v_parallel_04 I_4^0 ( Delta chi_1 ) \n + J^kappa v_parallel_20 I_0^2 ( Delta chi_1 ) \n right\n + int_0^s_1dd chi_1 \n J^kappa v_parallel_31 I_1^3 ( chi_1 ) \nendsplit\n\nwith\n\nbeginsplit\n J^kappa v_parallel_alpha = \n fracmathcalH_0^2 Omega_mathrmM0 D(chi_1)a(chi_1) s_1\n f_2 mathcalH_2 mathcalR_2 (chi_1 - s_1) (5 s_mathrmb 1 - 2)\n \n \n J^kappa v_parallel_00 = \n frac115\n left\n chi_1^2 y + chi_1 s_2 (4 y^2 - 3) - 2 y s_2^2\n right \n \n \n J^kappa v_parallel_02 = \n frac142 Deltachi_1^2 left\n 4 y chi_1^4 + 4 (2 y^2 - 3) s_2 chi_1^3 + \n y (11 - 23 y^2) s_2^2 chi_1^2 +\n right\n leftqquadqquadqquad\n (23 y^2 - 3) s_2^3 chi_1 - 8 y s_2^4\n right nonumber\n \n \n J^kappa v_parallel_04 = \n frac170 Deltachi_1^2 \n left\n 2 y chi_1^4 + 2 (2 y^2 - 3) s_2 chi_1^3 - \n y (y^2 + 5) s_2^2 chi_1^2 + \n (y^2 + 9) s_2^3 chi_1 - 4 y s_2^4\n right \n \n \n J^kappa v_parallel_20 = y Deltachi_1^2 \n \n \n J^kappa v_parallel_31 =\n -frac\n 3 chi_1^2 y f_0 mathcalH_0^3 Omega_mathrmM0 D(chi_1) \n \n a(chi_1)s_1\n (chi_1 - s_1) (5 s_mathrmb 1 - 2) (mathcalR_2 - 5 s_mathrmb 2 + 2) \n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nb_1, s_mathrmb 1, mathitf_mathrmevo 1 (and b_2, s_mathrmb 2, mathitf_mathrmevo 2) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nIn this TPCF, the term proportional to D(s_1) is not an observer term. The other one instead is and it does depend on the observer velocity. Consequently, if you set obs = :yes or obs = true both of them will computed, while for obs = :no, obs = false or even obs = :noobsvel only the first one will be taken into account.\n\nThis function is computed from integrand_ξ_GNC_Lensing_Doppler with trapz() from the Trapz Julia package.\n\nInputs\n\nP1::Point, P2::Point or s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nb1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:\nif not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;\nif you set one or more values, they will override the cosmo ones in this computation;\nthe two sets of values should be different only if you are interested in studing two galaxy species;\nonly the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities. \ns_lim=nothing : parameter used in order to avoid the divergence of the mathcalR and mathfrakR denominators: when 0 leq s leq s_mathrmlim the returned values are\nforall s in 0 s_mathrmlim quad \n mathfrakR(s) = 1 - frac1mathcalH_0 s_mathrmlim quad\n mathcalR(s) = 5 s_mathrmb + \n frac2 - 5 s_mathrmbmathcalH_0 s_mathrmlim + \n fracdotmathcalHmathcalH_0^2 - mathitf_mathrmevo \nIf nothing, the default value stored in cosmo will be considered.\nobs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?\n:yes or true -> all the observer effects will be considered\n:no or false -> no observer term will be taken into account\n:noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account\nΔχ_min::Float64 = 1e-1 : when Deltachi_1 = sqrtchi_1^2 + s_2^2 - 2 chi_1 s_2 y to 0^+, some I_ell^n term diverges, but the overall parenthesis has a known limit:\n lim_Deltachi_1 to 0^+\n left\n J^kappa v_parallel_00 I_0^0 ( Delta chi_1 ) +\n J^kappa v_parallel_02 I_2^0 ( Delta chi_1 ) +\n J^kappa v_parallel_04 I_4^0 ( Delta chi_1 ) +\n J^kappa v_parallel_20 I_0^2 ( Delta chi_1 ) \n right = sigma_2\nSo, when it happens that Deltachi_1 Deltachi_mathrmmin, the function considers this limit as the result of the parenthesis instead of calculating it in the normal way; it prevents computational divergences.\nen::Float64 = 1e6: just a float number used in order to deal better with small numbers;\nN_χs::Int = 100: number of points to be used for sampling the integral along the range (0, s1) (for χ1); it has been checked that with N_χs ≥ 100 the result is stable.\nsuit_sampling::Bool = true : this bool keyword can be found in all the TPCFs which have at least one χ integral; it is conceived to enable a sampling of the χ integral(s) suited for the given TPCF; however, it actually have an effect only in the TPCFs that have such a sampling implemented in the code. Currently, only ξ_GNC_Newtonian_Lensing (and its simmetryc TPCF) has it.\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, integrand_ξ_GNC_Lensing_Doppler\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations_2/#GaPSE.ξ_GNC_Doppler_LocalGP","page":"GNC TPCFs","title":"GaPSE.ξ_GNC_Doppler_LocalGP","text":"ξ_GNC_Doppler_LocalGP(\n P1::Point, P2::Point, y, cosmo::Cosmology; \n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, \n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,\n obs::Union{Bool,Symbol}=:noobsvel\n ) ::Float64\n\nξ_GNC_Doppler_LocalGP(\n s1, s2, y, cosmo::Cosmology; \n kwargs...) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Doppler and the Local Gravitational Potential (GP) effects arising from the Galaxy Number Counts (GNC).\n\nIn the first method, you should pass the two Point (P1 and P2) where to evaluate the function, while in the second method (that internally recalls the first) you must provide the two corresponding comoving distances s1 and s2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this TPCF is the following:\n\nbeginsplit\n xi^v_parallel phi ( s_1 s_2 y ) = \n D_1 D_2 J^v_parallel phi_alpha\n left \n frac190 I_0^0 (s) +\n frac163 I_2^0 (s) + \n frac1210 I_4^0 (s) +\n frac16 I_0^2 (s) \n right\n nonumber \n +\n D_1 J^v_parallel phi_0 _31 I^3_1 (s_1) +\n D_2 J^v_parallel 0 phi _31 I^3_1 (s_2) \nendsplit\n\nwith\n\nbeginsplit\n J^v_parallel phi_alpha =\n fracf_1 mathcalH_1 mathcalR_1 s^2a_2 (y s_2 - s_1) \n times\n qquadqquadqquad\n left \n 2 f_2 a_2 mathcalH_2^2 (mathitf_mathrmevo 2 - 3) + \n 3 mathcalH_0^2 Omega_mathrmM0 (f_2 + mathcalR_2 + 5 s_mathrmb 2 - 2)\n right\n nonumber \n \n J^v_parallel phi_0 _31 =\n frac f_1 mathcalH_1 mathcalR_12 s_2 mathcalH_0 s_1^3 \n left \n 3 mathcalH_0 Omega_mathrmM0 s_2 mathcalR_2 -\n 2 f_0 left( mathcalH_0 s_2 mathcalR_2 + 5 s_mathrmb 2 - 2 right)\n right\n \n \n J^v_parallel 0 phi _31 =\n -fracy f_0 mathcalH_0 s_2^32 a_2 (mathcalR_1 - 5 s_mathrmb 1 + 2) \n times \n qquadqquadqquad\n left \n 2 a_2 f_2 mathcalH_2^2 (mathitf_mathrmevo 2 - 3) +\n 3 mathcalH_0^2 Omega_mathrmM0 (f_2 + mathcalR_2 + 5 s_mathrmb 2 - 2)\n right\n nonumber \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nb_1, s_mathrmb 1, mathitf_mathrmevo 1 (and b_2, s_mathrmb 2, mathitf_mathrmevo 2) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nIn this TPCF, the terms proportional to D(s_1) and D(s_2) are observer terms (while the term proportional to D(s_1) D(s_2) is not), but only the propto D(s_2) one depends on the observer velocity. Consequently, if you set:\n\nobs = :yes or obs = true all of them will be computed\nobs = :noobsvel then the propto D(s_2) term will be neglected\nobs = :no or obs = false only the first one propto D(s_1) D(s_2) will be taken into account.\n\nInputs\n\nP1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nb1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:\nif not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;\nif you set one or more values, they will override the cosmo ones in this computation;\nthe two sets of values should be different only if you are interested in studing two galaxy species;\nonly the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities. \ns_lim=nothing : parameter used in order to avoid the divergence of the mathcalR and mathfrakR denominators: when 0 leq s leq s_mathrmlim the returned values are\nforall s in 0 s_mathrmlim quad \n mathfrakR(s) = 1 - frac1mathcalH_0 s_mathrmlim quad\n mathcalR(s) = 5 s_mathrmb + \n frac2 - 5 s_mathrmbmathcalH_0 s_mathrmlim + \n fracdotmathcalHmathcalH_0^2 - mathitf_mathrmevo \nIf nothing, the default value stored in cosmo will be considered.\nobs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?\n:yes or true -> all the observer effects will be considered\n:no or false -> no observer term will be taken into account\n:noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations_2/#GaPSE.ξ_GNC_LocalGP_Doppler","page":"GNC TPCFs","title":"GaPSE.ξ_GNC_LocalGP_Doppler","text":"ξ_GNC_LocalGP_Doppler(s1, s2, y, cosmo::Cosmology; \n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, \n 𝑓_evo1=nothing, 𝑓_evo2=nothing,\n s_lim=nothing, obs::Union{Bool,Symbol}=:noobsvel ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Local Gravitational Potential (GP) and the Doppler effects arising from the Galaxy Number Counts (GNC).\n\nIt's computed through the symmetric function ξ_GNC_Doppler_LocalGP; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nInputs\n\ns1 and s2: comoving distances where the TPCF has to be calculated;\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nkwargs... : Keyword arguments to be passed to the symmetric TPCF\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_Doppler_LocalGP\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations_2/#GaPSE.ξ_GNC_Doppler_IntegratedGP","page":"GNC TPCFs","title":"GaPSE.ξ_GNC_Doppler_IntegratedGP","text":"ξ_GNC_Doppler_IntegratedGP(\n s1, s2, y, cosmo::Cosmology;\n en::Float64=1e6, N_χs::Int=100, \n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, \n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,\n obs::Union{Bool,Symbol}=:noobsvel,\n suit_sampling::Bool=true\n ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Doppler and the Integrated Gravitational Potential (GP) effects arising from the Galaxy Number Counts (GNC).\n\nYou must provide the two comoving distances s1 and s2 where to evaluate the function. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this TPCF is the following:\n\nbeginsplit\n xi^v_parallel intphi left( s_1 s_2 y right) = D_1 int_0^s_2mathrmd chi_2 \n J^v_parallel intphi_alpha \n left\n frac115 I_0^0 ( Deltachi_2 ) +\n frac221 I_2^0 ( Deltachi_2 ) +\n right \n left\n frac135 I_4^0 ( Deltachi_2 ) +\n I^2_0 ( Deltachi_2) \n right\n + int_0^s_2mathrmd chi_2 \n J^v_parallel intphi_31 I^3_1 (chi_2) \n nonumber\nendsplit\n\nwith\n\nbeginsplit\n J^v_parallel intphi_alpha =\n fracf_1 mathcalH_1 mathcalR_1s_2 a(chi_2) \n D(chi_2) mathcalH_0^2 Omega_mathrmM0 Deltachi_2^2 \n (chi_2 y - s_1) \n left\n s_2 mathcalH(chi_2) mathcalR_2 (f(chi_2) - 1) - 5 s_mathrmb 2 + 2\n right\n \n \n J^v_parallel intphi_31 =\n -frac\n 3 chi_2^3 y f_0 mathcalH_0^3 Omega_mathrmM0 D(chi_2)\n \n s_2 a(chi_2)\n (mathcalR_1 - 5 s_mathrmb 1 + 2)\n left\n s_2 mathcalH(chi_2) mathcalR_2 (f(chi_2) - 1) - 5 s_mathrmb 2 + 2)\n right \n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nb_1, s_mathrmb 1, mathitf_mathrmevo 1 (and b_2, s_mathrmb 2, mathitf_mathrmevo 2) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nIn this TPCF, the term proportional to D(s_1) is not an observer term. The other one instead is and it does depend on the observer velocity. Consequently, if you set obs = :yes or obs = true both of them will computed, while for obs = :no, obs = false or even obs = :noobsvel only the propto D(s_1) one will be taken into account.\n\nThis function is computed integrating integrand_ξ_GNC_Doppler_IntegratedGP with trapz() from the Trapz Julia package.\n\nInputs\n\nP1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nb1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:\nif not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;\nif you set one or more values, they will override the cosmo ones in this computation;\nthe two sets of values should be different only if you are interested in studing two galaxy species;\nonly the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities. \ns_lim=nothing : parameter used in order to avoid the divergence of the mathcalR and mathfrakR denominators: when 0 leq s leq s_mathrmlim the returned values are\nforall s in 0 s_mathrmlim quad \n mathfrakR(s) = 1 - frac1mathcalH_0 s_mathrmlim quad\n mathcalR(s) = 5 s_mathrmb + \n frac2 - 5 s_mathrmbmathcalH_0 s_mathrmlim + \n fracdotmathcalHmathcalH_0^2 - mathitf_mathrmevo \nIf nothing, the default value stored in cosmo will be considered.\nobs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?\n:yes or true -> all the observer effects will be considered\n:no or false -> no observer term will be taken into account\n:noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account\nen::Float64 = 1e6: just a float number used in order to deal better with small numbers;\nN_χs::Int = 100: number of points to be used for sampling the integral along the range (0, s2) (for χ2); it has been checked that with N_χs ≥ 100 the result is stable.\nsuit_sampling::Bool = true : this bool keyword can be found in all the TPCFs which have at least one χ integral; it is conceived to enable a sampling of the χ integral(s) suited for the given TPCF; however, it actually have an effect only in the TPCFs that have such a sampling implemented in the code. Currently, only ξ_GNC_Newtonian_Lensing (and its simmetryc TPCF) has it.\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, integrand_ξ_GNC_Doppler_IntegratedGP\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations_2/#GaPSE.ξ_GNC_IntegratedGP_Doppler","page":"GNC TPCFs","title":"GaPSE.ξ_GNC_IntegratedGP_Doppler","text":"ξ_GNC_IntegratedGP_Doppler(s1, s2, y, cosmo::Cosmology; \n en::Float64=1e6, N_χs::Int=100, \n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, \n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing, \n obs::Union{Bool,Symbol}=:noobsvel,\n suit_sampling::Bool=true ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Integrated Gravitational Potential (GP) and the Doppler effects arising from the Galaxy Number Counts (GNC).\n\nIt's computed through the symmetric function ξ_GNC_Doppler_IntegratedGP; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nInputs\n\ns1 and s2: comoving distances where the TPCF has to be calculated;\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nkwargs... : Keyword arguments to be passed to the symmetric TPCF\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_Doppler_IntegratedGP\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations_2/#GaPSE.ξ_GNC_Lensing_LocalGP","page":"GNC TPCFs","title":"GaPSE.ξ_GNC_Lensing_LocalGP","text":"ξ_GNC_Lensing_LocalGP(\n s1, s2, y, cosmo::Cosmology;\n en::Float64=1e6, N_χs::Int=100,\n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, \n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing, \n obs::Union{Bool,Symbol}=:noobsvel,\n suit_sampling::Bool=true\n ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Lensing and the Local Gravitational Potential (GP) effects arising from the Galaxy Number Counts (GNC).\n\nYou must provide the two comoving distances s1 and s2 where to evaluate the function. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this TPCF is the following:\n\nbeginsplit\n xi^kappa phi ( s_1 s_2 y ) = \n D_2 int_0^s_1mathrmd chi_1 \n J^kappa phi_alphaleft \n J^kappa phi_20 I_0^2 ( Delta chi_1 ) +\n rightnonumber \n leftqquad\n J^kappa phi_beta\n left(\n frac160 I_0^0 ( Delta chi_1 ) +\n frac142 I_2^0 ( Delta chi_1 ) +\n frac1140 I_4^0 ( Delta chi_1 ) \n right)\n right \nendsplit\n\nwith\n\nbeginsplit\n J^kappa phi_alpha = \n fracmathcalH_0^2 Omega_mathrmM0 s_2 D(chi_1)a(chi_1) a_2 s_1\n (chi_1 - s_1) (5s_mathrmb 1 - 2) \n times\n qquadqquad\n left\n 2 f_2 a_2 mathcalH_2^2 (mathitf_mathrmevo 2 - 3) + \n 3 mathcalH_0^2 Omega_mathrmM0 (f_2 + mathcalR_2 + 5s_mathrmb 2 - 2)\n right nonumber\n \n \n J^kappa phi_beta =\n 2 y chi_1^2 - chi_1 s_2 (y^2 + 3) + 2 y s_2^2\n \n \n J^kappa phi_20 = frac12 y Deltachi_1^2 \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nb_1, s_mathrmb 1, mathitf_mathrmevo 1 (and b_2, s_mathrmb 2, mathitf_mathrmevo 2) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nIn this TPCF there are no observer terms. The obs keyword is inserted only for compatibility with the other GNC TPCFs.\n\nThis function is computed from integrand_ξ_GNC_Lensing_LocalGP with trapz() from the Trapz Julia package.\n\nInputs\n\nP1::Point, P2::Point or s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nb1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:\nif not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;\nif you set one or more values, they will override the cosmo ones in this computation;\nthe two sets of values should be different only if you are interested in studing two galaxy species;\nonly the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities. \ns_lim=nothing : parameter used in order to avoid the divergence of the mathcalR and mathfrakR denominators: when 0 leq s leq s_mathrmlim the returned values are\nforall s in 0 s_mathrmlim quad \n mathfrakR(s) = 1 - frac1mathcalH_0 s_mathrmlim quad\n mathcalR(s) = 5 s_mathrmb + \n frac2 - 5 s_mathrmbmathcalH_0 s_mathrmlim + \n fracdotmathcalHmathcalH_0^2 - mathitf_mathrmevo \nIf nothing, the default value stored in cosmo will be considered.\nobs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?\n:yes or true -> all the observer effects will be considered\n:no or false -> no observer term will be taken into account\n:noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account\nen::Float64 = 1e6: just a float number used in order to deal better with small numbers;\nN_χs::Int = 100: number of points to be used for sampling the integral along the range (0, s1) (for χ1); it has been checked that with N_χs ≥ 100 the result is stable.\nsuit_sampling::Bool = true : this bool keyword can be found in all the TPCFs which have at least one χ integral; it is conceived to enable a sampling of the χ integral(s) suited for the given TPCF; however, it actually have an effect only in the TPCFs that have such a sampling implemented in the code. Currently, only ξ_GNC_Newtonian_Lensing (and its simmetryc TPCF) has it.\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, integrand_ξ_GNC_Lensing_LocalGP\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations_2/#GaPSE.ξ_GNC_LocalGP_Lensing","page":"GNC TPCFs","title":"GaPSE.ξ_GNC_LocalGP_Lensing","text":"ξ_GNC_LocalGP_Lensing(s1, s2, y, cosmo::Cosmology; \n en::Float64=1e6, N_χs::Int=100,\n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, \n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing, \n obs::Union{Bool,Symbol}=:noobsvel,\n suit_sampling::Bool=true ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Local Gravitational Potential (GP) and the Lensing effects arising from the Galaxy Number Counts (GNC).\n\nIt's computed through the symmetric function ξ_GNC_Lensing_LocalGP; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nInputs\n\ns1 and s2: comoving distances where the TPCF has to be calculated;\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nkwargs... : Keyword arguments to be passed to the symmetric TPCF\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_Lensing_LocalGP\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations_2/#GaPSE.ξ_GNC_Lensing_IntegratedGP","page":"GNC TPCFs","title":"GaPSE.ξ_GNC_Lensing_IntegratedGP","text":"ξ_GNC_Lensing_IntegratedGP(\n P1::Point, P2::Point, y, cosmo::Cosmology;\n en::Float64=1e6, N_χs_2::Int=100,\n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, \n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing, \n obs::Union{Bool,Symbol}=:noobsvel,\n suit_sampling::Bool=true\n ) ::Float64\n\nξ_GNC_Lensing_IntegratedGP(\n s1, s2, y, cosmo::Cosmology; \n kwargs...) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Lensing and the Integrated Gravitational Potential (GP) effects arising from the Galaxy Number Counts (GNC).\n\nIn the first method, you should pass the two Point (P1 and P2) where to evaluate the function, while in the second method (that internally recalls the first) you must provide the two corresponding comoving distances s1 and s2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this TPCF is the following:\n\nbeginsplit\n xi^kappa intphi ( s_1 s_2 y ) = \n int_0^s_1mathrmd chi_1 int_0^s_2mathrmd chi_2 \n J_alpha^kappa intphi \n left \n J_31^kappa intphi I_1^3 ( Delta chi ) +\n J_22^kappa intphi I_2^2 ( Delta chi ) \n right \nendsplit\n\nwith\n\nbeginsplit\n J_alpha^kappa intphi =\n frac\n 9 chi_2 mathcalH_0^4 Omega_mathrmM0^2 D(chi_1) D(chi_2) \n \n a(chi_1) a(chi_2) s_1 s_2\n \n (chi_1 - s_1) (5 s_mathrmb 1 - 2) times\n qquadqquadqquadqquadqquadqquad\n left\n mathcalH(chi_2) mathcalR_2 s_1 (f(chi_2) - 1) - 5 s_mathrmb 1 + 2\n right nonumber\n \n \n J_31^kappa intphi = y Deltachi^2\n \n \n J_22^kappa intphi = \n frac12 (y^2 - 1) chi_1 chi_2 \n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nb_1, s_mathrmb 1, mathitf_mathrmevo 1 (and b_2, s_mathrmb 2, mathitf_mathrmevo 2) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nIn this TPCF there are no observer terms. The obs keyword is inserted only for compatibility with the other GNC TPCFs.\n\nThis function is computed from integrand_ξ_GNC_Lensing_IntegratedGP with trapz() from the Trapz Julia package.\n\nInputs\n\nP1::Point, P2::Point or s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nb1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:\nif not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;\nif you set one or more values, they will override the cosmo ones in this computation;\nthe two sets of values should be different only if you are interested in studing two galaxy species;\nonly the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities. \ns_lim=nothing : parameter used in order to avoid the divergence of the mathcalR and mathfrakR denominators: when 0 leq s leq s_mathrmlim the returned values are\nforall s in 0 s_mathrmlim quad \n mathfrakR(s) = 1 - frac1mathcalH_0 s_mathrmlim quad\n mathcalR(s) = 5 s_mathrmb + \n frac2 - 5 s_mathrmbmathcalH_0 s_mathrmlim + \n fracdotmathcalHmathcalH_0^2 - mathitf_mathrmevo \nIf nothing, the default value stored in cosmo will be considered.\nobs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?\n:yes or true -> all the observer effects will be considered\n:no or false -> no observer term will be taken into account\n:noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning IntegratedGP) will be neglected, the other ones will be taken into account\nen::Float64 = 1e6: just a float number used in order to deal better with small numbers;\nN_χs_2::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ1) and (0, s2) (for χ2); it has been checked that with N_χs_2 ≥ 50 the result is stable.\nsuit_sampling::Bool = true : this bool keyword can be found in all the TPCFs which have at least one χ integral; it is conceived to enable a sampling of the χ integral(s) suited for the given TPCF; however, it actually have an effect only in the TPCFs that have such a sampling implemented in the code. Currently, only ξ_GNC_Newtonian_Lensing (and its simmetryc TPCF) has it.\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, integrand_ξ_GNC_Lensing_IntegratedGP\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations_2/#GaPSE.ξ_GNC_IntegratedGP_Lensing","page":"GNC TPCFs","title":"GaPSE.ξ_GNC_IntegratedGP_Lensing","text":"ξ_GNC_IntegratedGP_Lensing(s1, s2, y, cosmo::Cosmology; \n en::Float64=1e6, N_χs_2::Int=100,\n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, \n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing, \n obs::Union{Bool,Symbol}=:noobsvel,\n suit_sampling::Bool=true ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Integrated Gravitational Potential (GP) and the Lensing effects arising from the Galaxy Number Counts (GNC).\n\nIt's computed through the symmetric function ξ_GNC_Lensing_IntegratedGP; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nInputs\n\ns1 and s2: comoving distances where the TPCF has to be calculated;\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nkwargs... : Keyword arguments to be passed to the symmetric TPCF\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_Lensing_IntegratedGP\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations_2/#GaPSE.ξ_GNC_LocalGP_IntegratedGP","page":"GNC TPCFs","title":"GaPSE.ξ_GNC_LocalGP_IntegratedGP","text":"ξ_GNC_LocalGP_IntegratedGP(\n s1, s2, y, cosmo::Cosmology;\n en::Float64=1e6, N_χs::Int=100, \n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, \n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,\n obs::Union{Bool,Symbol}=:noobsvel,\n suit_sampling::Bool=true\n ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Local Gravitational Potential (GP) and the Integrated Gravitational Potential (GP) effects arising from the Galaxy Number Counts (GNC).\n\nYou must provide the two comoving distances s1 and s2 where to evaluate the function. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this TPCF is the following:\n\nbeginsplit\n xi^phi intphi (chi_2 s_1 s_2 y ) = \n D_1 int_0^s_2mathrmd chi_2\n J^phi intphi_40 tildeI_0^4 ( Deltachi_2 ) + \n int_0^s_2mathrmd chi_2 \n J^phi_0 intphi_04 tildeI_0^4 ( chi_2 ) \nendsplit\n\nwith\n\nbeginsplit\n J^phi intphi_40 =\n frac\n 3 Deltachi_2^4 mathcalH_0^2 Omega_mathrmM0 D(chi_2) \n \n 2 s_2 a(chi_2) a_1\n left\n s_2 mathcalH(chi_2) mathcalR_2(f(chi_2)-1) -5 s_mathrmb 2+2\n right \n times\n qquadqquadqquad\n left\n 2 a_1 f_1 mathcalH_1^2 (mathitf_mathrmevo 1 - 3) +\n 3 mathcalH_0^2 Omega_mathrmM0 (f_1 + mathcalR_1 + 5 s_mathrmb 1 - 2)\n right\n nonumber \n \n J^phi_0 intphi_40 =\n frac\n 3 chi_2^4 mathcalH_0^3 Omega_mathrmM0 D(chi_2)\n \n 2 s_1 s_2 a(chi_2)\n left\n s_2 mathcalH(chi_2) mathcalR_2 (f(chi_2) - 1) - 5 s_mathrmb 2 + 2\n righttimes\n nonumber \n qquadqquadqquad\n left\n - 3 Omega_mathrmM0 mathcalH_0 s_1 mathcalR_1 +\n 2 f_0 (mathcalH_0 s_1 mathcalR_1 + 5 s_mathrmb 1 - 2)\n right \n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nb_1, s_mathrmb 1, mathitf_mathrmevo 1 (and b_2, s_mathrmb 2, mathitf_mathrmevo 2) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nIn this TPCF, the term proportional to D(s_1) is not an observer term. The other one instead is, and it does also depend on the observer velocity. Consequently, if you set obs = :yes or obs = true both of them will computed, while for obs = :no, obs = false or even obs = :noobsvel only the first one will be taken into account.\n\nThis function is computed from integrand_ξ_GNC_LocalGP_IntegratedGP with trapz() from the Trapz Julia package.\n\nInputs\n\nP1::Point, P2::Point or s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nb1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:\nif not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;\nif you set one or more values, they will override the cosmo ones in this computation;\nthe two sets of values should be different only if you are interested in studing two galaxy species;\nonly the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities. \ns_lim=nothing : parameter used in order to avoid the divergence of the mathcalR and mathfrakR denominators: when 0 leq s leq s_mathrmlim the returned values are\nforall s in 0 s_mathrmlim quad \n mathfrakR(s) = 1 - frac1mathcalH_0 s_mathrmlim quad\n mathcalR(s) = 5 s_mathrmb + \n frac2 - 5 s_mathrmbmathcalH_0 s_mathrmlim + \n fracdotmathcalHmathcalH_0^2 - mathitf_mathrmevo \nIf nothing, the default value stored in cosmo will be considered.\nobs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?\n:yes or true -> all the observer effects will be considered\n:no or false -> no observer term will be taken into account\n:noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account\nen::Float64 = 1e6: just a float number used in order to deal better with small numbers;\nN_χs::Int = 100: number of points to be used for sampling the integral along the range (0, s2) (for χ2); it has been checked that with N_χs ≥ 100 the result is stable.\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, integrand_ξ_GNC_LocalGP_IntegratedGP\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations_2/#GaPSE.ξ_GNC_IntegratedGP_LocalGP","page":"GNC TPCFs","title":"GaPSE.ξ_GNC_IntegratedGP_LocalGP","text":"ξ_GNC_IntegratedGP_LocalGP(s1, s2, y, cosmo::Cosmology; \n en::Float64=1e6, N_χs::Int=100, \n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, \n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,\n obs::Union{Bool,Symbol}=:noobsvel,\n suit_sampling::Bool=true\n ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Integrated Gravitational Potential (GP) and the Local Gravitational Potential (GP) effects arising from the Galaxy Number Counts (GNC).\n\nIt's computed through the symmetric function ξ_GNC_LocalGP_IntegratedGP; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nInputs\n\ns1 and s2: comoving distances where the TPCF has to be calculated;\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nkwargs... : Keyword arguments to be passed to the symmetric TPCF\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_LocalGP_IntegratedGP\n\n\n\n\n\n","category":"function"},{"location":"MathUtils/","page":"Mathematical Utilities","title":"Mathematical Utilities","text":"DocTestSetup = quote\n using GaPSE\nend","category":"page"},{"location":"MathUtils/#Mathematical-Utilities-functions","page":"Mathematical Utilities","title":"Mathematical Utilities functions","text":"","category":"section"},{"location":"MathUtils/","page":"Mathematical Utilities","title":"Mathematical Utilities","text":"GaPSE.warning\n\nGaPSE.derivate_point\nGaPSE.derivate_vector\nGaPSE.spectral_index\nGaPSE.mean_spectral_index\nGaPSE.power_law\nGaPSE.two_power_laws\nGaPSE.power_law_from_data\nGaPSE.polynomial_from_data\nGaPSE.polynomial\n\nGaPSE.expand_left_log\nGaPSE.expand_right_log\nGaPSE.expanded_IPS\nGaPSE.expanded_Iln\nGaPSE.func_I04_tilde\nGaPSE.expanded_I04_tilde\n\nGaPSE.my_interpolation\nGaPSE.EPLs\n\nGaPSE.FFTLog.evaluate_FFTLog!","category":"page"},{"location":"MathUtils/#GaPSE.warning","page":"Mathematical Utilities","title":"GaPSE.warning","text":"warning(io::IO, msg::String)\nwarning(msg::String) = warning(stdout, msg)\n\nIt does the following: printstyled(io, \"WARNING: \" * msg * \" \"; color=:red, bold=true)\n\n\n\n\n\n","category":"function"},{"location":"MathUtils/#GaPSE.derivate_point","page":"Mathematical Utilities","title":"GaPSE.derivate_point","text":"derivate_point(xp, yp, x1, y1, x2, y2)\n\nReturn the derivative in (xp, yp), given the neighboor points (x1,y1) and (x2,y2), with x1 < xp < x2. It is not assumed that x2 - xp = xp - x1.\n\nSee also: derivate_vector, spectral_index]\n\n\n\n\n\n","category":"function"},{"location":"MathUtils/#GaPSE.derivate_vector","page":"Mathematical Utilities","title":"GaPSE.derivate_vector","text":"derivate_vector(XS, YS; N::Int=1)\n\nApply derivate_point to the vector. N::Int=1 is the number of points at each edge that idk.\n\nSee also: derivate_point, spectral_index]\n\n\n\n\n\n","category":"function"},{"location":"MathUtils/#GaPSE.spectral_index","page":"Mathematical Utilities","title":"GaPSE.spectral_index","text":"spectral_index(xs, ys; N::Int=1, con=false)\n\nReturn the spectral index vector for the two input vectors.\n\nThe spectral index S of a generic function f = f(x) is defined as:\n\n S = fracpartial log f(x)partial log x \n = fracxf(x) fracpartial f(x)partial x \n\nSee also: derivate_point, derivate_vector\n\n\n\n\n\n","category":"function"},{"location":"MathUtils/#GaPSE.mean_spectral_index","page":"Mathematical Utilities","title":"GaPSE.mean_spectral_index","text":"mean_spectral_index(xs, ys; N::Int = 1, con = false)\n\nAssuming that the input ys follow a power law distribution, return the mean spectral index langle S rangle of them.\n\nThe spectral index S of a generic function f = f(x) is defined as:\n\n S = fracpartial log f(x)partial log x \n = fracxf(x) fracpartial f(x)partial x \n\n\n\n\n\n","category":"function"},{"location":"MathUtils/#GaPSE.power_law","page":"Mathematical Utilities","title":"GaPSE.power_law","text":"power_law(x, si, b, a) ::Float64\n\nReturn the following y = f(x) \"spurious\" power-law value:\n\ny = f(x) = a + b x^s\n\nwhere si is the exponent (s), b the coefficient (b) and a is the added constant (a).\n\n\n\n\n\n","category":"function"},{"location":"MathUtils/#GaPSE.two_power_laws","page":"Mathematical Utilities","title":"GaPSE.two_power_laws","text":"two_power_laws(x; switch=5.0, si_1=1.0, si_2=2.0, b=1.0, a=0.0)\n\nReturn two power laws, depending on the value of switch.\n\n\n\n\n\n","category":"function"},{"location":"MathUtils/#GaPSE.power_law_from_data","page":"Mathematical Utilities","title":"GaPSE.power_law_from_data","text":"power_law_from_data(xs, ys, p0::Vector{Float64},\n fit_min::Number, fit_max::Number; con = false)\n\npower_law_from_data(xs, ys, p0::Vector{Float64}; con = false) = \n power_law_from_data(xs, ys, p0, xs[begin], xs[end]; con = con)\n\nReturns the \"spurious\" power-law coefficients s, b and a obtained from the fitting of the data vectors xs and ys inside the limits fit_min and fit_max.\n\nIf con == false, the returned a is always 0.0, because it is considered the \"pure\" power-law fitting function:\n\n y = f(x) = b x^s\n\nwhile if con == false it is used the spurious one:\n\n y = f(x) = a + b x^s\n\n(and consequently a may be ≠0).\n\nThe fitting is performed through the function curve_fit of the LsqFit Julia package, which is based on the least-squares method.\n\nSee also: power_law\n\n\n\n\n\n","category":"function"},{"location":"MathUtils/#GaPSE.polynomial_from_data","page":"Mathematical Utilities","title":"GaPSE.polynomial_from_data","text":"polynomial_from_data(xs, ys, p0::Vector{Float64},\n fit_min::Number, fit_max::Number; con = false)\n\npolynomial_from_data(xs, ys, p0::Vector{Float64}; con = false) = \n polynomial_from_data(xs, ys, p0, xs[begin], xs[end]; con = con)\n\nReturns the 2-degree polynomial coefficients c, b and a obtained from the fitting of the data vectors xs and ys inside the limits fit_min and fit_max.\n\nThe fitting function is always a second-degree polynomio, but depeding on the starting values vector p0 can assume three different forms:\n\nif length(p0) == 3, the fitting polynomio is\n f(x) = a + b x + c x^2\nif length(p0) == 2, the fitting polynomio is\n f(x) = b x + c x^2\nif length(p0) == 1, the fitting polynomio is\n f(x) = c x^2\n\nThe fitting is performed through the function curve_fit of the LsqFit Julia package, which is based on the least-squares method.\n\nSee also: polynomial\n\n\n\n\n\n","category":"function"},{"location":"MathUtils/#GaPSE.polynomial","page":"Mathematical Utilities","title":"GaPSE.polynomial","text":"polynomia(x, c, b, a) ::Float64\n\nReturn the following y = f(x) 2-degree polynomial value:\n\ny = f(x) = a + b x + c x^2\n\nwhere c is the 2-degree coefficient (c), b the 1-degree coefficient (b) and a is the added constant (a).\n\n\n\n\n\n","category":"function"},{"location":"MathUtils/#GaPSE.expand_left_log","page":"Mathematical Utilities","title":"GaPSE.expand_left_log","text":"expand_left_log(xs, ys;\n lim=1e-8, fit_min=0.05, fit_max=0.5,\n p0::Union{Vector{Float64},Nothing}=nothing,\n con::Bool=false)\n\n\n\n\n\n","category":"function"},{"location":"MathUtils/#GaPSE.expand_right_log","page":"Mathematical Utilities","title":"GaPSE.expand_right_log","text":"expand_right_log(xs, ys;\n lim=3e3, fit_min=5.0, fit_max=10.0,\n p0::Union{Vector{Float64},Nothing}=nothing,\n con::Bool=false)\n\n\n\n\n\n","category":"function"},{"location":"MathUtils/#GaPSE.expanded_IPS","page":"Mathematical Utilities","title":"GaPSE.expanded_IPS","text":"expanded_IPS(ks, pks; k_in = 1e-8, k_end = 3e3, con = false)\n\nGiven the ks and pks of a chosen Power Spectrum, returns the same PS with \"longer tails\", i.e. it is prolonged for higher and lower ks than the input ones.\n\n\n\n\n\n","category":"function"},{"location":"MathUtils/#GaPSE.expanded_Iln","page":"Mathematical Utilities","title":"GaPSE.expanded_Iln","text":"expanded_Iln(PK, l, n; N = 1024, kmin = 1e-4, kmax = 1e3, s0 = 1e-3,\n fit_left_min = 2.0, fit_left_max = 10.0, p0 = [-1.0, 1.0, 0.0], con = false)\n\n\n\n\n\n","category":"function"},{"location":"MathUtils/#GaPSE.func_I04_tilde","page":"Mathematical Utilities","title":"GaPSE.func_I04_tilde","text":"func_I04_tilde(PK, s, kmin, kmax; kwargs...)\n\nReturn the following integral:\n\ntildeI^4_0 (s) = int_0^infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(q s) - 1(q s)^4\n\nIt is brute-force calcuated with quadgk.\n\nArguments\n\nPK : function that return the Input Power Spectrum\ns : value of s whre the integral must be evaluated\nkmin, kmax : extremes (min and max) of integration\nkwargs... : keyword argruments that must be passed to quadgk, such as rtol or atol\n\n\n\n\n\n","category":"function"},{"location":"MathUtils/#GaPSE.expanded_I04_tilde","page":"Mathematical Utilities","title":"GaPSE.expanded_I04_tilde","text":"expanded_I04_tilde(PK, ss;\n kmin=1e-6, kmax=1e3, kwargs...)\n\n\n\n\n\n","category":"function"},{"location":"MathUtils/#GaPSE.my_interpolation","page":"Mathematical Utilities","title":"GaPSE.my_interpolation","text":"my_interpolation(x1, y1, x2, y2, x)\n\n\n\n\n\n","category":"function"},{"location":"MathUtils/#GaPSE.EPLs","page":"Mathematical Utilities","title":"GaPSE.EPLs","text":"EPLs(\n l_si::Float64\n l_b::Float64\n l_a::Float64\n left::Float64\n\n spline::Dierckx.Spline1D\n\n r_si::Float64\n r_b::Float64\n r_a::Float64\n right::Float64\n)\n\nContains all the information useful in order to return the value of a spline inside the interval left ≤ x ≤ right and the associated power laws for the edges (with the \"left\" coefficients l_si, l_b and l_a for x < left and the \"right\" ones r_si, r_b and r_a for x > right)\n\nArguments\n\nl_si, l_b, l_a :: Float64 : coefficient for the spurious power-law y = f(x) = a + b x^s for the LEFT edge; when an input value x < left is given, the returned one is obtained from power_law with this coefficients ( where, of course, l_si is the exponent, l_b the coefficient and l_a the spurious adding constant). \nleft::Float64 : the break between the left power-law (for x right is given, the returned one is obtained from power_law with this coefficients ( where, of course, r_si is the exponent, r_bthe coefficient andr_athe spurious adding constant). NOTE: for numerical issues, the \"pure\" power-lawy = f(x) = b + x^s` should be used. \n\nConstructors\n\nEPLs(xs, ys, p0_left::Vector{T1}, p0_right::Vector{T2}; \n N_left::Int = 15, N_right::Int = 15) where {T1<:Real, T2 <:Real}\n\nxs and ys: the input vector of values. \nN_left::Int = 15 : number of points to be used from the left edge for the left power law-fitting. It shouldn't be too low (< 4) or too high (>100).\nN_right::Int = 15 : number of points to be used from the right edge for the right power law-fitting. It shouldn't be too low (< 4) or too high (>100).\np0_left::Vector{T1} where T1 <:Real : vector with the initial values for the left power-law fitting; its length must be 2 (if you want to fit with a pure power-law y = f(x) = b * x^s, so only l_si and l_b are matter of concern) or 3 (if you want to fit with a spurious power-law y = f(x) = a + b * x^s, so you are also interested in l_a); in the first case, the considered l_a will be 0.0. Example: \np0_right::Vector{T1} where T1 <:Real : vector with the initial values for the right power-law fitting; its length must be 2 (if you want to fit with a pure power-law y = f(x) = b * x^s, so only r_si and r_b are matter of concern) or 3 (if you want to fit with a spurious power-law y = f(x) = a + b * x^s, so you are also interested in r_a); in the first case, the considered r_a will be 0.0. It is recommended to \n\nAll the power-law fitting (both \"pure\" and spurious) are made through the local function power_law_from_data.\n\nExamples\n\njulia> xs = 10 .^ range(0, 2, length=100);\n\njulia> ys = [1.34e2 * x ^ 2.43 for x in xs];\n\njulia> A = EPLs(xs, ys, [1.0, 1.0], [1.0, 1.0]; N_left = 10, N_right = 10)\n\nSee also: power_law_from_data\n\n\n\n\n\n","category":"type"},{"location":"MathUtils/#GaPSE.FFTLog.evaluate_FFTLog!","page":"Mathematical Utilities","title":"GaPSE.FFTLog.evaluate_FFTLog!","text":"evaluate_FFTLog!(fy, plan::Union{SingleBesselPlan, HankelPlan}, fx)\n\nGiven an input plan::Union{SingleBesselPlan, HankelPlan}, evaluate the FFT fy of the fx y-axis data on the basis of the parameters stored in plan. The result is stored both in plan.fy and in the input fy.\n\nSee also: SingleBesselPlan, HankelPlan\n\n\n\n\n\n","category":"function"},{"location":"IPSTools/","page":"Input Power Spectrum Tools","title":"Input Power Spectrum Tools","text":"DocTestSetup = quote\n using GaPSE\nend","category":"page"},{"location":"IPSTools/#Tool-functions","page":"Input Power Spectrum Tools","title":"Tool functions","text":"","category":"section"},{"location":"IPSTools/","page":"Input Power Spectrum Tools","title":"Input Power Spectrum Tools","text":"GaPSE.InputPS\nGaPSE.IntegralIPS\nGaPSE.IPSTools","category":"page"},{"location":"IPSTools/#GaPSE.InputPS","page":"Input Power Spectrum Tools","title":"GaPSE.InputPS","text":"InputPS(\n l_si::Float64\n l_b::Float64\n l_a::Float64\n left::Float64\n\n spline::Dierckx.Spline1D\n \n r_si::Float64\n r_b::Float64\n r_a::Float64\n right::Float64)\n\nStore the Input Power Spectrum.\n\nArguments\n\nl_si, l_b, l_a :: Float64 : coefficient for the spurious power-law y = f(x) = a + b x^s for the LEFT edge; when an input value x < left is given, the returned one is obtained from power_law with this coefficients ( where, of course, l_si is the exponent, l_b the coefficient and l_a the spurious adding constant). \nleft::Float64 : the break between the left power-law (for x left) and the spline (for x ≤ right); its value is the fit_max of the used constructor.\nr_si, r_b, r_a :: Float64 : coefficient for the spurious power-law y = f(x) = a + b x^s for the RIGHT edge; when an input value x > right is given, the returned one is obtained from power_law with this coefficients ( where, of course, r_si is the exponent, r_b the coefficient and r_a the spurious adding constant). NOTE: for numerical issues, only the \"pure\" power-law y = f(x) = b + x^s can be used. In other words, it always set r_a = 0.0.\n\nConstructors\n\nInputPS(file::String; fit_left_min = 1e-6, fit_left_max = 3e-6, fit_right_min = 1e1, fit_right_max = 2e1) : read the IPS from the given input file; it can contain comments (defined with a starting # on each line), but the file structure must be space-separated in two colums (former for k values, latter for P ones).\nfit_left_min = 1e-6, fit_left_max = 3e-6 : the limits (min and max) where the PS must be fitted with a power law, for small wavenumbers. \nfit_right_min = 1e1, fit_right_max = 2e1 : the limits (min and max) where the PS must be fitted with a power law, for high wavenumbers. \n\nInputPS(ks::AbstractVector{T1}, pks::AbstractVector{T2}; fit_left_min = 1e-6, fit_left_max = 3e-6, fit_right_min = 1e1, fit_right_max = 2e1)\nks::AbstractVector{T1}, pks::AbstractVector{T2} : self-explanatory ks and pks array-like values.\nfit_left_min = 1e-6, fit_left_max = 3e-6 : the limits (min and max) where the PS must be fitted with a power law, for small wavenumbers. \nfit_right_min = 1e1, fit_right_max = 2e1 : the limits (min and max) where the PS must be fitted with a power law, for high wavenumbers. \n\nAll the power-law fitting (both \"pure\" and spurious) are made through the local function power_law_from_data.\n\nSee also: power_law_from_data\n\n\n\n\n\n","category":"type"},{"location":"IPSTools/#GaPSE.IntegralIPS","page":"Input Power Spectrum Tools","title":"GaPSE.IntegralIPS","text":"IntegralIPS(\n l_si::Float64\n l_b::Float64\n l_a::Float64\n left::Float64\n\n spline::Dierckx.Spline1D\n\n r_si::Float64\n r_b::Float64\n r_a::Float64\n right::Float64\n)\n\nContains all the information useful in order to return the value of an integral obtained from the Input Power Spectrum.\n\nArguments\n\nl_si, l_b, l_a ::Float64 : coefficient for the spurious power-law y = f(x) = a + b x^s for the LEFT edge; when an input value x < left is given, the returned one is obtained from power_law with this coefficients ( where, of course, l_si is the exponent, l_b the coefficient and l_a the spurious adding constant). \nleft::Float64 : the break between the left power-law (for x < left) and the spline (for x ≥ left); its value is the fit_min of the used constructor.\nspline::Dierckx.Spline1D : spline that interpolates between the real values of the integral calculated inside the range left ≤ x ≤ right\nright::Float64 : the break between the right power-law (for x > right) and the spline (for x ≤ right); its value is the fit_max of the used constructor.\nr_si, r_b, r_a ::Float64 : coefficient for the spurious power-law y = f(x) = a + b x^s for the RIGHT edge; when an input value x > right is given, the returned one is obtained from power_law with this coefficients ( where, of course, r_si is the exponent, r_b the coefficient and r_a the spurious adding constant). NOTE: for numerical issues, only the \"pure\" power-law y = f(x) = b + x^s can be used. In other words, it always set r_a = 0.0.\n\nConstructors\n\nThere are two type of integrals we are interested in, and so two constructors are here provided:\n\nIntegralIPS(ips, l, n; N::Int = 1024, kmin = 1e-4, kmax = 1e3, s0 = 1e-3, fit_left_min = 2.0, fit_left_max = 10.0, p0_left = nothing, con = false, fit_right_min = nothing, fit_right_max = nothing, p0_right = nothing) This is the one used for the \"classical\" I_ell_n integrals:\nI_ell^n(s) = int_0^infty fracmathrmd q2 pi^2 q^2 P(q) \n fracj_ell(qs)(qs)^n\nwhere, for a generic Iab name, ell is the FIRST number (a) and n the second (b). The integral obtained with this constructor is calculated through xicalc, and expanded with power-laws at the edges.\nips: the function/spline that gives the Input Power Spectrum\nl and n: self-explanatory degree of the integral, with the convenction above mentioned\nkmin = 1e-4, kmax = 1e3, s0 = 1e-3 : values to be passed to xicalc for the integration\nfit_left_min = 2.0, fit_left_max = 10.0 : the limits (min and max) where the integral I_ell^n must be fitted with a power law, for small distances. This operation is necessary, because xicalc, in this context, gives wrong results for too small input distance s; nevertheless, all these I_ell^n integrals have fixed power-law trends for s rightarrow 0, so this approach gives good results.\np0_left = nothing : vector with the initial values for the left power-law fitting; its length must be 2 (if you want to fit with a pure power-law y = f(x) = b * x^s, so only l_si and l_b are matter of concern) or 3 (if you want to fit with a spurious power-law y = f(x) = a + b * x^s, so you are also interested in l_a), depending on the value of con; if nothing, it will be automatically set p0 = [-1.0, 1.0, 0.0] for con==true and p0 = [-1.0, 1.0] for con==false.\ncon::Bool = false : do you want that the fit of all the I_ell^n for the LEFT edge is not a simple power-law y = f(x) = b x^s, but also consider a constant a, such that y = f(x) = a + b x^s? For the LEFT side, there is not a lot of difference empirically. For the RIGHT side, there is not such an option due to numerical problems (it's like is always set con==false).\nfit_right_min = nothing, fit_right_max = nothing : the limits (min and max) where the integral I_ell^n must be fitted with a power law, for high distances. These I_ell^n integrals have fixed power-law trends for s rightarrow infty, so this approach gives good results. If nothing, the last 15 points returned from xicalc are used for this fitting. NOTE: for numerical issues, only the \"pure\" power-law y = f(x) = b + x^s can be used. \np0_right = nothing : vector with the initial values for the left power-law fitting; its length must be 2 (to fit with a pure power-law y = f(x) = b * x^s, so only r_si and r_b are matter of concern); if nothing, it will be automatically set p0 = [-4.0, 1.0, 0.0].\n\nIntegralIPS(ips, func::Function; N::Int = 1024, kmin = 1e-4, kmax = 1e3, fit_left_min = 0.1, fit_left_max = 1.0, p0_left = nothing, con = false, fit_right_min = nothing, fit_right_max = nothing, p0_right = nothing, kwargs...) This is the one used for the \"strange\" tildeI integrals, such as:\ntildeI^4_0 (s) = int fracmathrmdq2pi^2 q^2 \n P(q) fracj_0(qs) - 1(qs)^4 \nThe integral obtained with this constructor is calculated through the input function func, and expanded with power-laws at the edges. For \\tilde{I}^4_0, the function is func_I04_tilde. \nips: the function/spline that gives the Input Power Spectrum\nfunc: function that return the value of this specific integral in a given value\nkmin = 1e-4, kmax = 1e3, s0 = 1e-3 : values to be passed to func as extremes of integration\nfit_left_min = 0.1, fit_left_max = 1.0, : the limits (min and max) where the integral tildeI must be fitted with a power law, for small distances. This operation is necessary, because xicalc, in this context, gives wrong results for too small input distance s; nevertheless, all this tildeI integral have fixed power-law trends for s rightarrow 0, so this approach gives good results.\np0_left = nothing : vector with the initial values for the left power-law fitting; its length must be 2 (if you want to fit with a pure power-law y = f(x) = b * x^s, so only l_si and l_b are matter of concern) or 3 (if you want to fit with a spurious power-law y = f(x) = a + b * x^s, so you are also interested in l_a), depending on the value of con; if nothing, it will be automatically set p0 = [-2.0, -1.0, 0.0] for con==true and p0 = [-2.0, -1.0] for con==false.\ncon::Bool = false : do you want that the fit of all the I_ell^n for the LEFT edge is not a simple power-law y = f(x) = b x^s, but also consider a constant a, such that y = f(x) = a + b x^s? For the LEFT side, there is not a lot of difference empirically. For the RIGHT side, there is not such an option due to numerical problems (it's like is always set con==false).\nfit_right_min = nothing, fit_right_max = nothing : the limits (min and max) where the integral I_ell^n must be fitted with a power law, for high distances. These I_ell^n integrals have fixed power-law trends for s rightarrow infty, so this approach gives good results. If nothing, the last 15 points returned from xicalc are used for this fitting. NOTE: for numerical issues, only the \"pure\" power-law y = f(x) = b + x^s can be used. \np0_right = nothing : vector with the initial values for the left power-law fitting; its length must be 2 (to fit with a pure power-law y = f(x) = b * x^s, so only r_si and r_b are matter of concern); if nothing, it will be automatically set p0 = [-4.0, -1.0].\n\nAll the power-law fitting (both \"pure\" and spurious) are made through the local function power_law_from_data.\n\nSee also: power_law_from_data, power_law, func_I04_tilde\n\n\n\n\n\n","category":"type"},{"location":"IPSTools/#GaPSE.IPSTools","page":"Input Power Spectrum Tools","title":"GaPSE.IPSTools","text":"IPSTools(\n I00::IntegralIPS\n I20::IntegralIPS\n I40::IntegralIPS\n I02::IntegralIPS\n I22::IntegralIPS\n I31::IntegralIPS\n I13::IntegralIPS\n I11::IntegralIPS\n\n I04_tilde::IntegralIPS\n\n σ_0::Float64\n σ_1::Float64\n σ_2::Float64\n σ_3::Float64\n σ_4::Float64\n\n fit_min::Union{Float64,Nothing}\n fit_max::Union{Float64,Nothing}\n k_min::Float64\n k_max::Float64\n s_0::Float64\n )\n\nStruct that contains all the useful functions and values obtained from the Input Power Spectrum.\n\nArguments\n\nI00, I20, I40, I02, I22, I31, I13, I11 ::IntegralIPS: they return the value of the corresponding integral:\nI_ell^n(s) = int_0^infty fracmathrmd q2 pi^2 q^2 P(q) \n fracj_ell(qs)(qs)^n\nwhere, for a generic Iab name, ell is the FIRST number (a) and n the second (b). These integrals are performed through xicalc, with kmin, kmax, s0 = 1e-5, 1e3, 1e-3; at the edges they are fitted with power laws (for s < fit_min and s > max_s_returned_from_xi_calc).\nI04_tilde::IntegralIPS: it returns the value of the integral:\ntildeI^4_0 (s) = int fracmathrmdq2pi^2 q^2 \n P(q) fracj_0(qs) - 1(qs)^4 \nThis integral is calculated brute-force with quadgk, and fitted with power-laws at the edges (for s < 0.1 and s > 1e4).\nσ_0, σ_1, σ_2, σ_3, σ_4 :: Float64: these are the results of the following integral:\nsigma_i = int_k_mathrmmin^k_mathrmmax fracmathrmd q2 pi^2 q^2-i P(q)\nfit_min, fit_max :: Float64: the limits (min and max) where the integral I_ell^n must be fitted with a power law, for small distances. This operation is necessary, because xicalc, in this context, gives wrong results for too small input distance s; nevertheless, all these I_ell^n integrals have fixed power-law trends for s rightarrow 0, so this approach gives good results.\nk_min k_max::Float64 : because some of the sigma_i integrals from q = 0 to q = +infty diverge, it is common practice to cut the integrals at the edges, so they are calculated from q = k_mathrmmin to q = k_mathrmmax\n\nConstructors\n\nIPSTools(ips::InputPS; N::Int = 1024,\n fit_min::Float64 = 0.05, fit_max::Float64 = 0.5,\n k_min::Float64 = 1e-6, k_max::Float64 = 10.0\n con::Bool = false\n)\n\nips::InputPS : the Input Power Spectrum to be used in all the calculations.\nN::Int = 1024 : number of points to be used in the xicalc function\nk_min::Float64 = 1e-6, k_max::Float64 = 10.0 : integrations extremes of the sigma_is\ncon::Bool = false : do you want that the fit of all the I_ell^n for the LEFT edge is not a simple power-law y = f(x) = b x^s, but also consider a constant a, such that y = f(x) = a + b x^s? For the LEFT side, there is not a lot of difference empirically. For the RIGHT side, there is not such an option due to numerical problems (it's like is always set con==false).\n\nSee also: IntegralIPS, InputPS\n\n\n\n\n\n","category":"type"},{"location":"LDxGNC_Correlations_2/","page":"LDxGNC TPCFs","title":"LDxGNC TPCFs","text":"DocTestSetup = quote\n using GaPSE\nend","category":"page"},{"location":"LDxGNC_Correlations_2/#LDxGNC-TPCFs","page":"LDxGNC TPCFs","title":"LDxGNC TPCFs","text":"","category":"section"},{"location":"LDxGNC_Correlations_2/#Two-Point-Cross-Correlation-Function-multipoles","page":"LDxGNC TPCFs","title":"Two-Point Cross-Correlation Function multipoles","text":"","category":"section"},{"location":"LDxGNC_Correlations_2/","page":"LDxGNC TPCFs","title":"LDxGNC TPCFs","text":"GaPSE.integrand_ξ_LDxGNC_multipole\nGaPSE.ξ_LDxGNC_multipole\nGaPSE.map_ξ_LDxGNC_multipole\nGaPSE.print_map_ξ_LDxGNC_multipole","category":"page"},{"location":"LDxGNC_Correlations_2/#GaPSE.integrand_ξ_LDxGNC_multipole","page":"LDxGNC TPCFs","title":"GaPSE.integrand_ξ_LDxGNC_multipole","text":"integrand_ξ_LDxGNC_multipole(s1, s, μ, effect::Function, cosmo::Cosmology;\n L::Int = 0, use_windows::Bool = true, kwargs...)\n\nintegrand_ξ_LDxGNC_multipole(s1, s, μ, effect::String, cosmo::Cosmology; kwargs...)\n\nReturn the integrand on mu = hatmathbfs_1 cdot hatmathbfs of the chosen two-point cross correlation between a perturbation of the Luminosity Distance (LD) effect and a Galaxy Number Counts (GNC) effect effect term, i.e. the following function f(s_1 s mu):\n\n f_L(s_1 s mu) = xi left(s_1 s_2 yright) \n mathcalL_L(mu) times \n begincases \n frac1mathcalNmathcalF(s mu) quad mathrmuse_windows == true \n 1 quadquad mathrmuse_windows == false\n endcases\n\nwhere:\n\ns_2 = s_2(s_1 s mu) = sqrts_1^2 + s^2 + 2 s_1 s mu \ny = costheta = hatmathbfs_1 cdot hatmathbfs_2 = fracmu s + s_1s_2(s_1 s mu)\nxi is the corresponding LDxGNC TPCF effect\nmathcalL_L(mu) is the Legendre polynomial of order L\nmathcalF(s mu) is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)\nmathcalN is the integrated window function norm (check the documentation of WindowFIntegrated)\n\nIn the former method you have to pass as an input the LDxGNC effect function you want to integrate, while in the (recommended) latter one it's necessary to specify the name of the LDxGNC TPCF term among the following:\n\ndoppler_newton , lensing_newton , localgp_newton , integratedgp_newton , doppler_doppler , lensing_doppler , localgp_doppler , integratedgp_doppler , doppler_lensing , lensing_lensing , localgp_lensing , integratedgp_lensing , doppler_localgp , lensing_localgp , localgp_localgp , integratedgp_localgp , doppler_integratedgp , lensing_integratedgp , localgp_integratedgp , integratedgp_integratedgp ,\n\nto which correspond the following functions, respectively:\n\nξ_LDxGNC_Doppler_Newtonian , ξ_LDxGNC_Lensing_Newtonian , ξ_LDxGNC_LocalGP_Newtonian , ξ_LDxGNC_IntegratedGP_Newtonian , ξ_LDxGNC_Doppler_Doppler , ξ_LDxGNC_Lensing_Doppler , ξ_LDxGNC_LocalGP_Doppler , ξ_LDxGNC_IntegratedGP_Doppler , ξ_LDxGNC_Doppler_Lensing , ξ_LDxGNC_Lensing_Lensing , ξ_LDxGNC_LocalGP_Lensing , ξ_LDxGNC_IntegratedGP_Lensing , ξ_LDxGNC_Doppler_LocalGP , ξ_LDxGNC_Lensing_LocalGP , ξ_LDxGNC_LocalGP_LocalGP , ξ_LDxGNC_IntegratedGP_LocalGP , ξ_LDxGNC_Doppler_IntegratedGP , ξ_LDxGNC_Lensing_IntegratedGP , ξ_LDxGNC_LocalGP_IntegratedGP , ξ_LDxGNC_IntegratedGP_IntegratedGP ,\n\nInternally, the second method recall the first, so all the keyword arguments are in common.\n\nNote that these is an internal conversion of coordiate sistems from (s1, s, μ) to (s1, s2, y) thorugh the functions y and s2. The inverse relations are:\n\ns = s(s_1 s_2 y) = sqrts_1^2 + s_2^2 - 2 s_1 s_2 y\nmu = costheta = hatmathbfs_1 cdot hatmathbfs = fracy s_2 - s_1s(s_1 s_2 y).\n\nInputs\n\ns1: the comoving distance where must be evaluated the integral\ns: the comoving distance from s1 where must be evaluated the integral\nμ: the cosine between s1 and s where must be evaluated the integral\neffect::Function or effect::String : name/function you want to consider, among the ones inside GaPSE.GR_EFFECTS_LDxGNC/GaPSE.VEC_ξs_LDxGNC respectively.\ncosmo::Cosmology: cosmology to be used in this computation\n\nOptional arguments\n\nL::Int = 0: order of the Legendre polynomial to be used\nuse_windows::Bool = false: tells if the integrand must consider the two window function phi and mathcalF\nkwargs... : other keyword arguments that will be passed to the selected GR TPCF effect (ξ_LDxGNC_Doppler, ξ_LDxGNC_Lensing, ...)\n\nSee also: ξ_LDxGNC_multipole, map_ξ_LDxGNC_multipole, print_map_ξ_LDxGNC_multipole, WindowFIntegrated, ϕ, Cosmology, y, s2, GR_EFFECTS_LDxGNC, GaPSE.VEC_ξs_LDxGNC\n\n\n\n\n\n","category":"function"},{"location":"LDxGNC_Correlations_2/#GaPSE.ξ_LDxGNC_multipole","page":"LDxGNC TPCFs","title":"GaPSE.ξ_LDxGNC_multipole","text":"ξ_LDxGNC_multipole(\n s1, s, effect::Function, cosmo::Cosmology;\n L::Int = 0, alg::Symbol = :lobatto, \n use_windows::Bool = true, \n N_lob::Int = 100, N_trap::Int = 200, \n atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,\n enhancer::Float64 = 1e6, \n kwargs...) ::Float64\n\nξ_LDxGNC_multipole(s1, s, effect::String, cosmo::Cosmology; \n kwargs...) ::Float64\n\nEvaluate the multipole of order L of the chosen two-point cross correlation between a perturbation of the Luminosity Distance (LD) and a Galaxy Number Counts (GNC) effect term i.e. the following function xi_L(s_1 s):\n\n xi_L(s_1 s) = frac2 L + 12 int_-1^+1 mathrmdmu \n xi (s_1 s_2 costheta) mathcalL_L(mu) times\n begincases \n frac1mathcalNmathcalF(s mu) quad mathrmuse_windows == true \n 1 quadquad mathrmuse_windows == false\n endcases\n\nwhere:\n\ns_2 = s_2(s_1 s mu) = sqrts_1^2 + s^2 + 2 s_1 s mu \ny = costheta = hatmathbfs_1 cdot hatmathbfs_2 = fracmu s + s_1s_2(s_1 s mu)\nxi is the corresponding LDxGNC TPCF effect\nmathcalL_L(mu) is the Legendre polynomial of order L\nmathcalF(s mu) is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)\nmathcalN is the integrated window function norm (check the documentation of WindowFIntegrated) \n\nIn the former method you have to pass as an input the LDxGNC effect function you want to integrate, while in the (recommended) latter one it's necessary to specify the name of the LDxGNC TPCF term among the following:\n\ndoppler_newton , lensing_newton , localgp_newton , integratedgp_newton , doppler_doppler , lensing_doppler , localgp_doppler , integratedgp_doppler , doppler_lensing , lensing_lensing , localgp_lensing , integratedgp_lensing , doppler_localgp , lensing_localgp , localgp_localgp , integratedgp_localgp , doppler_integratedgp , lensing_integratedgp , localgp_integratedgp , integratedgp_integratedgp ,\n\nto which correspond the following functions:\n\nξ_LDxGNC_Doppler_Newtonian , ξ_LDxGNC_Lensing_Newtonian , ξ_LDxGNC_LocalGP_Newtonian , ξ_LDxGNC_IntegratedGP_Newtonian , ξ_LDxGNC_Doppler_Doppler , ξ_LDxGNC_Lensing_Doppler , ξ_LDxGNC_LocalGP_Doppler , ξ_LDxGNC_IntegratedGP_Doppler , ξ_LDxGNC_Doppler_Lensing , ξ_LDxGNC_Lensing_Lensing , ξ_LDxGNC_LocalGP_Lensing , ξ_LDxGNC_IntegratedGP_Lensing , ξ_LDxGNC_Doppler_LocalGP , ξ_LDxGNC_Lensing_LocalGP , ξ_LDxGNC_LocalGP_LocalGP , ξ_LDxGNC_IntegratedGP_LocalGP , ξ_LDxGNC_Doppler_IntegratedGP , ξ_LDxGNC_Lensing_IntegratedGP , ξ_LDxGNC_LocalGP_IntegratedGP , ξ_LDxGNC_IntegratedGP_IntegratedGP ,\n\nInternally, the second method recall the first, so all the keyword arguments are in common.\n\nNote that these is an internal conversion of coordiate sistems from (s1, s, μ) to (s1, s2, y) thorugh the functions y and s2. The inverse relations are:\n\ns = s(s_1 s_2 y) = sqrts_1^2 + s_2^2 - 2 s_1 s_2 y\nmu = costheta = hatmathbfs_1 cdot hatmathbfs = fracy s_2 - s_1s(s_1 s_2 y).\n\nInputs\n\ns1: the comoving distance where must be evaluated the integral\ns: the comoving distance from s1 where must be evaluated the integral\neffect::Function or effect::String : name/function you want to consider, among the ones inside GaPSE.GR_EFFECTS_LDxGNC/GaPSE.VEC_ξs_LDxGNC respectively.\ncosmo::Cosmology: cosmology to be used in this computation\n\nOptional arguments\n\nL::Int = 0: order of the Legendre polynomial to be used\nalg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):\n:quad -> the integration over mu will be preformed through the Julia function quadgk \nfrom the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n:trap -> the integration over mu will be preformed through the Julia function trapz \nfrom the Trapz.jl Julia package, that uses the simple trapezoidal rulae.\n:lobatto -> the integration over mu will be preformed through the Julia function gausslobatto \nfrom the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!\nuse_windows::Bool = false: tells if the integrand must consider the two window function phi and mathcalF\nN_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\nN_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\nkwargs... : other keyword arguments that will be passed to the selected LDxGNC TPCF effect (ξ_LDxGNC_Doppler, ξ_LDxGNC_Lensing, ...)\n\nSee also: integrand_ξ_LDxGNC_multipole, map_ξ_LDxGNC_multipole, print_map_ξ_LDxGNC_multipole WindowFIntegrated, Cosmology, y, s2, GR_EFFECTS_LDxGNC, VEC_ξs_LDxGNC\n\n\n\n\n\n","category":"function"},{"location":"LDxGNC_Correlations_2/#GaPSE.map_ξ_LDxGNC_multipole","page":"LDxGNC TPCFs","title":"GaPSE.map_ξ_LDxGNC_multipole","text":"map_ξ_LDxGNC_multipole(cosmo::Cosmology,\n effect::Union{String,Function}, ss = nothing;\n s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,\n N_lob::Int = 100, N_trap::Int = 50,\n atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,\n enhancer::Float64=1e6, N_log::Int = 1000, \n pr::Bool = true,\n kwargs...) ::Tuple{Vector{Float64}, Vector{Float64}}\n\nEvaluate the multipole of order L of the chosen two-point cross correlation between a perturbation of the Luminosity Distance (LD) and a Galaxy Number Counts (GNC) effect term for all the comoving distance values stored inside ss. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). If s1 = nothing, it is set s1 = cosmo.s_eff.\n\nThe function evaluated is then the following xi_L(s_1 s):\n\n xi_L(s_1 s) = frac2 L + 12 int_-1^+1 mathrmdmu \n xi (s_1 s_2 costheta) mathcalL_L(mu) times\n begincases \n frac1mathcalNmathcalF(s mu) quad mathrmuse_windows == true \n 1 quadquad mathrmuse_windows == false\n endcases\n\nwhere:\n\ns_2 = s_2(s_1 s mu) = sqrts_1^2 + s^2 + 2 s_1 s mu \ny = costheta = hatmathbfs_1 cdot hatmathbfs_2 = fracmu s + s_1s_2(s_1 s mu)\nxi is the corresponding LDxGNC TPCF effect\nmathcalL_L(mu) is the Legendre polynomial of order L\nmathcalF(s mu) is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)\nmathcalN is the integrated window function norm (check the documentation of WindowFIntegrated) \n\nNote that these is an internal conversion of coordiate sistems from (s1, s, μ) to (s1, s2, y) thorugh the functions y and s2. The inverse relations are:\n\ns = s(s_1 s_2 y) = sqrts_1^2 + s_2^2 - 2 s_1 s_2 y\nmu = costheta = hatmathbfs_1 cdot hatmathbfs = fracy s_2 - s_1s(s_1 s_2 y).\n\nInputs\n\ncosmo::Cosmology : cosmology to be used in this computation\neffect::Union{String,Function} : the GR effect TPCF you want to consider; you may specify the name of the effect as one of the following strings (recommended):\ndoppler_newton , lensing_newton , localgp_newton , integratedgp_newton , doppler_doppler , lensing_doppler , localgp_doppler , integratedgp_doppler , doppler_lensing , lensing_lensing , localgp_lensing , integratedgp_lensing , doppler_localgp , lensing_localgp , localgp_localgp , integratedgp_localgp , doppler_integratedgp , lensing_integratedgp , localgp_integratedgp , integratedgp_integratedgp ,\nor directly the name of the function among the following: \nξ_LDxGNC_Doppler_Newtonian , ξ_LDxGNC_Lensing_Newtonian , ξ_LDxGNC_LocalGP_Newtonian , ξ_LDxGNC_IntegratedGP_Newtonian , ξ_LDxGNC_Doppler_Doppler , ξ_LDxGNC_Lensing_Doppler , ξ_LDxGNC_LocalGP_Doppler , ξ_LDxGNC_IntegratedGP_Doppler , ξ_LDxGNC_Doppler_Lensing , ξ_LDxGNC_Lensing_Lensing , ξ_LDxGNC_LocalGP_Lensing , ξ_LDxGNC_IntegratedGP_Lensing , ξ_LDxGNC_Doppler_LocalGP , ξ_LDxGNC_Lensing_LocalGP , ξ_LDxGNC_LocalGP_LocalGP , ξ_LDxGNC_IntegratedGP_LocalGP , ξ_LDxGNC_Doppler_IntegratedGP , ξ_LDxGNC_Lensing_IntegratedGP , ξ_LDxGNC_LocalGP_IntegratedGP , ξ_LDxGNC_IntegratedGP_IntegratedGP ,\nss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). This is why it is returned also the vector of the \"input\" values.\n\nOptional arguments\n\ns1 = nothing : comoving distance from the observer where the TPCF should be evaluated; if s1 = nothing, it is automatically set s1 = cosmo.s_eff from the given input cosmo::Cosmology.\nL::Int = 0: order of the Legendre polynomial to be used\nalg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):\n:quad -> the integration over mu will be preformed through the Julia function quadgk \nfrom the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n:trap -> the integration over mu will be preformed through the Julia function trapz \nfrom the Trapz.jl Julia package, that uses the simple trapezoidal rulae.\n:lobatto -> the integration over mu will be preformed through the Julia function gausslobatto \nfrom the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!\nuse_windows::Bool = false: tells if the integrand must consider the two window function phi and mathcalF\nN_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\nN_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\nN_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing \npr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)\nkwargs... : other keyword arguments that will be passed to the selected LDxGNC TPCF effect (ξ_LDxGNC_Doppler, ξ_LDxGNC_Lensing, ...)\n\nReturns\n\nA Tuple{Vector{Float64}, Vector{Float64}}, which has as first element the ss vector and as second one the corresponding ξ value evaluated.\n\nSee also: integrand_ξ_LDxGNC_multipole, ξ_LDxGNC_multipole, print_map_ξ_LDxGNC_multipole, WindowFIntegrated, Cosmology, y, s2, GR_EFFECTS_LDxGNC, GaPSE.VEC_ξs_LDxGNC\n\n\n\n\n\n","category":"function"},{"location":"LDxGNC_Correlations_2/#GaPSE.print_map_ξ_LDxGNC_multipole","page":"LDxGNC TPCFs","title":"GaPSE.print_map_ξ_LDxGNC_multipole","text":"print_map_ξ_LDxGNC_multipole(\n cosmo::Cosmology, out::String,\n effect::Union{String,Function},\n ss = nothing;\n s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,\n N_lob::Int = 100, N_trap::Int = 50,\n atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,\n enhancer::Float64=1e6, N_log::Int = 1000, \n pr::Bool = true,\n kwargs...)\n\nEvaluate the multipole of order L of the of the chosen two-point cross correlation between a perturbation of the Luminosity Distance (LD) and a Galaxy Number Counts (GNC) effect term for all the comoving distance values stored inside ss, and print the results (with all the options used) in a file named out. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). If s1 = nothing, it is set s1 = cosmo.s_eff.\n\nThe function evaluated is then the following xi_L(s_1 s):\n\n xi_L(s_1 s) = frac2 L + 12 int_-1^+1 mathrmdmu \n xi (s_1 s_2 costheta) mathcalL_L(mu) times\n begincases \n frac1mathcalNmathcalF(s mu) quad mathrmuse_windows == true \n 1 quadquad mathrmuse_windows == false\n endcases\n\nwhere:\n\ns_2 = s_2(s_1 s mu) = sqrts_1^2 + s^2 + 2 s_1 s mu \ny = costheta = hatmathbfs_1 cdot hatmathbfs_2 = fracmu s + s_1s_2(s_1 s mu)\nxi is the corresponding LDxGNC TPCF effect\nmathcalL_L(mu) is the Legendre polynomial of order L\nmathcalF(s mu) is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)\nmathcalN is the integrated window function norm (check the documentation of WindowFIntegrated) \n\nNote that these is an internal conversion of coordiate sistems from (s1, s, μ) to (s1, s2, y) thorugh the functions y and s2. The inverse relations are:\n\ns = s(s_1 s_2 y) = sqrts_1^2 + s_2^2 - 2 s_1 s_2 y\nmu = costheta = hatmathbfs_1 cdot hatmathbfs = fracy s_2 - s_1s(s_1 s_2 y).\n\nInputs\n\ncosmo::Cosmology : cosmology to be used in this computation\neffect::Union{String,Function} : the GR effect TPCF you want to consider; you may specify the name of the effect as one of the following strings (recommended):\ndoppler_newton , lensing_newton , localgp_newton , integratedgp_newton , doppler_doppler , lensing_doppler , localgp_doppler , integratedgp_doppler , doppler_lensing , lensing_lensing , localgp_lensing , integratedgp_lensing , doppler_localgp , lensing_localgp , localgp_localgp , integratedgp_localgp , doppler_integratedgp , lensing_integratedgp , localgp_integratedgp , integratedgp_integratedgp ,\nor directly the name of the function among the following: \nξ_LDxGNC_Doppler_Newtonian , ξ_LDxGNC_Lensing_Newtonian , ξ_LDxGNC_LocalGP_Newtonian , ξ_LDxGNC_IntegratedGP_Newtonian , ξ_LDxGNC_Doppler_Doppler , ξ_LDxGNC_Lensing_Doppler , ξ_LDxGNC_LocalGP_Doppler , ξ_LDxGNC_IntegratedGP_Doppler , ξ_LDxGNC_Doppler_Lensing , ξ_LDxGNC_Lensing_Lensing , ξ_LDxGNC_LocalGP_Lensing , ξ_LDxGNC_IntegratedGP_Lensing , ξ_LDxGNC_Doppler_LocalGP , ξ_LDxGNC_Lensing_LocalGP , ξ_LDxGNC_LocalGP_LocalGP , ξ_LDxGNC_IntegratedGP_LocalGP , ξ_LDxGNC_Doppler_IntegratedGP , ξ_LDxGNC_Lensing_IntegratedGP , ξ_LDxGNC_LocalGP_IntegratedGP , ξ_LDxGNC_IntegratedGP_IntegratedGP ,\nout::String : name of the file where the results must be stored.\nss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log).\n\nOptional arguments\n\nThis function recall internally map_ξ_LDxGNC_multipole, so the kwargs are the same; we report them for comfortness:\n\ns1 = nothing : comoving distance from the observer where the TPCF should be evaluated; if s1 = nothing, it is automatically set s1 = cosmo.s_eff from the given input cosmo::Cosmology.\nL::Int = 0: order of the Legendre polynomial to be used\nalg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):\n:quad -> the integration over mu will be preformed through the Julia function quadgk \nfrom the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n:trap -> the integration over mu will be preformed through the Julia function trapz \nfrom the Trapz.jl Julia package, that uses the simple trapezoidal rulae.\n:lobatto -> the integration over mu will be preformed through the Julia function gausslobatto \nfrom the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!\nuse_windows::Bool = false: tells if the integrand must consider the two window function phi and mathcalF\nN_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\nN_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\nN_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing \npr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)\nkwargs... : other keyword arguments that will be passed to the selected LDxGNC TPCF effect (ξ_LDxGNC_Doppler, ξ_LDxGNC_Lensing, ...)\n\nSee also: integrand_ξ_LDxGNC_multipole, ξ_LDxGNC_multipole, print_map_ξ_LDxGNC_multipole, WindowFIntegrated, Cosmology, y, s2, GR_EFFECTS_LDxGNC, GaPSE.VEC_ξs_LDxGNC\n\n\n\n\n\n","category":"function"},{"location":"LDxGNC_Correlations_2/#Two-Point-Cross-Correlation-Function-Sum-multipoles","page":"LDxGNC TPCFs","title":"Two-Point Cross-Correlation Function Sum multipoles","text":"","category":"section"},{"location":"LDxGNC_Correlations_2/","page":"LDxGNC TPCFs","title":"LDxGNC TPCFs","text":"GaPSE.sum_ξ_LDxGNC_multipole\nGaPSE.map_sum_ξ_LDxGNC_multipole\nGaPSE.print_map_sum_ξ_LDxGNC_multipole","category":"page"},{"location":"LDxGNC_Correlations_2/#GaPSE.sum_ξ_LDxGNC_multipole","page":"LDxGNC TPCFs","title":"GaPSE.sum_ξ_LDxGNC_multipole","text":"sum_ξ_LDxGNC_multipole(s1, s, cosmo::Cosmology;\n s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,\n N_lob::Int = 100, N_trap::Int = 50,\n atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,\n enhancer::Float64=1e6, N_log::Int = 1000, \n pr::Bool = true,\n kwargs...) ::Tuple{Float64, Vector{Float64}}\n\nEvaluate the multipole of order L of all the two-point cross correlation multipole between the perturbations of the Luminosity Distance (LD) and the Galaxy Number Counts (GNC) and their sum in the comoving distance s1 and a comoving distance s from it for the input cosmo::Cosmology. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThis function makes a for-loop on the GaPSE.GR_EFFECTS_LDxGNC strings, calling ξ_LDxGNC_multipole for each of them. To each string corresponds pretty intuitively one of the 20 LDxGNC effects. They are currently, in order:\n\ndoppler_newton , lensing_newton , localgp_newton , integratedgp_newton , doppler_doppler , lensing_doppler , localgp_doppler , integratedgp_doppler , doppler_lensing , lensing_lensing , localgp_lensing , integratedgp_lensing , doppler_localgp , lensing_localgp , localgp_localgp , integratedgp_localgp , doppler_integratedgp , lensing_integratedgp , localgp_integratedgp , integratedgp_integratedgp ,\n\nInputs\n\ns1: the comoving distance where must be evaluated the integral\ns: the comoving distance from s1 where must be evaluated the integral\ncosmo::Cosmology: cosmology to be used in this computation\n\nOptional arguments\n\nThis function recall internally ξ_LDxGNC_multipole, so the kwargs are the same; we report them for comfortness:\n\nL::Int = 0: order of the Legendre polynomial to be used\nalg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):\n:quad -> the integration over mu will be preformed through the Julia function quadgk \nfrom the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n:trap -> the integration over mu will be preformed through the Julia function trapz \nfrom the Trapz.jl Julia package, that uses the simple trapezoidal rulae.\n:lobatto -> the integration over mu will be preformed through the Julia function gausslobatto \nfrom the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!\nuse_windows::Bool = false: tells if the integrand must consider the two window function phi and mathcalF\nN_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\nN_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\nkwargs... : other keyword arguments that will be passed to ALL the LDxGNC TPCF effect (ξ_LDxGNC_Doppler, ξ_LDxGNC_Lensing, ...); if one of them has that keyword argument, it will use the given value, otherwise it will be unaffected.\n\nReturns\n\nA tuple containing:\n\nthe sum of all the ξ multipoles as first element\na Vector{Float64} with all the values of each ξ; they are ordered following GR_EFFECTS_LDxGNC\n\nSee also: integrand_ξ_LDxGNC_multipole, ξ_LDxGNC_multipole, map_sum_ξ_LDxGNC_multipole, print_map_sum_ξ_LDxGNC_multipole, Cosmology, GR_EFFECTS_LDxGNC\n\n\n\n\n\n","category":"function"},{"location":"LDxGNC_Correlations_2/#GaPSE.map_sum_ξ_LDxGNC_multipole","page":"LDxGNC TPCFs","title":"GaPSE.map_sum_ξ_LDxGNC_multipole","text":"map_sum_ξ_LDxGNC_multipole(\n effect::Union{String,Function}, ss = nothing;\n s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,\n N_lob::Int = 100, N_trap::Int = 50,\n atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,\n enhancer::Float64=1e6, N_log::Int = 1000, \n pr::Bool = true,\n kwargs...) ::Tuple{Vector{Float64}, Vector{Float64}, Vector{Vector{Float64}}}\n\nEvaluate the multipole of order L of all the two-point cross correlation multipole between the perturbations of the Luminosity Distance (LD) and the Galaxy Number Counts (GNC) and their sum in the comoving distance s1, for all the comoving distances stored inside ss (representing the comoving distance from s1) for the input cosmo::Cosmology. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). If s1 = nothing, it is set s1 = cosmo.s_eff. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThis function makes a for-loop on the GaPSE.GR_EFFECTS_LDxGNC strings, calling map_ξ_LDxGNC_multipole for each of them. To each string corresponds pretty intuitively one of the 20 LDxGNC effects. They are currently, in order:\n\ndoppler_newton , lensing_newton , localgp_newton , integratedgp_newton , doppler_doppler , lensing_doppler , localgp_doppler , integratedgp_doppler , doppler_lensing , lensing_lensing , localgp_lensing , integratedgp_lensing , doppler_localgp , lensing_localgp , localgp_localgp , integratedgp_localgp , doppler_integratedgp , lensing_integratedgp , localgp_integratedgp , integratedgp_integratedgp ,\n\nInputs\n\ncosmo::Cosmology : cosmology to be used in this computation\nss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). This is why it is returned also the vector of the \"input\" values.\n\nOptional arguments\n\nThis function recall internally map_ξ_LDxGNC_multipole, so the kwargs are the same; we report them for comfortness:\n\ns1 = nothing : comoving distance from the observer where the TPCF should be evaluated; if s1 = nothing, it is automatically set s1 = cosmo.s_eff from the given input cosmo::Cosmology.\nL::Int = 0: order of the Legendre polynomial to be used\nalg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):\n:quad -> the integration over mu will be preformed through the Julia function quadgk \nfrom the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n:trap -> the integration over mu will be preformed through the Julia function trapz \nfrom the Trapz.jl Julia package, that uses the simple trapezoidal rulae.\n:lobatto -> the integration over mu will be preformed through the Julia function gausslobatto \nfrom the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!\nuse_windows::Bool = false: tells if the integrand must consider the two window function phi and mathcalF\nN_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\nN_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\nN_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing \npr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)\nkwargs... : other keyword arguments that will be passed to ALL the LDxGNC TPCF effect (ξ_LDxGNC_Doppler, ξ_LDxGNC_Lensing, ...); if one of them has that keyword argument, it will use the given value, otherwise it will be unaffected.\n\nReturns\n\nA tuple containing:\n\nas first element, the vector ss itself;\nas second one, the Vector{Float64} of the sum of all the ξ multipoles;\nas third one, a Vector{Vector{Float64}} with all the values of each ξ; they are ordered following GR_EFFECTS_LDxGNC\n\nSee also: map_ξ_LDxGNC_multipole, sum_ξ_LDxGNC_multipole, print_map_sum_ξ_LDxGNC_multipole, Cosmology, GR_EFFECTS_LDxGNC\n\n\n\n\n\n","category":"function"},{"location":"LDxGNC_Correlations_2/#GaPSE.print_map_sum_ξ_LDxGNC_multipole","page":"LDxGNC TPCFs","title":"GaPSE.print_map_sum_ξ_LDxGNC_multipole","text":"print_map_sum_ξ_LDxGNC_multipole(\n cosmo::Cosmology, out::String, ss = nothing;\n s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,\n N_lob::Int = 100, N_trap::Int = 50,\n atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,\n enhancer::Float64=1e6, N_log::Int = 1000, \n pr::Bool = true,\n single::Bool = true,\n kwargs...)\n\nEvaluate the multipole of order L of all the two-point cross correlation multipole between the perturbations of the Luminosity Distance (LD) and the Galaxy Number Counts (GNC) and their sum in the comoving distance s1, for all the comoving distances stored inside ss (representing the comoving distance from s1) for the input cosmo::Cosmology; finally, it saves the results inside the file out. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). If s1 = nothing, it is set s1 = cosmo.s_eff. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThis function makes a for-loop on the GaPSE.GR_EFFECTS_LDxGNC strings, calling map_ξ_LDxGNC_multipole for each of them. To each string corresponds pretty intuitively one of the 20 LDxGNC effects. They are currently, in order:\n\ndoppler_newton , lensing_newton , localgp_newton , integratedgp_newton , doppler_doppler , lensing_doppler , localgp_doppler , integratedgp_doppler , doppler_lensing , lensing_lensing , localgp_lensing , integratedgp_lensing , doppler_localgp , lensing_localgp , localgp_localgp , integratedgp_localgp , doppler_integratedgp , lensing_integratedgp , localgp_integratedgp , integratedgp_integratedgp ,\n\nInputs\n\ncosmo::Cosmology : cosmology to be used in this computation\nout::String : name of the file where the results must be stored.\nss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log).\n\nOptional arguments\n\nThis function recall internally map_ξ_LDxGNC_multipole, so the kwargs are the same; we report them for comfortness:\n\ns1 = nothing : comoving distance from the observer where the TPCF should be evaluated; if s1 = nothing, it is automatically set s1 = cosmo.s_eff from the given input cosmo::Cosmology.\nL::Int = 0: order of the Legendre polynomial to be used\nalg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):\n:quad -> the integration over mu will be preformed through the Julia function quadgk \nfrom the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n:trap -> the integration over mu will be preformed through the Julia function trapz \nfrom the Trapz.jl Julia package, that uses the simple trapezoidal rulae.\n:lobatto -> the integration over mu will be preformed through the Julia function gausslobatto \nfrom the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!\nuse_windows::Bool = false: tells if the integrand must consider the two window function phi and mathcalF\nN_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\nN_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\nN_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing \npr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)\nsingle::Bool = true : if true, all the CFs are printed inside the file of the sum, in a table with 18 columns (first one for ss, second for their sum an the next 20 for each effect). Otherwise, a new directory \"allstandalonesCFs\" is created (in the same path given in out) and they are separately saved in files there placed.\nkwargs... : other keyword arguments that will be passed to ALL the LDxGNC TPCF effect (ξ_LDxGNC_Doppler, ξ_LDxGNC_Lensing, ...); if one of them has that keyword argument, it will use the given value, otherwise it will be unaffected.\n\nSee also: map_ξ_LDxGNC_multipole, sum_ξ_LDxGNC_multipole, map_sum_ξ_LDxGNC_multipole, Cosmology, GR_EFFECTS_LDxGNC\n\n\n\n\n\n","category":"function"},{"location":"LD_Correlations_2/","page":"LD TPCFs","title":"LD TPCFs","text":"DocTestSetup = quote\n using GaPSE\nend","category":"page"},{"location":"LD_Correlations_2/#LD-TPCFs","page":"LD TPCFs","title":"LD TPCFs","text":"","category":"section"},{"location":"LD_Correlations_2/#Two-Point-Auto-Correlation-Functions-integrands","page":"LD TPCFs","title":"Two-Point Auto-Correlation Functions integrands","text":"","category":"section"},{"location":"LD_Correlations_2/","page":"LD TPCFs","title":"LD TPCFs","text":"GaPSE.integrand_ξ_LD_Lensing\nGaPSE.integrand_ξ_LD_IntegratedGP","category":"page"},{"location":"LD_Correlations_2/#GaPSE.integrand_ξ_LD_Lensing","page":"LD TPCFs","title":"GaPSE.integrand_ξ_LD_Lensing","text":"integrand_ξ_LD_Lensing(\n IP1::Point, IP2::Point,\n P1::Point, P2::Point,\n y, cosmo::Cosmology;\n Δχ_min::Float64 = 1e-4) ::Float64\n\nintegrand_ξ_LD_Lensing(\n χ1::Float64, χ2::Float64,\n s1::Float64, s2::Float64,\n y, cosmo::Cosmology; kwargs...) ::Float64\n\nReturn the integrand of the Two-Point Correlation Function (TPCF) of the Lensing auto-correlation effect arising from the Luminosity Distance (LD) perturbations.\n\nIn the first method, you should pass the two extreme Points (P1 and P2) and the two intermediate integrand Points (IP1 and IP2) where to evaluate the function. In the second method (that internally recalls the first), you must provide the four corresponding comoving distances s1, s2, χ1, χ2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this term is the following:\n\nbeginsplit\n f^kappakappa (chi_1 chi_2 s_1 s_2 y) = \n mathcalJ^kappakappa_alpha left\n mathcalJ^kappakappa_00I^0_0(Deltachi) + \n mathcalJ^kappakappa_02 I^0_2(Deltachi) +\n mathcalJ^kappakappa_31I^3_1(Deltachi) +\n mathcalJ^kappakappa_22I^2_2(Deltachi)\n right nonumber \nendsplit\n\nwith\n\nbeginsplit\n mathcalJ^kappakappa_alpha = \n frac\n mathcalH_0^4 Omega_mathrmM0^2 D(chi_1) D(chi_2)\n \n s_1 s_2 a(chi_1) a(chi_2)\n (chi_1 - s_1)(chi_2 - s_2)\n \n \n mathcalJ^kappakappa_00 = \n -frac 3 chi_1^2 chi_2^24 Deltachi^4 (y^2 - 1)\n left\n 8 y (chi_1^2 + chi_2^2) - 9chi_1chi_2y^2 - \n 7chi_1chi_2\n right \n \n \n mathcalJ^kappakappa_02 = \n -frac 3 chi_1^2 chi_2^22 Deltachi^4(y^2 - 1)\n left\n 4 y (chi_1^2 + chi_2^2) - 3 chi_1 chi_2 y^2 -\n 5 chi_1 chi_2\n right \n \n \n mathcalJ^kappakappa_31 = 9 y Deltachi^2\n \n \n mathcalJ^kappakappa_22 = \n frac9 chi_1 chi_24 Deltachi^4\n left\n 2(chi_1^4 + chi_2^4)(7 y^2 - 3) - \n 16 y chi_1 chi_2 (chi_1^2 + chi_2^2)(y^2 + 1) + \n right\n leftqquadqquadqquad\n chi_1^2 chi_2^2 (11y^4 + 14y^2 + 23) \n right nonumber\n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathfrakR_1 = mathfrakR(s_1), ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathfrakR(s) = 1 - frac1mathcalH(s) s \nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nThis function is used inside ξ_LD_Lensing with trapz() from the Trapz Julia package.\n\nInputs\n\nIP1::Point, IP2::Point, P1::Point, P2::Point or χ1, χ2, s1, s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters Omega_mathrmM0, ...\n\nKeyword arguments\n\nΔχ_min::Float64 = 1e-4 : when Deltachi = sqrtchi_1^2 + chi_2^2 - 2 chi_1 chi_2 y to 0^+, some I_ell^n term diverges, but the overall parenthesis has a known limit:\nlim_chito 0^+ left(J^kappakappa_00 I^0_0(Deltachi) + \n J^kappakappa_02 I^0_2(Deltachi) + \n J^kappakappa_31 I^3_1(Deltachi) + J^kappakappa_22 I^2_2(Deltachi)\n right) = \n frac415 left(5 sigma_2 + frac23 σ_0 s_1^2 chi_2^2right)\n\nSee also: Point, Cosmology, ξ_LD_multipole, map_ξ_LD_multipole, print_map_ξ_LD_multipole\n\n\n\n\n\n","category":"function"},{"location":"LD_Correlations_2/#GaPSE.integrand_ξ_LD_IntegratedGP","page":"LD TPCFs","title":"GaPSE.integrand_ξ_LD_IntegratedGP","text":"integrand_ξ_LD_IntegratedGP(\n IP1::Point, IP2::Point,\n P1::Point, P2::Point,\n y, cosmo::Cosmology) ::Float64\n\nintegrand_ξ_LD_IntegratedGP(\n χ1::Float64, χ2::Float64,\n s1::Float64, s2::Float64,\n y, cosmo::Cosmology; kwargs...) ::Float64\n\nReturn the integrand of the Two-Point Correlation Function (TPCF) of the Integrated Gravitational Potential (GP) auto-correlation effect arising from the Luminosity Distance (LD) perturbations.\n\nIn the first method, you should pass the two extreme Points (P1 and P2) and the two intermediate integrand Points (IP1 and IP2) where to evaluate the function. In the second method (that internally recalls the first), you must provide the four corresponding comoving distances s1, s2, χ1, χ2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this term is the following:\n\nbeginsplit\n f^intphiintphi (chi_1 chi_2 s_1 s_2 y) = \n mathcalJ^intphiintphi_40\n tildeI^4_0(Deltachi) \nendsplit\n\nwith\n\nbeginsplit\n mathcalJ^intphiintphi_40 = \n frac\n 9 mathcalH_0^4 Omega_mathrmM0^2 D(chi_1) D(chi_2) Deltachi^4\n a(chi_1) a(chi_2) s_1 s_2 \n left\n s_2 mathcalH(chi_2) mathfrakR_2(f(chi_2) - 1) - 1\n right times \n left\n s_1 mathcalH(chi_1) mathfrakR_1(f(chi_1) - 1) - 1\n right \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathfrakR_1 = mathfrakR(s_1), ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathfrakR(s) = 1 - frac1mathcalH(s) s \nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nThis function is used inside ξ_LD_IntegratedGP with trapz() from the Trapz Julia package.\n\nInputs\n\nP1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters Omega_mathrmM0, ...\n\nSee also: Point, Cosmology, ξ_LD_multipole, map_ξ_LD_multipole, print_map_ξ_LD_multipole\n\n\n\n\n\n","category":"function"},{"location":"LD_Correlations_2/#Two-Point-Cross-Correlation-Functions-integrands","page":"LD TPCFs","title":"Two-Point Cross-Correlation Functions integrands","text":"","category":"section"},{"location":"LD_Correlations_2/","page":"LD TPCFs","title":"LD TPCFs","text":"GaPSE.integrand_ξ_LD_Lensing_LocalGP\nGaPSE.integrand_ξ_LD_Doppler_IntegratedGP\nGaPSE.integrand_ξ_LD_LocalGP_IntegratedGP\nGaPSE.integrand_ξ_LD_Lensing_IntegratedGP\nGaPSE.integrand_ξ_LD_Lensing_Doppler","category":"page"},{"location":"LD_Correlations_2/#GaPSE.integrand_ξ_LD_Lensing_LocalGP","page":"LD TPCFs","title":"GaPSE.integrand_ξ_LD_Lensing_LocalGP","text":"integrand_ξ_LD_Lensing_LocalGP(\n IP::Point, P1::Point, P2::Point,\n y, cosmo::Cosmology ) ::Float64\n\nintegrand_ξ_LD_Lensing_LocalGP(\n χ1::Float64, s1::Float64, s2::Float64,\n y, cosmo::Cosmology; kwargs... ) ::Float64\n\nReturn the integrand of the Two-Point Correlation Function (TPCF) given by the cross correlation between the Lensing and the Local Gravitational Potential (GP) effects arising from the Luminosity Distance (LD) perturbations.\n\nIn the first method, you should pass the two extreme Points (P1 and P2) and the intermediate integrand Point (IP) where to evaluate the function. In the second method (that internally recalls the first), you must provide the three corresponding comoving distances s1, s2, χ1. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this integrand is the following:\n\nbeginsplit\n f^kappa phi (s_1 s_2 y) = \n mathcalJ^kappa phi_alpha left\n mathcalJ^kappa phi_31 I_1^3(Deltachi_1) + \n mathcalJ^kappa phi_22 I_2^2(Deltachi_1)\n right nonumber \nendsplit\n\nwith\n\nbeginsplit\n mathcalJ^kappa phi_alpha =\n frac\n 9 mathcalH_0^4 Omega_mathrmM0^2 D_2 s_2\n 4 a_2 s_1 (1 + mathfrakR_2)\n fracD(chi_1)(s_1 - chi_1)a(chi_1)\n \n \n mathcalJ^kappa phi_31 = -2 y Deltachi_1^2 \n \n \n mathcalJ^kappa phi_22 = chi_1 s_2 (1 - y^2) \n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathfrakR_1 = mathfrakR(s_1), ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathfrakR(s) = 1 - frac1mathcalH(s) s \nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nThis function is used inside ξ_LD_Lensing_LocalGP with trapz() from the Trapz Julia package.\n\nInputs\n\nIP::Point, P1::Point and P2::Point, or χ1,s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters Omega_mathrmM0, ...\n\nSee also: Point, Cosmology, ξ_LD_multipole, map_ξ_LD_multipole, print_map_ξ_LD_multipole\n\n\n\n\n\n","category":"function"},{"location":"LD_Correlations_2/#GaPSE.integrand_ξ_LD_Doppler_IntegratedGP","page":"LD TPCFs","title":"GaPSE.integrand_ξ_LD_Doppler_IntegratedGP","text":"integrand_ξ_LD_Doppler_IntegratedGP(\n IP::Point, P1::Point, P2::Point,\n y, cosmo::Cosmology ) ::Float64\n\nintegrand_ξ_LD_Doppler_IntegratedGP(\n χ2::Float64, s1::Float64, s2::Float64,\n y, cosmo::Cosmology; kwargs... ) ::Float64\n\nReturn the integrand of the Two-Point Correlation Function (TPCF) given by the cross correlation between the Doppler and the Integrated Gravitational Potential (GP) effects arising from the Luminosity Distance (LD) perturbations.\n\nIn the first method, you should pass the two extreme Points (P1 and P2) and the intermediate integrand Point (IP) where to evaluate the function. In the second method (that internally recalls the first), you must provide the three corresponding comoving distances s1, s2, χ2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this integrand is the following:\n\nbeginsplit\n f^v_parallel intphi left(chi_2 s_1 s_2 y right) = \n mathcalJ^v_parallel intphi_31 I_1^3(Deltachi_2) \nendsplit\n\nwith\n\nbeginsplit\n mathcalJ^v_parallel intphi_31 =\n 3 mathcalH_1 f_1 D_1 mathcalH_0^2 Omega_mathrmM0 mathfrakR_1 \n frac\n D(chi_2)(s_1 - chi_2 y)\n \n a(chi_2) s_2\n Deltachi_2^2 left\n s_2 mathfrakR_2 mathcalH(chi_2)(f_2 -1) - 1\n right \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathfrakR_1 = mathfrakR(s_1), ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathfrakR(s) = 1 - frac1mathcalH(s) s \nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nThis function is used inside ξ_LD_Doppler_IntegratedGP with trapz() from the Trapz Julia package.\n\nInputs\n\nIP::Point, P1::Point and P2::Point, or χ2,s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters Omega_mathrmM0, ...\n\nSee also: Point, Cosmology, ξ_LD_multipole, map_ξ_LD_multipole, print_map_ξ_LD_multipole\n\n\n\n\n\n","category":"function"},{"location":"LD_Correlations_2/#GaPSE.integrand_ξ_LD_LocalGP_IntegratedGP","page":"LD TPCFs","title":"GaPSE.integrand_ξ_LD_LocalGP_IntegratedGP","text":"integrand_ξ_LD_LocalGP_IntegratedGP(\n IP::Point, P1::Point, P2::Point,\n y, cosmo::Cosmology ) ::Float64\n\nintegrand_ξ_LD_LocalGP_IntegratedGP(\n χ2::Float64, s1::Float64, s2::Float64,\n y, cosmo::Cosmology;\n kwargs... ) ::Float64\n\nReturn the integrand of the Two-Point Correlation Function (TPCF) given by the cross correlation between the Local Gravitational Potential (GP) and the Integrated GP effects arising from the Luminosity Distance (LD) perturbations.\n\nIn the first method, you should pass the two extreme Points (P1 and P2) and the intermediate integrand Point (IP) where to evaluate the function. In the second method (that internally recalls the first), you must provide the three corresponding comoving distances s1, s2, χ1. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this integrand is the following:\n\nbeginsplit\n f^phiintphi (s_1 s_2 y) = \n mathcalJ^phi intphi_40 tildeI^4_0(Deltachi_2)\n \nendsplit\n\nwith\n\nbeginsplit\n mathcalJ^phi intphi_40 =\n frac9 mathcalH_0^4 Omega_mathrmM0^2 D_12 a_1 \n (mathfrakR_1 + 1)\n fracD(chi_2) Deltachi_2^4a(chi_2)\n left\n mathcalH(chi_2)(f(chi_2) - 1)mathfrakR_2 - frac1s_2\n right \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathfrakR_1 = mathfrakR(s_1), ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathfrakR(s) = 1 - frac1mathcalH(s) s \nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nThis function is used inside ξ_LD_LocalGP_IntegratedGP with trapz() from the Trapz Julia package.\n\nInputs\n\nIP::Point, P1::Point and P2::Point, or χ2,s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters Omega_mathrmM0, ...\n\nSee also: Point, Cosmology, ξ_LD_multipole, map_ξ_LD_multipole, print_map_ξ_LD_multipole\n\n\n\n\n\n","category":"function"},{"location":"LD_Correlations_2/#GaPSE.integrand_ξ_LD_Lensing_IntegratedGP","page":"LD TPCFs","title":"GaPSE.integrand_ξ_LD_Lensing_IntegratedGP","text":"integrand_ξ_LD_Lensing_IntegratedGP(\n IP1::Point, IP2::Point,\n P1::Point, P2::Point,\n y, cosmo::Cosmology ) ::Float64\n\nintegrand_ξ_LD_Lensing_IntegratedGP(\n χ1::Float64, χ2::Float64,\n s1::Float64, s2::Float64,\n y, cosmo::Cosmology;\n kwargs... ) ::Float64\n\nReturn the integrand of the Two-Point Correlation Function (TPCF) given by the cross correlation between the Lensing and the Integrated Gravitational Potential (GP) effects arising from the Luminosity Distance (LD) perturbations.\n\nIn the first method, you should pass the two extreme Points (P1 and P2) and the two intermediate integrand Points (IP1 and IP2) where to evaluate the function. In the second method (that internally recalls the first), you must provide the four corresponding comoving distances s1, s2, χ1, χ2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this integrand is the following:\n\nbeginsplit\n f^kappaintphi (chi_1 chi_2 s_1 s_2 y) = \n mathcalJ^kappaintphi_alphaleft \n mathcalJ^kappaintphi_31 I_1^3(Deltachi) + \n mathcalJ^kappaintphi_22 I_2^2(Deltachi) \n right \nendsplit\n\nwith\n\nbeginsplit\n mathcalJ^kappaintphi_alpha =\n frac92 mathcalH_0^4 Omega_mathrmM0^2 \n frac\n D(chi_1) D(chi_2) chi_2 (s_1 - chi_1)\n \n s_1 a(chi_1) a(chi_2)\n \n left\n mathcalH(chi_2)(f(chi_2) - 1)mathfrakR_2 -frac1s_2 \n right\n \n \n mathcalJ^kappaintphi_31 = -2 y Deltachi^2\n \n \n mathcalJ^kappaintphi_22 = chi_1 chi_2(1 - y^2) \n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathfrakR_1 = mathfrakR(s_1), ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathfrakR(s) = 1 - frac1mathcalH(s) s \nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nThis function is used inside ξ_LD_Lensing_IntegratedGP with trapz() from the Trapz Julia package.\n\nInputs\n\nIP1::Point, IP2::Point, P1::Point, P2::Point or χ1, χ2, s1, s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters Omega_mathrmM0, ...\n\nSee also: Point, Cosmology, ξ_LD_multipole, map_ξ_LD_multipole, print_map_ξ_LD_multipole\n\n\n\n\n\n","category":"function"},{"location":"LD_Correlations_2/#GaPSE.integrand_ξ_LD_Lensing_Doppler","page":"LD TPCFs","title":"GaPSE.integrand_ξ_LD_Lensing_Doppler","text":"integrand_ξ_LD_Lensing_Doppler(\n IP::Point, P1::Point, P2::Point,\n y, cosmo::Cosmology ) ::Float64\n\nintegrand_ξ_LD_Lensing_Doppler(\n χ1::Float64, s1::Float64, s2::Float64,\n y, cosmo::Cosmology ) ::Float64\n\nReturn the integrand of the Two-Point Correlation Function (TPCF) given by the cross correlation between the Lensing and the Doppler effects arising from the Luminosity Distance (LD) perturbations.\n\nIn the first method, you should pass the two extreme Points (P1 and P2) and the intermediate integrand Point (IP) where to evaluate the function. In the second method (that internally recalls the first), you must provide the three corresponding comoving distances s1, s2, χ1. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this integrand is the following:\n\nbeginsplit\n f^kappa v_parallel (chi_1 s_1 s_2 y) = \n mathcalJ^kappa v_parallel_alpha times \n left\n mathcalJ^kappa v_parallel_00 I_0^0(Deltachi_1) + \n mathcalJ^kappa v_parallel_02 I_2^0(Deltachi_1) + \n mathcalJ^kappa v_parallel_04 I_4^0(Deltachi_1) + \n mathcalJ^kappa v_parallel_20 I_0^2(Deltachi_1)\n right \nendsplit\n\nwith\n\nbeginsplit\n mathcalJ^kappa v_parallel_alpha = \n mathcalH_0^2 Omega_mathrmM0 D_2 f_2 mathcalH_2 mathfrakR_2 \n fracD(chi_1) (chi_1 - s_1)a(chi_1) s_1\n \n \n mathcalJ^kappa v_parallel_00 = \n frac115\n left\n chi_1^2 y + chi_1(4 y^2 - 3) s_2 - 2 y s_2^2\n right\n \n \n mathcalJ^kappa v_parallel_02 = \n frac142 Deltachi_1^2\n left\n 4 chi_1^4 y + 4 chi_1^3 (2 y^2 - 3) s_2 +\n chi_1^2 y (11 - 23 y^2) s_2^2 +\n right\n leftqquadqquadqquad\n chi_1 (23 y^2 - 3) s_2^3 - 8 y s_2^4\n right nonumber\n \n \n mathcalJ^kappa v_parallel_04 = \n frac170 Deltachi_1^2 \n left\n 2chi_1^4 y + 2 chi_1^3 (2 y^2 - 3) s_2 -\n chi_1^2 y (y^2 + 5) s_2^2 + \n right\n leftqquadqquadqquad\n chi_1(y^2 + 9) s_2^3 - 4 y s_2^4\n right nonumber\n \n \n mathcalJ^kappa v_parallel_20 = y Deltachi_1^2 \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathfrakR_1 = mathfrakR(s_1), ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathfrakR(s) = 1 - frac1mathcalH(s) s \nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nThis function is used inside ξ_LD_Lensing_Doppler with trapz() from the Trapz Julia package.\n\nInputs\n\nIP::Point, P1::Point and P2::Point, or χ2,s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters Omega_mathrmM0, ...\n\nSee also: Point, Cosmology, ξ_LD_multipole, map_ξ_LD_multipole, print_map_ξ_LD_multipole\n\n\n\n\n\n","category":"function"},{"location":"LD_Correlations_2/#Two-Point-Cross-Correlation-Function-multipoles","page":"LD TPCFs","title":"Two-Point Cross-Correlation Function multipoles","text":"","category":"section"},{"location":"LD_Correlations_2/","page":"LD TPCFs","title":"LD TPCFs","text":"GaPSE.integrand_ξ_LD_multipole\nGaPSE.ξ_LD_multipole\nGaPSE.map_ξ_LD_multipole\nGaPSE.print_map_ξ_LD_multipole","category":"page"},{"location":"LD_Correlations_2/#GaPSE.integrand_ξ_LD_multipole","page":"LD TPCFs","title":"GaPSE.integrand_ξ_LD_multipole","text":"integrand_ξ_LD_multipole(s1, s, μ, effect::Function, cosmo::Cosmology;\n L::Int = 0, use_windows::Bool = true, kwargs...)\n\nintegrand_ξ_LD_multipole(s1, s, μ, effect::String, cosmo::Cosmology; kwargs...)\n\nReturn the integrand on mu = hatmathbfs_1 cdot hatmathbfs of the chosen perturbation of the Luminosity Distance (LD) Two-Point Correlation Function (TPCF) term, i.e. the following function f(s_1 s mu):\n\n f_L(s_1 s mu) = xi left(s_1 s_2 yright) \n mathcalL_L(mu) times \n begincases \n frac1mathcalNmathcalF(s mu) quad mathrmuse_windows == true \n 1 quadquad mathrmuse_windows == false\n endcases\n\nwhere:\n\ns_2 = s_2(s_1 s mu) = sqrts_1^2 + s^2 + 2 s_1 s mu \ny = costheta = hatmathbfs_1 cdot hatmathbfs_2 = fracmu s + s_1s_2(s_1 s mu)\nxi is the corresponding LD TPCF effect\nmathcalL_L(mu) is the Legendre polynomial of order L\nmathcalF(s mu) is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)\nmathcalN is the integrated window function norm (check the documentation of WindowFIntegrated)\n\nIn the former method you have to pass as an input the LD effect function you want to integrate, while in the (recommended) latter one it's necessary to specify the name of the LD TPCF term among the following:\n\nauto_doppler , auto_lensing , auto_localgp , auto_integratedgp , lensing_doppler , doppler_lensing , doppler_localgp , localgp_doppler , doppler_integratedgp , integratedgp_doppler , lensing_localgp , localgp_lensing , lensing_integratedgp , integratedgp_lensing , localgp_integratedgp , integratedgp_localgp ,\n\nto which correspond the following functions, respectively:\n\nξ_LD_Doppler , ξ_LD_Lensing , ξ_LD_LocalGP , ξ_LD_IntegratedGP , ξ_LD_Lensing_Doppler , ξ_LD_Doppler_Lensing , ξ_LD_Doppler_LocalGP , ξ_LD_LocalGP_Doppler , ξ_LD_Doppler_IntegratedGP , ξ_LD_IntegratedGP_Doppler , ξ_LD_Lensing_LocalGP , ξ_LD_LocalGP_Lensing , ξ_LD_Lensing_IntegratedGP , ξ_LD_IntegratedGP_Lensing , ξ_LD_LocalGP_IntegratedGP , ξ_LD_IntegratedGP_LocalGP ,\n\nInternally, the second method recall the first, so all the keyword arguments are in common.\n\nNote that these is an internal conversion of coordiate sistems from (s1, s, μ) to (s1, s2, y) thorugh the functions y and s2. The inverse relations are:\n\ns = s(s_1 s_2 y) = sqrts_1^2 + s_2^2 - 2 s_1 s_2 y\nmu = costheta = hatmathbfs_1 cdot hatmathbfs = fracy s_2 - s_1s(s_1 s_2 y).\n\nInputs\n\ns1: the comoving distance where must be evaluated the integral\ns: the comoving distance from s1 where must be evaluated the integral\nμ: the cosine between s1 and s where must be evaluated the integral\neffect::Function or effect::String : name/function you want to consider, among the ones inside GaPSE.GR_EFFECTS_LD/GaPSE.VEC_ξs_LD respectively.\ncosmo::Cosmology: cosmology to be used in this computation\n\nOptional arguments\n\nL::Int = 0: order of the Legendre polynomial to be used\nuse_windows::Bool = false: tells if the integrand must consider the two window function phi and mathcalF\nkwargs... : other keyword arguments that will be passed to the selected GR TPCF effect (ξ_LD_Doppler, ξ_LD_Lensing, ...)\n\nSee also: ξ_LD_multipole, map_ξ_LD_multipole, print_map_ξ_LD_multipole, WindowFIntegrated, ϕ, Cosmology, y, s2, GR_EFFECTS_LD, GaPSE.VEC_ξs_LD\n\n\n\n\n\n","category":"function"},{"location":"LD_Correlations_2/#GaPSE.ξ_LD_multipole","page":"LD TPCFs","title":"GaPSE.ξ_LD_multipole","text":"ξ_LD_multipole(\n s1, s, effect::Function, cosmo::Cosmology;\n L::Int = 0, alg::Symbol = :lobatto, \n use_windows::Bool = true, \n N_lob::Int = 100, N_trap::Int = 200, \n atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,\n enhancer::Float64 = 1e6, \n kwargs...) ::Float64\n\nξ_LD_multipole(s1, s, effect::String, cosmo::Cosmology; \n kwargs...) ::Float64\n\nEvaluate the multipole of order L of the chosen perturbation of the Luminosity Distance (LD) Two-Point Correlation Function (TPCF) term i.e. the following function xi_L(s_1 s):\n\n xi_L(s_1 s) = frac2 L + 12 int_-1^+1 mathrmdmu \n xi (s_1 s_2 costheta) mathcalL_L(mu) times\n begincases \n frac1mathcalNmathcalF(s mu) quad mathrmuse_windows == true \n 1 quadquad mathrmuse_windows == false\n endcases\n\nwhere:\n\ns_2 = s_2(s_1 s mu) = sqrts_1^2 + s^2 + 2 s_1 s mu \ny = costheta = hatmathbfs_1 cdot hatmathbfs_2 = fracmu s + s_1s_2(s_1 s mu)\nxi is the corresponding LD TPCF effect\nmathcalL_L(mu) is the Legendre polynomial of order L\nmathcalF(s mu) is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)\nmathcalN is the integrated window function norm (check the documentation of WindowFIntegrated) \n\nIn the former method you have to pass as an input the LD effect function you want to integrate, while in the (recommended) latter one it's necessary to specify the name of the LD TPCF term among the following:\n\nauto_doppler , auto_lensing , auto_localgp , auto_integratedgp , lensing_doppler , doppler_lensing , doppler_localgp , localgp_doppler , doppler_integratedgp , integratedgp_doppler , lensing_localgp , localgp_lensing , lensing_integratedgp , integratedgp_lensing , localgp_integratedgp , integratedgp_localgp ,\n\nto which correspond the following functions:\n\nξ_LD_Doppler , ξ_LD_Lensing , ξ_LD_LocalGP , ξ_LD_IntegratedGP , ξ_LD_Lensing_Doppler , ξ_LD_Doppler_Lensing , ξ_LD_Doppler_LocalGP , ξ_LD_LocalGP_Doppler , ξ_LD_Doppler_IntegratedGP , ξ_LD_IntegratedGP_Doppler , ξ_LD_Lensing_LocalGP , ξ_LD_LocalGP_Lensing , ξ_LD_Lensing_IntegratedGP , ξ_LD_IntegratedGP_Lensing , ξ_LD_LocalGP_IntegratedGP , ξ_LD_IntegratedGP_LocalGP ,\n\nInternally, the second method recall the first, so all the keyword arguments are in common.\n\nNote that these is an internal conversion of coordiate sistems from (s1, s, μ) to (s1, s2, y) thorugh the functions y and s2. The inverse relations are:\n\ns = s(s_1 s_2 y) = sqrts_1^2 + s_2^2 - 2 s_1 s_2 y\nmu = costheta = hatmathbfs_1 cdot hatmathbfs = fracy s_2 - s_1s(s_1 s_2 y).\n\nInputs\n\ns1: the comoving distance where must be evaluated the integral\ns: the comoving distance from s1 where must be evaluated the integral\neffect::Function or effect::String : name/function you want to consider, among the ones inside GaPSE.GR_EFFECTS_LD/GaPSE.VEC_ξs_LD respectively.\ncosmo::Cosmology: cosmology to be used in this computation\n\nOptional arguments\n\nL::Int = 0: order of the Legendre polynomial to be used\nalg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):\n:quad -> the integration over mu will be preformed through the Julia function quadgk \nfrom the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n:trap -> the integration over mu will be preformed through the Julia function trapz \nfrom the Trapz.jl Julia package, that uses the simple trapezoidal rulae.\n:lobatto -> the integration over mu will be preformed through the Julia function gausslobatto \nfrom the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!\nuse_windows::Bool = false: tells if the integrand must consider the two window function phi and mathcalF\nN_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\nN_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\nkwargs... : other keyword arguments that will be passed to the selected LD TPCF effect (ξ_LD_Doppler, ξ_LD_Lensing, ...)\n\nSee also: integrand_ξ_LD_multipole, map_ξ_LD_multipole, print_map_ξ_LD_multipole WindowFIntegrated, Cosmology, y, s2, GR_EFFECTS_LD, VEC_ξs_LD\n\n\n\n\n\n","category":"function"},{"location":"LD_Correlations_2/#GaPSE.map_ξ_LD_multipole","page":"LD TPCFs","title":"GaPSE.map_ξ_LD_multipole","text":"map_ξ_LD_multipole(cosmo::Cosmology,\n effect::Union{String,Function}, ss = nothing;\n s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,\n N_lob::Int = 100, N_trap::Int = 50,\n atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,\n enhancer::Float64=1e6, N_log::Int = 1000, \n pr::Bool = true,\n kwargs...) ::Tuple{Vector{Float64}, Vector{Float64}}\n\nEvaluate the multipole of order L of the chosen perturbation of the Luminosity Distance (LD) Two-Point Correlation Function (TPCF) term for all the comoving distance values stored inside ss. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). If s1 = nothing, it is set s1 = cosmo.s_eff.\n\nThe function evaluated is then the following xi_L(s_1 s):\n\n xi_L(s_1 s) = frac2 L + 12 int_-1^+1 mathrmdmu \n xi (s_1 s_2 costheta) mathcalL_L(mu) times\n begincases \n frac1mathcalNmathcalF(s mu) quad mathrmuse_windows == true \n 1 quadquad mathrmuse_windows == false\n endcases\n\nwhere:\n\ns_2 = s_2(s_1 s mu) = sqrts_1^2 + s^2 + 2 s_1 s mu \ny = costheta = hatmathbfs_1 cdot hatmathbfs_2 = fracmu s + s_1s_2(s_1 s mu)\nxi is the corresponding LD TPCF effect\nmathcalL_L(mu) is the Legendre polynomial of order L\nmathcalF(s mu) is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)\nmathcalN is the integrated window function norm (check the documentation of WindowFIntegrated) \n\nNote that these is an internal conversion of coordiate sistems from (s1, s, μ) to (s1, s2, y) thorugh the functions y and s2. The inverse relations are:\n\ns = s(s_1 s_2 y) = sqrts_1^2 + s_2^2 - 2 s_1 s_2 y\nmu = costheta = hatmathbfs_1 cdot hatmathbfs = fracy s_2 - s_1s(s_1 s_2 y).\n\nInputs\n\ncosmo::Cosmology : cosmology to be used in this computation\neffect::Union{String,Function} : the GR effect TPCF you want to consider; you may specify the name of the effect as one of the following strings (recommended):\nauto_doppler , auto_lensing , auto_localgp , auto_integratedgp , lensing_doppler , doppler_lensing , doppler_localgp , localgp_doppler , doppler_integratedgp , integratedgp_doppler , lensing_localgp , localgp_lensing , lensing_integratedgp , integratedgp_lensing , localgp_integratedgp , integratedgp_localgp ,\nor directly the name of the function among the following: \nξ_LD_Doppler , ξ_LD_Lensing , ξ_LD_LocalGP , ξ_LD_IntegratedGP , ξ_LD_Lensing_Doppler , ξ_LD_Doppler_Lensing , ξ_LD_Doppler_LocalGP , ξ_LD_LocalGP_Doppler , ξ_LD_Doppler_IntegratedGP , ξ_LD_IntegratedGP_Doppler , ξ_LD_Lensing_LocalGP , ξ_LD_LocalGP_Lensing , ξ_LD_Lensing_IntegratedGP , ξ_LD_IntegratedGP_Lensing , ξ_LD_LocalGP_IntegratedGP , ξ_LD_IntegratedGP_LocalGP ,\nss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). This is why it is returned also the vector of the \"input\" values.\n\nOptional arguments\n\ns1 = nothing : comoving distance from the observer where the TPCF should be evaluated; if s1 = nothing, it is automatically set s1 = cosmo.s_eff from the given input cosmo::Cosmology.\nL::Int = 0: order of the Legendre polynomial to be used\nalg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):\n:quad -> the integration over mu will be preformed through the Julia function quadgk \nfrom the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n:trap -> the integration over mu will be preformed through the Julia function trapz \nfrom the Trapz.jl Julia package, that uses the simple trapezoidal rulae.\n:lobatto -> the integration over mu will be preformed through the Julia function gausslobatto \nfrom the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!\nuse_windows::Bool = false: tells if the integrand must consider the two window function phi and mathcalF\nN_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\nN_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\nN_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing \npr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)\nkwargs... : other keyword arguments that will be passed to the selected LD TPCF effect (ξ_LD_Doppler, ξ_LD_Lensing, ...)\n\nReturns\n\nA Tuple{Vector{Float64}, Vector{Float64}}, which has as first element the ss vector and as second one the corresponding ξ value evaluated.\n\nSee also: integrand_ξ_LD_multipole, ξ_LD_multipole, print_map_ξ_LD_multipole, WindowFIntegrated, Cosmology, y, s2, GR_EFFECTS_LD, GaPSE.VEC_ξs_LD\n\n\n\n\n\n","category":"function"},{"location":"LD_Correlations_2/#GaPSE.print_map_ξ_LD_multipole","page":"LD TPCFs","title":"GaPSE.print_map_ξ_LD_multipole","text":"print_map_ξ_LD_multipole(\n cosmo::Cosmology, out::String,\n effect::Union{String,Function},\n ss = nothing;\n s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,\n N_lob::Int = 100, N_trap::Int = 50,\n atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,\n enhancer::Float64=1e6, N_log::Int = 1000, \n pr::Bool = true,\n kwargs...)\n\nEvaluate the multipole of order L of the of the chosen perturbation of the Luminosity Distance (LD) Two-Point Correlation Function (TPCF) term for all the comoving distance values stored inside ss, and print the results (with all the options used) in a file named out. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). If s1 = nothing, it is set s1 = cosmo.s_eff.\n\nThe function evaluated is then the following xi_L(s_1 s):\n\n xi_L(s_1 s) = frac2 L + 12 int_-1^+1 mathrmdmu \n xi (s_1 s_2 costheta) mathcalL_L(mu) times\n begincases \n frac1mathcalNmathcalF(s mu) quad mathrmuse_windows == true \n 1 quadquad mathrmuse_windows == false\n endcases\n\nwhere:\n\ns_2 = s_2(s_1 s mu) = sqrts_1^2 + s^2 + 2 s_1 s mu \ny = costheta = hatmathbfs_1 cdot hatmathbfs_2 = fracmu s + s_1s_2(s_1 s mu)\nxi is the corresponding LD TPCF effect\nmathcalL_L(mu) is the Legendre polynomial of order L\nmathcalF(s mu) is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)\nmathcalN is the integrated window function norm (check the documentation of WindowFIntegrated) \n\nNote that these is an internal conversion of coordiate sistems from (s1, s, μ) to (s1, s2, y) thorugh the functions y and s2. The inverse relations are:\n\ns = s(s_1 s_2 y) = sqrts_1^2 + s_2^2 - 2 s_1 s_2 y\nmu = costheta = hatmathbfs_1 cdot hatmathbfs = fracy s_2 - s_1s(s_1 s_2 y).\n\nInputs\n\ncosmo::Cosmology : cosmology to be used in this computation\neffect::Union{String,Function} : the GR effect TPCF you want to consider; you may specify the name of the effect as one of the following strings (recommended):\nauto_doppler , auto_lensing , auto_localgp , auto_integratedgp , lensing_doppler , doppler_lensing , doppler_localgp , localgp_doppler , doppler_integratedgp , integratedgp_doppler , lensing_localgp , localgp_lensing , lensing_integratedgp , integratedgp_lensing , localgp_integratedgp , integratedgp_localgp ,\nor directly the name of the function among the following: \nξ_LD_Doppler , ξ_LD_Lensing , ξ_LD_LocalGP , ξ_LD_IntegratedGP , ξ_LD_Lensing_Doppler , ξ_LD_Doppler_Lensing , ξ_LD_Doppler_LocalGP , ξ_LD_LocalGP_Doppler , ξ_LD_Doppler_IntegratedGP , ξ_LD_IntegratedGP_Doppler , ξ_LD_Lensing_LocalGP , ξ_LD_LocalGP_Lensing , ξ_LD_Lensing_IntegratedGP , ξ_LD_IntegratedGP_Lensing , ξ_LD_LocalGP_IntegratedGP , ξ_LD_IntegratedGP_LocalGP ,\nout::String : name of the file where the results must be stored.\nss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log).\n\nOptional arguments\n\nThis function recall internally map_ξ_LD_multipole, so the kwargs are the same; we report them for comfortness:\n\ns1 = nothing : comoving distance from the observer where the TPCF should be evaluated; if s1 = nothing, it is automatically set s1 = cosmo.s_eff from the given input cosmo::Cosmology.\nL::Int = 0: order of the Legendre polynomial to be used\nalg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):\n:quad -> the integration over mu will be preformed through the Julia function quadgk \nfrom the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n:trap -> the integration over mu will be preformed through the Julia function trapz \nfrom the Trapz.jl Julia package, that uses the simple trapezoidal rulae.\n:lobatto -> the integration over mu will be preformed through the Julia function gausslobatto \nfrom the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!\nuse_windows::Bool = false: tells if the integrand must consider the two window function phi and mathcalF\nN_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\nN_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\nN_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing \npr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)\nkwargs... : other keyword arguments that will be passed to the selected LD TPCF effect (ξ_LD_Doppler, ξ_LD_Lensing, ...)\n\nSee also: integrand_ξ_LD_multipole, ξ_LD_multipole, print_map_ξ_LD_multipole, WindowFIntegrated, Cosmology, y, s2, GR_EFFECTS_LD, GaPSE.VEC_ξs_LD\n\n\n\n\n\n","category":"function"},{"location":"LD_Correlations_2/#Two-Point-Cross-Correlation-Function-Sum-multipoles","page":"LD TPCFs","title":"Two-Point Cross-Correlation Function Sum multipoles","text":"","category":"section"},{"location":"LD_Correlations_2/","page":"LD TPCFs","title":"LD TPCFs","text":"GaPSE.sum_ξ_LD_multipole\nGaPSE.map_sum_ξ_LD_multipole\nGaPSE.print_map_sum_ξ_LD_multipole","category":"page"},{"location":"LD_Correlations_2/#GaPSE.sum_ξ_LD_multipole","page":"LD TPCFs","title":"GaPSE.sum_ξ_LD_multipole","text":"sum_ξ_LD_multipole(s1, s, cosmo::Cosmology;\n s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,\n N_lob::Int = 100, N_trap::Int = 50,\n atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,\n enhancer::Float64=1e6, N_log::Int = 1000, \n pr::Bool = true,\n kwargs...) ::Tuple{Float64, Vector{Float64}}\n\nEvaluate the multipole of order L of all the two-point cross correlation multipole between the perturbations of the Luminosity Distance (LD) and the Galaxy Number Counts (GNC) and their sum in the comoving distance s1 and a comoving distance s from it for the input cosmo::Cosmology. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThis function makes a for-loop on the GaPSE.GR_EFFECTS_LD strings, calling ξ_LD_multipole for each of them. To each string corresponds pretty intuitively one of the 16 LD effects. They are currently, in order:\n\nauto_doppler , auto_lensing , auto_localgp , auto_integratedgp , lensing_doppler , doppler_lensing , doppler_localgp , localgp_doppler , doppler_integratedgp , integratedgp_doppler , lensing_localgp , localgp_lensing , lensing_integratedgp , integratedgp_lensing , localgp_integratedgp , integratedgp_localgp ,\n\nInputs\n\ns1: the comoving distance where must be evaluated the integral\ns: the comoving distance from s1 where must be evaluated the integral\ncosmo::Cosmology: cosmology to be used in this computation\n\nOptional arguments\n\nThis function recall internally ξ_LD_multipole, so the kwargs are the same; we report them for comfortness:\n\nL::Int = 0: order of the Legendre polynomial to be used\nalg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):\n:quad -> the integration over mu will be preformed through the Julia function quadgk \nfrom the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n:trap -> the integration over mu will be preformed through the Julia function trapz \nfrom the Trapz.jl Julia package, that uses the simple trapezoidal rulae.\n:lobatto -> the integration over mu will be preformed through the Julia function gausslobatto \nfrom the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!\nuse_windows::Bool = false: tells if the integrand must consider the two window function phi and mathcalF\nN_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\nN_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\nkwargs... : other keyword arguments that will be passed to ALL the LD TPCF effect (ξ_LD_Doppler, ξ_LD_Lensing, ...); if one of them has that keyword argument, it will use the given value, otherwise it will be unaffected.\n\nReturns\n\nA tuple containing:\n\nthe sum of all the ξ multipoles as first element\na Vector{Float64} with all the values of each ξ; they are ordered following GR_EFFECTS_LD\n\nSee also: integrand_ξ_LD_multipole, ξ_LD_multipole, map_sum_ξ_LD_multipole, print_map_sum_ξ_LD_multipole, Cosmology, GR_EFFECTS_LD\n\n\n\n\n\n","category":"function"},{"location":"LD_Correlations_2/#GaPSE.map_sum_ξ_LD_multipole","page":"LD TPCFs","title":"GaPSE.map_sum_ξ_LD_multipole","text":"map_sum_ξ_LD_multipole(\n effect::Union{String,Function}, ss = nothing;\n s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,\n N_lob::Int = 100, N_trap::Int = 50,\n atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,\n enhancer::Float64=1e6, N_log::Int = 1000, \n pr::Bool = true,\n kwargs...) ::Tuple{Vector{Float64}, Vector{Float64}, Vector{Vector{Float64}}}\n\nEvaluate the multipole of order L of all the two-point cross correlation multipole between the perturbations of the Luminosity Distance (LD) and the Galaxy Number Counts (GNC) and their sum in the comoving distance s1, for all the comoving distances stored inside ss (representing the comoving distance from s1) for the input cosmo::Cosmology. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). If s1 = nothing, it is set s1 = cosmo.s_eff. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThis function makes a for-loop on the GaPSE.GR_EFFECTS_LD strings, calling map_ξ_LD_multipole for each of them. To each string corresponds pretty intuitively one of the 16 LD effects. They are currently, in order:\n\nauto_doppler , auto_lensing , auto_localgp , auto_integratedgp , lensing_doppler , doppler_lensing , doppler_localgp , localgp_doppler , doppler_integratedgp , integratedgp_doppler , lensing_localgp , localgp_lensing , lensing_integratedgp , integratedgp_lensing , localgp_integratedgp , integratedgp_localgp ,\n\nInputs\n\ncosmo::Cosmology : cosmology to be used in this computation\nss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). This is why it is returned also the vector of the \"input\" values.\n\nOptional arguments\n\nThis function recall internally map_ξ_LD_multipole, so the kwargs are the same; we report them for comfortness:\n\ns1 = nothing : comoving distance from the observer where the TPCF should be evaluated; if s1 = nothing, it is automatically set s1 = cosmo.s_eff from the given input cosmo::Cosmology.\nL::Int = 0: order of the Legendre polynomial to be used\nalg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):\n:quad -> the integration over mu will be preformed through the Julia function quadgk \nfrom the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n:trap -> the integration over mu will be preformed through the Julia function trapz \nfrom the Trapz.jl Julia package, that uses the simple trapezoidal rulae.\n:lobatto -> the integration over mu will be preformed through the Julia function gausslobatto \nfrom the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!\nuse_windows::Bool = false: tells if the integrand must consider the two window function phi and mathcalF\nN_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\nN_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\nN_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing \npr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)\nkwargs... : other keyword arguments that will be passed to ALL the LD TPCF effect (ξ_LD_Doppler, ξ_LD_Lensing, ...); if one of them has that keyword argument, it will use the given value, otherwise it will be unaffected.\n\nReturns\n\nA tuple containing:\n\nas first element, the vector ss itself;\nas second one, the Vector{Float64} of the sum of all the ξ multipoles;\nas third one, a Vector{Vector{Float64}} with all the values of each ξ; they are ordered following GR_EFFECTS_LD\n\nSee also: map_ξ_LD_multipole, sum_ξ_LD_multipole, print_map_sum_ξ_LD_multipole, Cosmology, GR_EFFECTS_LD\n\n\n\n\n\n","category":"function"},{"location":"LD_Correlations_2/#GaPSE.print_map_sum_ξ_LD_multipole","page":"LD TPCFs","title":"GaPSE.print_map_sum_ξ_LD_multipole","text":"print_map_sum_ξ_LD_multipole(\n cosmo::Cosmology, out::String, ss = nothing;\n s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,\n N_lob::Int = 100, N_trap::Int = 50,\n atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,\n enhancer::Float64=1e6, N_log::Int = 1000, \n pr::Bool = true,\n single::Bool = true,\n kwargs...)\n\nEvaluate the multipole of order L of all the two-point cross correlation multipole between the perturbations of the Luminosity Distance (LD) and the Galaxy Number Counts (GNC) and their sum in the comoving distance s1, for all the comoving distances stored inside ss (representing the comoving distance from s1) for the input cosmo::Cosmology; finally, it saves the results inside the file out. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). If s1 = nothing, it is set s1 = cosmo.s_eff. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThis function makes a for-loop on the GaPSE.GR_EFFECTS_LD strings, calling map_ξ_LD_multipole for each of them. To each string corresponds pretty intuitively one of the 16 LD effects. They are currently, in order:\n\nauto_doppler , auto_lensing , auto_localgp , auto_integratedgp , lensing_doppler , doppler_lensing , doppler_localgp , localgp_doppler , doppler_integratedgp , integratedgp_doppler , lensing_localgp , localgp_lensing , lensing_integratedgp , integratedgp_lensing , localgp_integratedgp , integratedgp_localgp ,\n\nInputs\n\ncosmo::Cosmology : cosmology to be used in this computation\nout::String : name of the file where the results must be stored.\nss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log).\n\nOptional arguments\n\nThis function recall internally map_ξ_LD_multipole, so the kwargs are the same; we report them for comfortness:\n\ns1 = nothing : comoving distance from the observer where the TPCF should be evaluated; if s1 = nothing, it is automatically set s1 = cosmo.s_eff from the given input cosmo::Cosmology.\nL::Int = 0: order of the Legendre polynomial to be used\nalg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):\n:quad -> the integration over mu will be preformed through the Julia function quadgk \nfrom the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n:trap -> the integration over mu will be preformed through the Julia function trapz \nfrom the Trapz.jl Julia package, that uses the simple trapezoidal rulae.\n:lobatto -> the integration over mu will be preformed through the Julia function gausslobatto \nfrom the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!\nuse_windows::Bool = false: tells if the integrand must consider the two window function phi and mathcalF\nN_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\nN_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\nN_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing \npr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)\nsingle::Bool = true : if true, all the CFs are printed inside the file of the sum, in a table with 18 columns (first one for ss, second for their sum an the next 16 for each effect). Otherwise, a new directory \"allstandalonesCFs\" is created (in the same path given in out) and they are separately saved in files there placed.\nkwargs... : other keyword arguments that will be passed to ALL the LD TPCF effect (ξ_LD_Doppler, ξ_LD_Lensing, ...); if one of them has that keyword argument, it will use the given value, otherwise it will be unaffected.\n\nSee also: map_ξ_LD_multipole, sum_ξ_LD_multipole, map_sum_ξ_LD_multipole, Cosmology, GR_EFFECTS_LD\n\n\n\n\n\n","category":"function"},{"location":"Cosmology/","page":"Cosmology Struct","title":"Cosmology Struct","text":"DocTestSetup = quote\n using GaPSE\nend","category":"page"},{"location":"Cosmology/#Cosmology-struct","page":"Cosmology Struct","title":"Cosmology struct","text":"","category":"section"},{"location":"Cosmology/","page":"Cosmology Struct","title":"Cosmology Struct","text":"GaPSE.func_ℛ_LD\nGaPSE.func_ℛ_GNC\nGaPSE.CosmoSplines\nGaPSE.Cosmology\nGaPSE.Point ","category":"page"},{"location":"Cosmology/#GaPSE.func_ℛ_LD","page":"Cosmology Struct","title":"GaPSE.func_ℛ_LD","text":"func_ℛ_LD(s, ℋ; s_lim=0.01, ℋ_0 = ℋ0)\n\nGiven in inpuit a comoving distance s and a comoving Hubble parameter ℋ, this function returns the following value:\n\nmathfrakR(s s_mathrmlim)=\n begincases\n 1 - frac1mathcalH s \n quad s s_mathrmlim\n 1 - frac1mathcalH_0 s_mathrmlim \n quad quad 0 leq s leq s_mathrmlim\n endcases\n\nThe 0 leq s leq s_mathrmlim case is used in order to avoid the divergence of the denominator. This function is used inside a Cosmology for the computations concering the Two-Point Correlation Fuctions (TPCFs) relative to the perturbed Luminosity Distance (LD). The default value of the comoving Hubble parameter nowadays is, in natural system (where the speed of light c=1): mathcalH_0 simeq 3335641times10^-4 h_0^-1mathrmMpc\n\nSee also: func_ℛ_GNC, Cosmology, ℋ0\n\n\n\n\n\n","category":"function"},{"location":"Cosmology/#GaPSE.func_ℛ_GNC","page":"Cosmology Struct","title":"GaPSE.func_ℛ_GNC","text":"func_ℛ_GNC(s, ℋ, ℋ_p; s_b = 0.0, 𝑓_evo = 0.0, s_lim=0.01, ℋ_0 = ℋ0)\n\nGiven in input a comoving distance s, a comoving Hubble parameter ℋ and its first derivative value ℋ_p wrt the comoving time tau, this function returns the following value:\n\nmathcalR(s s_mathrmlim)=\n begincases\n 5 s_mathrmb + frac2 - 5 s_mathrmbmathcalH s + \n fracdotmathcalHmathcalH^2 - mathitf_mathrmevo \n quad s s_mathrmlim\n 5 s_mathrmb + \n frac2 - 5 s_mathrmbmathcalH_0 s_mathrmlim + \n fracdotmathcalHmathcalH_0^2 - mathitf_mathrmevo \n quad quad 0 leq s leq s_mathrmlim\n endcases\n\nwhere s_mathrmb is the magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), mathitf_mathrmevo the evolution bias and dotmathcalH = mathrmdmathcalH mathrmdtau.\n\nThe 0 leq s leq s_mathrmlim case is used in order to avoid the divergence of the denominator. This function is used inside a Cosmology for the computations concering the Two-Point Correlation Fuctions (TPCFs) relative to the Galaxy Number Counts (GNC). The default value of the comoving Hubble parameter nowadays is, in natural system (where the speed of light c=1): mathcalH_0 simeq 3335641times10^-4 h_0^-1mathrmMpc\n\nSee also: func_ℛ_GNC, Cosmology, ℋ0\n\n\n\n\n\n","category":"function"},{"location":"Cosmology/#GaPSE.CosmoSplines","page":"Cosmology Struct","title":"GaPSE.CosmoSplines","text":"CosmoSplines(\n z_of_s::Dierckx.Spline1D\n D_of_s::Dierckx.Spline1D\n f_of_s::Dierckx.Spline1D\n ℋ_of_s::Dierckx.Spline1D\n ℋ_p_of_s::Dierckx.Spline1D\n ℛ_LD_of_s::Dierckx.Spline1D\n ℛ_GNC1_of_s::Dierckx.Spline1D\n ℛ_GNC2_of_s::Dierckx.Spline1D\n\n s_of_z::Dierckx.Spline1D\n\n z_eff::Float64\n s_min::Float64\n s_max::Float64\n s_eff::Float64\n\n file_data::String\n names::Vector{String}\n z_min::Float64\n z_max::Float64\n h::Float64\n s_lim::Float64\n z_spline_lim::Float64\n s_spline_lim::Float64\n\n s_b1::Float64\n 𝑓_evo1::Float64\n s_b2::Float64\n 𝑓_evo2::Float64\n)\n\nStruct that contains all the useful cosmological splines. It is used only inside the creation of a Cosmology, check its documentation for further information.\n\nConstructors\n\nCosmoSplines(\n file_data::String, z_min, z_max; \n names::Vector{String} = NAMES_BACKGROUND, h=0.7, \n s_lim = 0.01, z_spline_lim=1000.0, s_b1=0.0, s_b2=nothing,\n 𝑓_evo1=0.0, 𝑓_evo2=nothing\n )\n\nfile_data::String : file containing all the background data; it is expected that such file is a background output of the CLASS (link: https://github.com/lesgourg/class_public) code. It is managed through the struct BackgroundData.\nz_min and z_max : the minimum and maximum redshifts of the survey we want to study.\nnames = NAMES_BACKGROUND : the column names of the file_data. If the colum order change from the default one NAMES_BACKGROUND, you must set as input the vector of string with the correct one, with the SAME names. They are, with the default order:\n[\"z\", \"proper time [Gyr]\", \"conf. time [Mpc]\", \"H [1/Mpc]\", \"comov. dist.\", \"ang.diam.dist.\", \"lum. dist.\", \"comov.snd.hrz.\", \"(.)rhog\", \"(.)rhob\", \"(.)rhocdm\", \"(.)rholambda\", \"(.)rhour\", \"(.)rhocrit\", \"gr.fac. D\", \"gr.fac. f\"] \nh::Float64 : today's Hubble adimensional parameter (H_0 = h * 100 km/(s * Mpc)).\ns_lim::Float64 : the lower-bound value for the functions func_ℛ_LD and func_ℛ_GNC; it is necessary, because ℛ_LD and ℛ_GNC blows up for s rightarrow 0^+. Consequently, if the func_ℛ_LD/func_ℛ_GNC input value is 0 ≤ s < s_lim, the returned value is always func_ℛ_LD(s_lim)/func_ℛ_GNC(s_lim).\nz_spline_lim::Float64 : the upper limit where to cut the cosmological splines (it will be used by CosmoSplines); the recommended value is the recombination era (i.e. z simeq 1000).\ns_spline_lim::Float64 : the comoving distance converted from the redshift z_spline_lim with the spline s_of_z;\ns_b1::Float64 and s_b2::Float64: magnification biases, i.e. the slope of the luminosity function at the luminosity threshold; you can choose to define both of them (if you are interested in the analysis of two galaxy species) or only the former (and leave the latter as nothing, it will be set equal to the former).\n𝑓_evo1::Float64 and 𝑓_evo2::Float64: evolution biases; you can choose to define both of them (if you are interested in the analysis of two galaxy species) or only the former (and leave the latter as nothing, it will be set equal to the former).\n\nSee also: Cosmology\n\n\n\n\n\n","category":"type"},{"location":"Cosmology/#GaPSE.Cosmology","page":"Cosmology Struct","title":"GaPSE.Cosmology","text":"Cosmology(\n IPS::InputPS\n params::CosmoParams\n tools::IPSTools\n windowF::WindowF\n\n z_of_s::Dierckx.Spline1D\n D_of_s::Dierckx.Spline1D\n f_of_s::Dierckx.Spline1D\n ℋ_of_s::Dierckx.Spline1D\n ℋ_p_of_s::Dierckx.Spline1D\n ℛ_LD_of_s::Dierckx.Spline1D\n ℛ_GNC1_of_s::Dierckx.Spline1D\n ℛ_GNC2_of_s::Dierckx.Spline1D\n\n s_of_z::Dierckx.Spline1D\n\n z_eff::Float64\n s_min::Float64\n s_max::Float64\n s_eff::Float64\n s_spline_lim::Float64\n\n volume::Float64\n\n file_data::String\n file_ips::String\n file_windowF::String\n )\n\nStruct that contains all the information that may be used for the Two-Point Correlation Function (TPCF) computations. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nArguments\n\nIPS::InputPS : the matter Input Power Spectrum at present day of the Universe we are focusiong on.\nparams::CosmoParams : options and parameters decided for this Cosmology; check the documentation of CosmoParams for more information.\ntools::IPSTools : all the functions and integrals depending on the Input Power Spectrum; check the documentation of IPSTools for more information.\nwindowF::WindowF : the window function F, defined as:\n beginsplit\n F(xmu theta_mathrmmax) = 4pi \n int_0^theta_mathrmmax mathrmdtheta_1 int_0^pi mathrmd theta \n Thetaleft(frac\n x cos theta + cos theta_1sqrtx^1+2+2xmu - \n cos(theta_mathrmmax) \n right) \n Theta(mu-cos(theta+theta_1)) \n Theta(cos(theta - theta_1)-mu) \n fracsinthetasintheta_1\n sqrt(sinthetasintheta_1)^2-(costhetacostheta_1-mu)^2\n endsplit\nwindowFint::WindowFIntegrated : the Integrated Window Function mathcalF, defined as:\nmathcalF(s mu) = \nint_0^infty mathrmds_1 phi(s_1) \nphileft(sqrts_1^2 + s^2 + 2 s_1 s muright) \n Fleft(fracss_1 mu right)\nwhere phi is the angular part of the survey window function and F(x μ) is the window function.\nWFI_norm::Float64 : the norm of the Integrate Window Function, obtained from:\nmathrmnorm of mathcalF = frac12 int_-1^1 mathrmdmu \nmathcalFleft(s = 10 h_0^-1 mathrmMpc muright) \nz_of_s, D_of_s, f_of_s, ℋ_of_s, ℋ_p_of_s, ℛ_LD_of_s, ℛ_GNC1_of_s, ℛ_GNC2_of_s ::Dierckx.Spline1D : splines obtained from the data stored by BackgroundData applied to the input background data file. Given an input comoving distance s, they return the corresponding value of, respectively:\nthe redshift z;\nthe linear growth factor D (normalized to 1.0 at present day);\nthe linear growth rate f;\nthe comoving Hubble parameter ℋ;\nthe derivative of the comoving Hubble parameter wrt the comoving time ℋ_p; \nℛ_LD, obtained from func_ℛ_LD and defined as:\n mathfrakR = 1 - frac1mathcalH s\nwhere s is the comoving distance and \\mathcal{H} is comoving Hubble parameter. It's spline is obtained in a sample of point given by 10.0 .^ range(-4, log10(max(comdist...)), length=1000).\nℛ_GNC, obtained from func_ℛ_GNC and defined as:\n mathcalR = 5 s_mathrmb + frac2 - 5 s_mathrmbmathcalH s + \n fracdotmathcalHmathcalH^2 - mathitf_mathrmevo\nwheres is the comoving distance, \\mathcal{H} is comoving Hubble parameter, s_mathrmb is the magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), mathitf_mathrmevo the evolution bias and dotmathcalH = mathrmdmathcalH mathrmdtau the first derivative of the comoving Hubble parameter wrt the comoving time tau. It's spline is obtained in a sample of point given by 10.0 .^ range(-4, log10(max(comdist...)), length=1000). NOTE: there are two of these splines in case you are taking into account two galaxies species (which have different values for galaxy, magnification and evolutionary biases); if you don't (i.e. you set only the first species values in CosmoParams) the two splines coincide.\ns_of_z ::Dierckx.Spline1D : spline that returns the value of the comoving distance s corresponding to an input redshift z. Also this spline is obtained from the data stored by BackgroundData applied to the input background data file.\nz_eff::Float64 : effective redshift of this survey; its value is obtained through the function func_z_eff, with inputs the s_min, s_max and z_of_s here stored.\ns_min::Float64 and s_max::Float64 : the minimum and maximum comoving distances of the survey considered; they are the corresponding comoving distance to the chosen minimum and maximum redshifts z_min and z_max, stored in the input CosmoParams.\ns_eff::Float64 : the corresponding comoving distance to the computed effective redshifts z_eff.\ns_spline_lim::Float64 : the comoving distance converted from the redshift z_spline_lim with the spline s_of_z; z_spline_lim is the upper limit where to cut the cosmological splines, the recommended value is the recombination era (i.e. z simeq 1000); it is set in CosmoParams.\nvolume::Float64 : volume of this survey. It is computed applying the function V_survey with inputs s_min, s_max here stored and the θ_max in the input CosmoParams.\nfile_data, file_ips, file_windowF::String : the file names used for this Cosmology.\n\nConstructors\n\nCosmology(\n params::CosmoParams,\n file_data::String,\n file_ips::String,\n file_windowF::String,\n file_IntwindowF::String;\n names_bg = NAMES_BACKGROUND)\n\nparams::CosmoParams : parameters to be used for this Cosmology. See the docstring of CosmoParams for more information on the possible inputs.\nfile_data::String : file containing all the background data; it is expected that such file is a background output of the CLASS (link: https://github.com/lesgourg/class_public) code. It is managed through the struct BackgroundData.\nfile_ips::String : file containing the Input Power Spectrum at present day; it is expected that such file is a Power Spectrum output of the CLASS (link: https://github.com/lesgourg/class_public) code. It is managed through the struct InputPS.\nfile_windowF::String : file containing a map of the window function F. This file is managed through the struct WindowF, and can be produced with the function print_map_F; see their docstrings for more information.\nfile_IntwindowF::String : file containing a map of the Integrated Window Function \\mathcal{F}. This file is managed through the struct WindowFIntegrated, and can be produced with the function print_map_IntegartedF; see their docstrings for more information.\nnames = NAMES_BACKGROUND : the column names of the file_data. If the colum order change from the default one NAMES_BACKGROUND, you must set as input the vector of string with the correct one, with the SAME names. They are, with the default order:\n[\"z\", \"proper time [Gyr]\", \"conf. time [Mpc]\", \"H [1/Mpc]\", \"comov. dist.\", \"ang.diam.dist.\", \"lum. dist.\", \"comov.snd.hrz.\", \"(.)rhog\", \"(.)rhob\", \"(.)rhocdm\", \"(.)rholambda\", \"(.)rhour\", \"(.)rhocrit\", \"gr.fac. D\", \"gr.fac. f\"] \n\nSee also: CosmoParams, InputPS, IPSTools, BackgroundData, WindowF, WindowFIntegrated, print_map_F, print_map_IntegratedF, func_z_eff, V_survey, func_ℛ_LD, func_ℛ_GNC, \n\n\n\n\n\n","category":"type"},{"location":"Cosmology/#GaPSE.Point","page":"Cosmology Struct","title":"GaPSE.Point","text":"Point(\n z::Float64\n comdist::Float64\n D::Float64\n f::Float64\n ℋ::Float64\n ℋ_p::Float64\n ℛ_LD::Float64\n ℛ_GNC::Float64\n a::Float64\n )\n\nA point in the Universe, placed at redshift z from us. It contains all the relevant cosmological information at that redshift, respectively:\n\nthe redshift z;\nthe comoving distance s;\nthe linear growth factor D (normalized to 1.0 at present day);\nthe linear growth rate f;\nthe comoving Hubble parameter ℋ;\nthe first derivative ℋ_p of the comoving Hubble parameter ℋ wrt the comoving time tau;\nthe derivative of the comoving Hubble parameter wrt the comoving time ℋ_p; \nℛ_LD, obtained from func_ℛ_LD and defined as:\nmathfrakR = 1 - frac1mathcalH s\nwhere s is the comoving distance and \\mathcal{H} is comoving Hubble parameter.\nℛ_GNC, obtained from func_ℛ_GNC and defined as:\nmathcalR = 5 s_mathrmb + frac2 - 5 s_mathrmbmathcalH s + \nfracdotmathcalHmathcalH^2 - mathitf_mathrmevo\nwheres is the comoving distance, \\mathcal{H} is comoving Hubble parameter, s_mathrmb is the magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), mathitf_mathrmevo the evolution bias and dotmathcalH = mathrmdmathcalH mathrmdtau the first derivative of the comoving Hubble parameter wrt the comoving time tau. NOTE: there are two of these values in case you are taking into account two galaxies species (which have different values for galaxy, magnification and evolutionary biases); if you don't (i.e. you set only the first species values in CosmoParams) the two splines coincide.\nthe scale factor a (normalized to 1.0 at present day);\n\nWe remember that all the distances are measured in h_0^-1mathrmMpc.\n\nConstructors\n\nPoint(s, cosmo::Cosmology) : given a comoving distance s, it extrapolates all the data from the given input Cosmology.\n\nSee also: Cosmology\n\n\n\n\n\n","category":"type"},{"location":"WindowF/","page":"Window F","title":"Window F","text":"DocTestSetup = quote\n using GaPSE\nend","category":"page"},{"location":"WindowF/#The-Window-Function-F","page":"Window F","title":"The Window Function F","text":"","category":"section"},{"location":"WindowF/","page":"Window F","title":"Window F","text":"GaPSE.DEFAULT_FMAP_OPTS_hcub\nGaPSE.DEFAULT_FMAP_OPTS_trap\nGaPSE.integrand_F\nGaPSE.F_hcub\nGaPSE.F_trap\nGaPSE.print_map_F\nGaPSE.WindowF\nGaPSE.spline_F","category":"page"},{"location":"WindowF/#GaPSE.DEFAULT_FMAP_OPTS_hcub","page":"Window F","title":"GaPSE.DEFAULT_FMAP_OPTS_hcub","text":"DEFAULT_FMAP_OPTS_hcub = Dict(\n :θ_max => π / 2.0::Float64, \n :tolerance => 1e-10::Float64, \n :rtol => 1e-2::Float64, \n :atol => 1e-3::Float64,\n :pr => true::Bool,\n)\n\nThe default values to be used for the F function when you want to perform the computation with hcubature.\n\nSee also: integrand_F, F_hcub, print_map_F\n\n\n\n\n\n","category":"constant"},{"location":"WindowF/#GaPSE.DEFAULT_FMAP_OPTS_trap","page":"Window F","title":"GaPSE.DEFAULT_FMAP_OPTS_trap","text":"DEFAULT_FMAP_OPTS_trap = Dict(\n :θ_max => π / 2.0::Float64, \n :tolerance => 1e-10::Float64, \n :N => 300::Int64, \n :en => 1.0::Float64,\n :pr => true::Bool,\n)\n\nThe default values to be used for the F function when you want to perform the computation with trap.\n\nSee also: integrand_F, F_trap, print_map_F\n\n\n\n\n\n","category":"constant"},{"location":"WindowF/#GaPSE.integrand_F","page":"Window F","title":"GaPSE.integrand_F","text":"integrand_F(θ_1, θ, x, μ, θ_max; tolerance=1e-8) ::Float64\n\nReturn the integrand of the function F(xmu theta_mathrmmax), i.e the function f(xmu theta theta_1 theta_mathrmmax):\n\nbeginsplit\nf(xmu theta theta_1 theta_mathrmmax) = \n Thetaleft( frac\n x cos theta + cos theta_1sqrtx^1+2+2xmu - \n cos(theta_mathrmmax) \n right) \n times Theta(mu-cos(theta+theta_1)) times \n quad Theta(cos(theta - theta_1)-mu) times \n frac4pi sinthetasintheta_1\n sqrt(sinthetasintheta_1)^2-(costhetacostheta_1-mu)^2\nendsplit\n\nbeginequation\nF(xmu theta_mathrmmax) = int_0^theta_mathrmmax \n mathrmdtheta_1 int_0^pi mathrmd theta \n f(xmu theta theta_1 theta_mathrmmax)\nendequation\n\ntolerance is a parameter needed in case of small negative denominator: the Heaviside theta function mathematically prevent that mathrmden=(sinthetasintheta_1)^2-(costhetacostheta_1-mu)^2 becomes negative, but computationally might happen that mathrmden results as a very small negative number (for instance -1.2368946523-18); in this case tolerance solve the problem, returning 0 if 0-mathrmden mathrmtolerance\n\nSee also: print_map_F\n\n\n\n\n\n","category":"function"},{"location":"WindowF/#GaPSE.F_hcub","page":"Window F","title":"GaPSE.F_hcub","text":"F_hcub(x, μ; θ_max = π/2, tolerance = 1e-10, \n atol = 1e-2, rtol = 1e-5, \n kwargs...) ::Tuple{Float64, Float64}\n\nComputes with hcubature the value of F(xmu theta_mathrmmax), defined as follows:\n\nbeginsplit\nF(xmu theta_mathrmmax) = 4pi \n int_0^theta_mathrmmax mathrmdtheta_1 int_0^pi mathrmd theta \n Thetaleft(frac\n x cos theta + cos theta_1sqrtx^1+2+2xmu - \n cos(theta_mathrmmax) \n right) \n Theta(mu-cos(theta+theta_1)) \n Theta(cos(theta - theta_1)-mu) \n fracsinthetasintheta_1\n sqrt(sinthetasintheta_1)^2-(costhetacostheta_1-mu)^2\nendsplit\n\ntolerance is a parameter needed in case of small negative denominator: the Heaviside theta function mathematically prevent that mathrmden=(sinthetasintheta_1)^2-(costhetacostheta_1-mu)^2 becomes negative, but computationally might happen that mathrmden results as a very small negative number (for instance -1.2368946523-18); in this case tolerance solve the problem, returning 0 if 0-mathrmden mathrmtolerance.\n\nThe double integral is performed with hcubature() function from the Julia Package HCubature.jl; rtol, atol and all the kwargs insert into F are directly transferred to hcubature. \n\nThe output of this function is a Tuple{Float64, Float64}, containing respectively the value of the integral ad its error.\n\nPAY ATTENTION: do not set too small atol and rtol, or the computation can easily become overwhelming! \n\nNOTE: for computational efficiency and stability, it is highly recommended to use the other functionF_trap, based on the trapezoidal rule, in order to compute this function.\n\nSee also: F_trap, print_map_F, integrand_F, check_compatible_dicts\n\n\n\n\n\n","category":"function"},{"location":"WindowF/#GaPSE.F_trap","page":"Window F","title":"GaPSE.F_trap","text":"F_trap(x, μ; θ_max = π/2, tolerance = 1e-10, \n atol = 1e-2, rtol = 1e-5, \n kwargs...) ::Float64\n\nComputes with trap the value of F(xmu theta_mathrmmax), defined as follows:\n\nbeginsplit\nF(xmu theta_mathrmmax) = 4pi \n int_0^theta_mathrmmax mathrmdtheta_1 int_0^pi mathrmd theta \n Thetaleft(frac\n x cos theta + cos theta_1sqrtx^1+2+2xmu - \n cos(theta_mathrmmax) \n right) \n Theta(mu-cos(theta+theta_1)) \n Theta(cos(theta - theta_1)-mu) \n fracsinthetasintheta_1\n sqrt(sinthetasintheta_1)^2-(costhetacostheta_1-mu)^2\nendsplit\n\ntolerance is a parameter needed in case of small negative denominator: the Heaviside theta function mathematically prevent that mathrmden=(sinthetasintheta_1)^2-(costhetacostheta_1-mu)^2 becomes negative, but computationally might happen that mathrmden results as a very small negative number (for instance -1.2368946523-18); in this case tolerance solve the problem, returning 0 if 0-mathrmden mathrmtolerance.\n\nThe double integral is performed with trapz() function from the Julia Package Trapz.jl, that is based on the trapezoidal rule. N is the number of point to be used to sample INDIPENDENTLY θ_1 and θ, so consider that there is a N^2 time dependence. It's recommended to set 100 < N < 1000.\n\nNOTE: there is another function, called F_hcub, that performs this calculus. Nevertheless, for computational efficiency and stability, it is highly recommended to use to use this one.\n\nSee also: F_hcub, print_map_F, integrand_F, check_compatible_dicts\n\n\n\n\n\n","category":"function"},{"location":"WindowF/#GaPSE.print_map_F","page":"Window F","title":"GaPSE.print_map_F","text":"print_map_F(out::String, x_step::Float64 = 0.01, μ_step::Float64 = 0.01;\n alg::Symbol = :trap, x1 = 0, x2 = 3, μ1 = -1, μ2 = 1, \n Fmap_opts::Dict = Dict{Symbol,Any}(), \n kwargs...)\n\nprint_map_F(out::String, xs::Vector{Float64}, μs::Vector{Float64};\n alg::Symbol = :trap, Fmap_opts::Dict = Dict{Symbol,Any}(),\n kwargs...)\n\nEvaluate the window function F(xmu theta_mathrmmax) in a rectangual grid of mu and x values, and print the results in the out file.\n\nIn the first method you have to specify manually, both for x and μ, start (x1 and μ1), stop (x2 and μ2), and step (x_step and μ_step). In the second one, you need to pass the values you want to calculate the function in, through the vectors xs and μs.\n\nThe Symbol keyword argument alg tells if you want to perform the computation of F with F_trap (if alg = :trap) or with F_hcub (if alg = :hcub). Other symbols will lead to an AssertionError. Both for computational efficiency and stability, it's highly recommended to use the former (i.e. the default one). \n\nFmap_opts is instead the way you should exploit in order to pass to F_trap/F_hcub other options you are interested in. You may pass only the key and the value you are focused on, and all the other default ones will be considered. A common key to both the algortithm is :pr => true or :pr => false, that tells if you want to se the progress-bar of the computation.\n\nFor example, if you set trap == false and:\n\nFmap_opts = Dict(:tolerance => 1e-5, :θ_max => 2.0)\n\nthen the dictionary with all the options that will be passed to F will be:\n\nFmap_dict = merge(DEFAULT_FMAP_OPTS_hcub, Fmap_opts) = :θ_max => 2.0, # CHANGED VALUE :tolerance => 1e-5, # CHANGED VALUE :rtol => 1e-2, # default :atol => 1e-3, # default :pr => true, # default )\n\nCheck the documentation of DEFAULT_FMAP_OPTS_hcub and DEFAULT_FMAP_OPTS_trap for more information about these default values.\n\nSee also: DEFAULT_FMAP_OPTS_hcub, DEFAULT_FMAP_OPTS_trap F_trap, F_hcub, integrand_F\n\n\n\n\n\n","category":"function"},{"location":"WindowF/#GaPSE.WindowF","page":"Window F","title":"GaPSE.WindowF","text":"WindowF(\n xs::Vector{Float64}\n μs::Vector{Float64}\n Fs::Matrix{Float64}\n )\n\nStruct containing xs, μs and Fs values of the window function F(x μ). xs and μs are 1D vectors containing each value only once, while Fs values are contained in a matrix of size (length(xs), length(μs)), so:\n\nalong a fixed column the changing value is x\nalong a fixed row the changing value is μ\n\nThe analytical definition of the window function is the following (see Eq. A.10 of Castorina, Di Dio, 2021):\n\nbeginsplit\nF(xmu theta_mathrmmax) = 4pi \n int_0^theta_mathrmmax mathrmdtheta_1 int_0^pi mathrmd theta \n Thetaleft(frac\n x cos theta + cos theta_1sqrtx^1+2+2xmu - \n cos(theta_mathrmmax) \n right) \n Theta(mu-cos(theta+theta_1)) \n Theta(cos(theta - theta_1)-mu) \n fracsinthetasintheta_1\n sqrt(sinthetasintheta_1)^2-(costhetacostheta_1-mu)^2\nendsplit\n\nwhere the Thetas are Heaviside theta functions.\n\nConstructors\n\nWindowF(file::String) : read the F map from the file file. Such a file might be produced by print_map_F, check its docstring. \n\nIt does not matter if the pattern is\n\n# xs μs Fs\n0.0 -1.0 ...\n0.0 -0.9 ...\n0.0 -0.8 ...\n... ... ...\n\nor \n\n# xs μs Fs\n0.0 -1.0 ...\n0.1 -1.0 ...\n0.2 -1.0 ...\n... ... ...\n\nbecause the constructor will recognise it. What does matter is the columns order: xs first, then μs and finally Fs.\n\nSee also: print_map_F, F_trap, spline_F\n\n\n\n\n\n","category":"type"},{"location":"WindowF/#GaPSE.spline_F","page":"Window F","title":"GaPSE.spline_F","text":"spline_F(x, μ, str::WindowF)) ::Float64\n\nReturn the 2-dim spline value of F in the given (x,μ), where F is defined in the input WindowF. The spline is obtained through the interpolate function of the GridInterpolations Julia package.\n\nSee also: WindowF\n\n\n\n\n\n","category":"function"},{"location":"CosmoParams/","page":"Cosmology Parameters","title":"Cosmology Parameters","text":"DocTestSetup = quote\n using GaPSE\nend","category":"page"},{"location":"CosmoParams/#The-Cosmology-Parameters","page":"Cosmology Parameters","title":"The Cosmology Parameters","text":"","category":"section"},{"location":"CosmoParams/","page":"Cosmology Parameters","title":"Cosmology Parameters","text":"GaPSE.DEFAULT_IPS_OPTS\nGaPSE.DEFAULT_IPSTOOLS_OPTS\nGaPSE.CosmoParams","category":"page"},{"location":"CosmoParams/#GaPSE.DEFAULT_IPS_OPTS","page":"Cosmology Parameters","title":"GaPSE.DEFAULT_IPS_OPTS","text":"const DEFAULT_IPS_OPTS = Dict(\n :fit_left_min => 1e-6::Float64, \n :fit_left_max => 3e-6::Float64,\n :fit_right_min => 1e1::Float64, \n :fit_right_max => 2e1::Float64,\n )\n\nThe default values to be stored in CosmoParams concerning the Input Power Spectrum. In the Cosmology that will have such CosmoParams as input, they will be used in its InputPS.\n\nSee also: CosmoParams, Cosmology, InputPS\n\n\n\n\n\n","category":"constant"},{"location":"CosmoParams/#GaPSE.DEFAULT_IPSTOOLS_OPTS","page":"Cosmology Parameters","title":"GaPSE.DEFAULT_IPSTOOLS_OPTS","text":"const DEFAULT_IPSTOOLS_OPTS = Dict(\n :N => 1024::Int,\n :fit_min => 0.05::Float64,\n :fit_max => 0.5::Float64,\n :con => true::Bool,\n :k_min => 1e-6::Float64,\n :k_max => 10.0::Float64,\n)\n\nThe default values to be stored in CosmoParams concerning the Input Power Spectrum Tools. In the Cosmology that will have such CosmoParams as input, they will be used in its IPSTools.\n\nSee also: CosmoParams, Cosmology, IPSTools\n\n\n\n\n\n","category":"constant"},{"location":"CosmoParams/#GaPSE.CosmoParams","page":"Cosmology Parameters","title":"GaPSE.CosmoParams","text":"CosmoParams(\n z_min::Float64\n z_max::Float64\n θ_max::Float64\n\n Ω_b::Float64\n Ω_cdm::Float64\n Ω_M0::Float64\n h_0::Float64\n\n b1::Float64\n b2::Float64\n s_b1::Float64\n s_b2::Float64\n 𝑓_evo1::Float64\n 𝑓_evo2::Float64\n\n s_lim::Float64\n z_spline_lim::Float64\n\n IPS::Dict{Symbol,T1} where {T1}\n IPSTools::Dict{Symbol,T2} where {T2}\n)\n\nStruct that contains all the parameters and options that are matter of concerns for the Cosmology we are interested in.\n\nArguments\n\nz_min::Float64 and z_max::Float64 : the minimum and maximum redshifts of the survey we want to study.\nθ_max::Float64 : Angular maximum value of the survey. It must be 0 < θ_max ≤ π/2.0. It is implicitly assumed an azimutal simmetry of the survey. \nΩ_b::Float64, Ω_cdm::Float64 and Ω_M0::Float64 : barionic, cold-dark-matter and total matter density parameters.\nh_0::Float64 : today's Hubble adimensional parameter (H_0 = h_0 * 100 km/(s * Mpc)).\nb1::Float64 and b2::Float64 : galaxy biases; you can choose to define both of them (if you are interested in the analysis of two galaxy species) or only the former (and leave the latter as nothing, it will be set equal to the former).\ns_b1::Float64 and s_b2::Float64: magnification biases, i.e. the slope of the luminosity function at the luminosity threshold; you can choose to define both of them (if you are interested in the analysis of two galaxy species) or only the former (and leave the latter as nothing, it will be set equal to the former).\n𝑓_evo1::Float64 and 𝑓_evo2::Float64: evolution biases; you can choose to define both of them (if you are interested in the analysis of two galaxy species) or only the former (and leave the latter as nothing, it will be set equal to the former).\ns_lim::Float64 : the lower-bound value for the functions func_ℛ_LD and func_ℛ_GNC; it is necessary, because ℛ_LD and ℛ_GNC blows up for s rightarrow 0^+. Consequently, if the func_ℛ_LD/func_ℛ_GNC input value is 0 ≤ s < s_lim, the returned value is always func_ℛ_LD(s_lim)/func_ℛ_GNC(s_lim).\nz_spline_lim::Float64 : the upper limit where to cut the cosmological splines (it will be used by CosmoSplines); the recommended value is the recombination era (i.e. z simeq 1000).\nIPS::Dict{Symbol,T1} where {T1} : dictionary concerning all the options that should be passed to InputPS in the contruction of a Cosmology. The allowed keys, with their default values, are stored in DEFAULT_IPS_OPTS, and are the following:\n:fit_left_min => 1e-6 and :fit_left_max => 3e-6 : the limits (min and max) where the PS must be fitted with a (pure) power law, for small wavenumbers. \n:fit_right_min => 1e1 and :fit_right_max => 2e1 : the limits (min and max) where the PS must be fitted with a (pure) power law, for high wavenumbers. \nIPSTools::Dict{Symbol,T2} where {T2} : dictionary concerning all the options that should be passed to IPSTools in the contruction of a Cosmology. The allowed keys, with their default values, are stored in DEFAULT_IPSTOOLS_OPTS, and are the following:\n:fit_min => 0.05 and :fit_max => 0.5 : the limits (min and max) where the integral I_ell^n in Cosmology must be fitted with a power law, for small distances. This operation is necessary, because xicalc, in this context, gives wrong results for too small input distance s; nevertheless, all these I_ell^n integrals have fixed power-law trends for s rightarrow 0, so this approach gives good results.\n:N => 1024 : number of points to be used in the Sperical Bessel Fourier Transform made by xicalc in IPSTools.\n:k_min => 1e-6 and :k_max => 10.0 : extremes of integration for the σ_i integrals in IPSTools.\n:con => true : do you want that the fit of all the I_ell^n in IPSTools for the LEFT edge is not a simple power-law y = f(x) = b x^s, but also consider a constant a, such that y = f(x) = a + b x^s?\n\nConstructors\n\nCosmoParams(z_min, z_max, θ_max;\n Ω_b = 0.0489, Ω_cdm = 0.251020, h_0 = 0.70, s_lim = 1e-2, z_spline_lim = 1000.0,\n b1=1.0, b2=nothing, s_b1=0.0, s_b2=nothing, 𝑓_evo1=0.0, 𝑓_evo2=nothing,\n IPS_opts::Dict = Dict{Symbol,Any}(),\n IPSTools_opts::Dict = Dict{Symbol,Any}()\n)\n\nThe associations are trivials, with Ω_M0 = Ω_cdm + Ω_b. For the two dictionary, you may pass only the key and the value you are interested in, and all the other default ones will be considered. For example, if you set:\n\nIPSTools_opts = Dict(:N => 150, :con => false, :k_max => 30.0)\n\nthen the dictionary with all the options that will be passed to IPSTools will be:\n\nIPSTools = merge(DEFAULT_IPSTOOLS_OPTS, IPSTools_opts) = :fit_min => 0.05, # default :fit_max => 0.5, # default :N => 150, # CHANGED VALUE :con => false, # CHANGED VALUE :k_min => 1e-6, # default :k_max => 30.0, # CHANGED VALUE )\n\nand similar for IPS_opts.\n\nSee also: Cosmology, CosmoSplines, IPSTools, InputPS, func_ℛ_LD, DEFAULT_IPSTOOLS_OPTS, DEFAULT_IPS_OPTS, check_compatible_dicts\n\n\n\n\n\n","category":"type"},{"location":"GNC_Correlations_3/","page":"GNC TPCFs","title":"GNC TPCFs","text":"DocTestSetup = quote\n using GaPSE\nend","category":"page"},{"location":"GNC_Correlations_3/#GNC-TPCFs","page":"GNC TPCFs","title":"GNC TPCFs","text":"","category":"section"},{"location":"GNC_Correlations_3/#Two-Point-Cross-Correlation-Functions-integrands","page":"GNC TPCFs","title":"Two-Point Cross-Correlation Functions integrands","text":"","category":"section"},{"location":"GNC_Correlations_3/","page":"GNC TPCFs","title":"GNC TPCFs","text":"GaPSE.integrand_ξ_GNC_Newtonian_Lensing\nGaPSE.integrand_ξ_GNC_Newtonian_IntegratedGP\nGaPSE.integrand_ξ_GNC_Doppler_IntegratedGP\nGaPSE.integrand_ξ_GNC_Lensing_Doppler\nGaPSE.integrand_ξ_GNC_Lensing_LocalGP\nGaPSE.integrand_ξ_GNC_Lensing_IntegratedGP\nGaPSE.integrand_ξ_GNC_LocalGP_IntegratedGP","category":"page"},{"location":"GNC_Correlations_3/#GaPSE.integrand_ξ_GNC_Newtonian_Lensing","page":"GNC TPCFs","title":"GaPSE.integrand_ξ_GNC_Newtonian_Lensing","text":"integrand_ξ_GNC_Newtonian_Lensing(\n IP::Point, P1::Point, P2::Point, y, cosmo::Cosmology;\n Δχ_min::Float64=1e-1, b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, \n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,\n obs::Union{Bool,Symbol}=:noobsvel\n ) ::Float64\n\nintegrand_ξ_GNC_Newtonian_Lensing(\n χ2::Float64, s1::Float64, s2::Float64,\n y, cosmo::Cosmology;\n kwargs... )::Float64\n\nReturn the integrand of the Two-Point Correlation Function (TPCF) given by the cross correlation between the Newtonian and the Lensing effects arising from the Galaxy Number Counts (GNC).\n\nIn the first method, you should pass the two extreme Points (P1 and P2) and the intermediate integrand Point (IP) where to evaluate the function. In the second method (that internally recalls the first), you must provide the three corresponding comoving distances s1, s2, χ2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this integrand is the following:\n\nbeginequation\n f^deltakappa (chi_2 s_1 s_2 y) =\n D_1 J^delta kappa_alpha\n left \n J^delta kappa_00 I_0^0 ( Deltachi_2 ) + \n J^delta kappa_02 I_2^0 ( Delta chi_2 ) + \n J^delta kappa_04 I_4^0 ( Delta chi_2 ) \n right \nendequation\n\nwith\n\nbeginsplit\n J^delta kappa_alpha =\n frac\n mathcalH_0 ^2 Omega_mathrmM0 D (chi_2)\n \n a(chi_2 ) s_2\n \n (chi_2 - s_2 ) (5s_mathrmb 2 - 2) \n \n \n J^delta kappa_00 =\n frac15\n left\n (3 y^2 - 1) chi_2 f_1 - y s_1(3 f_1 + 5 b_1) \n right \n \n \n J^delta kappa_02 =\n frac114 Deltachi_2^2 \n left\n 4 f_1 (3 y^2 - 1) chi_2^3 - \n 2 y \n left\n (3 y^2 + 8) f_1 + 7 b_1\n right s_1 chi_2^2 +\n right nonumber \n leftqquad qquadqquad\n left\n (9 y^2 + 11) f_1 - 7 (y^2 + 3) b_1\n right s_1^2 chi_2 -\n 2 y left7 b_1 + 3 f_1 right s_1^3\n right \n \n \n J^delta kappa_04 =\n fracf_170 Deltachi_2^4 \n left\n (6 y^2 - 2) chi_2^5 +\n 6 y (y^2 - 3) s_1 chi_2^4 -\n (y^4 + 12 y^2 - 21) s_1^2 chi_2^3 +\n rightnonumber \n leftqquadqquadqquad\n 2 y (y^2 + 3) s_1^3 chi_2^2 -\n 12 chi_2 s_1^4 + \n 4 y s_1 ^5\n right \n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nb_1, s_mathrmb 1, mathitf_mathrmevo 1 (and b_2, s_mathrmb 2, mathitf_mathrmevo 2) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nIn this TPCF there are no observer terms. The obs keyword is inserted only for compatibility with the other GNC TPCFs.\n\nThis function is used inside ξ_GNC_Newton_Lensing with the trapz() from the Trapz Julia package.\n\nInputs\n\nIP::Point, P1::Point, P2::Point or χ2,s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nb1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:\nif not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;\nif you set one or more values, they will override the cosmo ones in this computation;\nthe two sets of values should be different only if you are interested in studing two galaxy species;\nonly the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities. \ns_lim=nothing : parameter used in order to avoid the divergence of the mathcalR and mathfrakR denominators: when 0 leq s leq s_mathrmlim the returned values are\nforall s in 0 s_mathrmlim quad \n mathfrakR(s) = 1 - frac1mathcalH_0 s_mathrmlim quad\n mathcalR(s) = 5 s_mathrmb + \n frac2 - 5 s_mathrmbmathcalH_0 s_mathrmlim + \n fracdotmathcalHmathcalH_0^2 - mathitf_mathrmevo \nIf nothing, the default value stored in cosmo will be considered.\nobs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?\n:yes or true -> all the observer effects will be considered\n:no or false -> no observer term will be taken into account\n:noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account\nΔχ_min::Float64 = 1e-4 : when Deltachi_2 = sqrts_1^2 + chi_2^2 - 2 s_1 chi_2 y to 0^+, some I_ell^n term diverges, but the overall parenthesis has a known limit:\n lim_Delta chi_2 to 0^+ \n left(\n J_00^delta kappa I^0_0(Delta chi_2 ) + \n J_02^delta kappa I^0_2(Delta chi_2 ) + \n J_04^delta kappa I^4_0(Delta chi_2 ) \n right) = \n - frac15 s_1 left(f_1 + 5 b_1right) sigma_0\nSo, when it happens that Delta chi_2 Deltachi_mathrmmin, the function considers this limit as the result of the parenthesis instead of calculating it in the normal way; it prevents computational divergences.\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_Newtonian_Lensing\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations_3/#GaPSE.integrand_ξ_GNC_Newtonian_IntegratedGP","page":"GNC TPCFs","title":"GaPSE.integrand_ξ_GNC_Newtonian_IntegratedGP","text":"integrand_ξ_GNC_Newtonian_IntegratedGP(\n IP::Point, P1::Point, P2::Point,\n y, cosmo::Cosmology; \n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, \n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,\n obs::Union{Bool,Symbol}=:noobsvel\n ) ::Float64\n\nintegrand_ξ_GNC_Newtonian_IntegratedGP(\n χ2::Float64, s1::Float64, s2::Float64,\n y, cosmo::Cosmology;\n kwargs... )::Float64\n\nReturn the integrand of the Two-Point Correlation Function (TPCF) given by the cross correlation between the Newtonian and the Integrated Gravitational Potential (GP) effects arising from the Galaxy Number Counts (GNC).\n\nIn the first method, you should pass the two extreme Points (P1 and P2) and the intermediate integrand Point (IP) where to evaluate the function. In the second method (that internally recalls the first), you must provide the three corresponding comoving distances s1, s2, χ2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this integrand is the following:\n\nbeginsplit\n f^delta intphi(chi_2 s_1 s_2 y ) =\n D_1 \n J^delta intphi_alpha\n left \n J^delta intphi_20 I_0^2 ( Deltachi_2 ) +\n right \n left \n J^delta intphi_beta\n left(\n frac115 I_0^0 ( Deltachi_2 ) + \n frac121 I_2^0 ( Deltachi_2 ) +\n frac135 I_4^0 ( Deltachi_2 )\n right) \n right nonumber\nendsplit\n\nwith\n\nbeginsplit\n J^delta intphi_alpha =\n fracmathcalH_0^2 Omega_mathrmM0 D(chi_2)3 a(chi_2) s_2 \n left \n s_2 mathcalR_2 mathcalH(chi_2) ( f(chi_2) - 1) - 5 s_mathrmb 2 + 2\n right \n \n \n J^delta intphi_beta =\n f_1 left \n (3 y^2 - 1) chi_2^2 - 4 y s_1 chi_2 + 2 s_1^2\n right \n \n \n J^delta intphi_20 =\n - Deltachi_2^2 ( 3 b_1 + f_1)\n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nb_1, s_mathrmb 1, mathitf_mathrmevo 1 (and b_2, s_mathrmb 2, mathitf_mathrmevo 2) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nIn this TPCF there are no observer terms. The obs keyword is inserted only for compatibility with the other GNC TPCFs.\n\nThis function is used inside ξ_GNC_Newtonian_IntegratedGP with trapz() from the Trapz Julia package.\n\nInputs\n\nIP::Point, P1::Point, P2::Point or χ2,s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nb1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:\nif not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;\nif you set one or more values, they will override the cosmo ones in this computation;\nthe two sets of values should be different only if you are interested in studing two galaxy species;\nonly the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities. \ns_lim=nothing : parameter used in order to avoid the divergence of the mathcalR and mathfrakR denominators: when 0 leq s leq s_mathrmlim the returned values are\nforall s in 0 s_mathrmlim quad \n mathfrakR(s) = 1 - frac1mathcalH_0 s_mathrmlim quad\n mathcalR(s) = 5 s_mathrmb + \n frac2 - 5 s_mathrmbmathcalH_0 s_mathrmlim + \n fracdotmathcalHmathcalH_0^2 - mathitf_mathrmevo \nIf nothing, the default value stored in cosmo will be considered.\nobs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?\n:yes or true -> all the observer effects will be considered\n:no or false -> no observer term will be taken into account\n:noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_Newtonian_IntegratedGP\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations_3/#GaPSE.integrand_ξ_GNC_Doppler_IntegratedGP","page":"GNC TPCFs","title":"GaPSE.integrand_ξ_GNC_Doppler_IntegratedGP","text":"integrand_ξ_GNC_Doppler_IntegratedGP(\n IP::Point, P1::Point, P2::Point, y, cosmo::Cosmology; \n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, \n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,\n obs::Union{Bool,Symbol}=:noobsvel\n ) ::Float64\n\nintegrand_ξ_GNC_Doppler_IntegratedGP(\n χ2::Float64, s1::Float64, s2::Float64,\n y, cosmo::Cosmology; \n kwargs...) ::Float64\n\nReturn the integrand of the Two-Point Correlation Function (TPCF) given by the cross correlation between the Doppler and the Integrated Gravitational Potential (GP) effects arising from the Galaxy Number Counts (GNC).\n\nIn the first method, you should pass the two extreme Points (P1 and P2) and the intermediate integrand Point (IP) where to evaluate the function. In the second method (that internally recalls the first), you must provide the three corresponding comoving distances s1, s2, χ2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this integrand is the following:\n\nbeginsplit\n f^v_parallel intphi left(chi_2 s_1 s_2 y right) = \n D_1 \n J^v_parallel intphi_alpha \n left\n frac115 I_0^0 ( Deltachi_2 ) +\n frac221 I_2^0 ( Deltachi_2 ) +\n right \n left\n frac135 I_4^0 ( Deltachi_2 ) +\n I^2_0 ( Deltachi_2) \n right\n + \n J^v_parallel intphi_31 I^3_1 (chi_2) \n nonumber\nendsplit\n\nwhere\n\nbeginsplit\n J^v_parallel intphi_alpha =\n fracf_1 mathcalH_1 mathcalR_1s_2 a(chi_2) \n D(chi_2) mathcalH_0^2 Omega_mathrmM0 Deltachi_2^2 \n (chi_2 y - s_1) \n left\n s_2 mathcalH(chi_2) mathcalR_2 (f(chi_2) - 1) - 5 s_mathrmb 2 + 2\n right\n \n \n J^v_parallel intphi_31 =\n -frac\n 3 chi_2^3 y f_0 mathcalH_0^3 Omega_mathrmM0 D(chi_2)\n \n s_2 a(chi_2)\n (mathcalR_1 - 5 s_mathrmb 1 + 2)\n left\n s_2 mathcalH(chi_2) mathcalR_2 (f(chi_2) - 1) - 5 s_mathrmb 2 + 2)\n right \n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nb_1, s_mathrmb 1, mathitf_mathrmevo 1 (and b_2, s_mathrmb 2, mathitf_mathrmevo 2) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nIn this TPCF, the term proportional to D(s_1) is not an observer term. The other one instead is and it does depend on the observer velocity. Consequently, if you set obs = :yes or obs = true both of them will computed, while for obs = :no, obs = false or even obs = :noobsvel only the propto D(s_1) one will be taken into account.\n\nThis function is used inside ξ_GNC_Doppler_IntegratedGP with trapz() from the Trapz Julia package.\n\nInputs\n\nIP::Point, P1::Point and P2::Point, or χ2,s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nb1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:\nif not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;\nif you set one or more values, they will override the cosmo ones in this computation;\nthe two sets of values should be different only if you are interested in studing two galaxy species;\nonly the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities. \ns_lim=nothing : parameter used in order to avoid the divergence of the mathcalR and mathfrakR denominators: when 0 leq s leq s_mathrmlim the returned values are\nforall s in 0 s_mathrmlim quad \n mathfrakR(s) = 1 - frac1mathcalH_0 s_mathrmlim quad\n mathcalR(s) = 5 s_mathrmb + \n frac2 - 5 s_mathrmbmathcalH_0 s_mathrmlim + \n fracdotmathcalHmathcalH_0^2 - mathitf_mathrmevo \nIf nothing, the default value stored in cosmo will be considered.\nobs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?\n:yes or true -> all the observer effects will be considered\n:no or false -> no observer term will be taken into account\n:noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_Doppler_IntegratedGP\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations_3/#GaPSE.integrand_ξ_GNC_Lensing_Doppler","page":"GNC TPCFs","title":"GaPSE.integrand_ξ_GNC_Lensing_Doppler","text":"integrand_ξ_GNC_Lensing_Doppler(\n IP::Point, P1::Point, P2::Point, y, cosmo::Cosmology;\n Δχ_min::Float64=1e-1, b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, \n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing, \n obs::Union{Bool,Symbol}=:noobsvel\n ) ::Float64\n\nintegrand_ξ_GNC_Lensing_Doppler(\n χ1::Float64, s1::Float64, s2::Float64,\n y, cosmo::Cosmology;\n kwargs... )::Float64\n\nReturn the integrand of the Two-Point Correlation Function (TPCF) given by the cross correlation between the Lensing and the Doppler effects arising from the Galaxy Number Counts (GNC).\n\nIn the first method, you should pass the two extreme Points (P1 and P2) and the intermediate integrand Point (IP) where to evaluate the function. In the second method (that internally recalls the first), you must provide the three corresponding comoving distances s1, s2, χ1. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this integrand is the following:\n\nbeginsplit\n f^kappa phi (chi_1 s_1 s_2 y ) = \n D_2 \n J^kappa v_parallel_alpha left\n J^kappa v_parallel_00 I_0^0 ( Delta chi_1 ) +\n J^kappa v_parallel_02 I_2^0 ( Delta chi_1 ) \n right nonumber \n left\n + J^kappa v_parallel_04 I_4^0 ( Delta chi_1 ) \n + J^kappa v_parallel_20 I_0^2 ( Delta chi_1 ) \n right\n +\n J^kappa v_parallel_31 I_1^3 ( chi_1 ) \nendsplit\n\nwith\n\nbeginsplit\n J^kappa v_parallel_alpha = \n fracmathcalH_0^2 Omega_mathrmM0 D(chi_1)a(chi_1) s_1\n f_2 mathcalH_2 mathcalR_2 (chi_1 - s_1) (5 s_mathrmb 1 - 2)\n \n \n J^kappa v_parallel_00 = \n frac115\n left\n chi_1^2 y + chi_1 s_2 (4 y^2 - 3) - 2 y s_2^2\n right \n \n \n J^kappa v_parallel_02 = \n frac142 Deltachi_1^2 left\n 4 y chi_1^4 + 4 (2 y^2 - 3) s_2 chi_1^3 + \n y (11 - 23 y^2) s_2^2 chi_1^2 +\n right\n leftqquadqquadqquad\n (23 y^2 - 3) s_2^3 chi_1 - 8 y s_2^4\n right nonumber\n \n \n J^kappa v_parallel_04 = \n frac170 Deltachi_1^2 \n left\n 2 y chi_1^4 + 2 (2 y^2 - 3) s_2 chi_1^3 - \n y (y^2 + 5) s_2^2 chi_1^2 + \n (y^2 + 9) s_2^3 chi_1 - 4 y s_2^4\n right \n \n \n J^kappa v_parallel_20 = y Deltachi_1^2 \n \n \n J^kappa v_parallel_31 =\n -frac\n 3 chi_1^2 y f_0 mathcalH_0^3 Omega_mathrmM0 D(chi_1) \n \n a(chi_1)s_1\n (chi_1 - s_1) (5 s_mathrmb 1 - 2) (mathcalR_2 - 5 s_mathrmb 2 + 2) \n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nb_1, s_mathrmb 1, mathitf_mathrmevo 1 (and b_2, s_mathrmb 2, mathitf_mathrmevo 2) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nIn this TPCF, the term proportional to D(s_1) is not an observer term. The other one instead is and it does depend on the observer velocity. Consequently, if you set obs = :yes or obs = true both of them will computed, while for obs = :no, obs = false or even obs = :noobsvel only the first one will be taken into account.\n\nThis function is used inside ξ_GNC_Lensing_Doppler with trapz() from the Trapz Julia package.\n\nInputs\n\nIP::Point, P1::Point, P2::Point or χ1,s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nb1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:\nif not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;\nif you set one or more values, they will override the cosmo ones in this computation;\nthe two sets of values should be different only if you are interested in studing two galaxy species;\nonly the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities. \ns_lim=nothing : parameter used in order to avoid the divergence of the mathcalR and mathfrakR denominators: when 0 leq s leq s_mathrmlim the returned values are\nforall s in 0 s_mathrmlim quad \n mathfrakR(s) = 1 - frac1mathcalH_0 s_mathrmlim quad\n mathcalR(s) = 5 s_mathrmb + \n frac2 - 5 s_mathrmbmathcalH_0 s_mathrmlim + \n fracdotmathcalHmathcalH_0^2 - mathitf_mathrmevo \nIf nothing, the default value stored in cosmo will be considered.\nobs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?\n:yes or true -> all the observer effects will be considered\n:no or false -> no observer term will be taken into account\n:noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account\nΔχ_min::Float64 = 1e-1 : when Deltachi_1 = sqrtchi_1^2 + s_2^2 - 2 chi_1 s_2 y to 0^+, some I_ell^n term diverges, but the overall parenthesis has a known limit:\n lim_Deltachi_1 to 0^+\n left\n J^kappa v_parallel_00 I_0^0 ( Delta chi_1 ) +\n J^kappa v_parallel_02 I_2^0 ( Delta chi_1 ) +\n J^kappa v_parallel_04 I_4^0 ( Delta chi_1 ) +\n J^kappa v_parallel_20 I_0^2 ( Delta chi_1 ) \n right = sigma_2\nSo, when it happens that Deltachi_1 Deltachi_mathrmmin, the function considers this limit as the result of the parenthesis instead of calculating it in the normal way; it prevents computational divergences.\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_Lensing_Doppler\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations_3/#GaPSE.integrand_ξ_GNC_Lensing_LocalGP","page":"GNC TPCFs","title":"GaPSE.integrand_ξ_GNC_Lensing_LocalGP","text":"integrand_ξ_GNC_Lensing_LocalGP(\n IP::Point, P1::Point, P2::Point,\n y, cosmo::Cosmology;\n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, \n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing, \n obs::Union{Bool,Symbol}=:noobsvel\n ) ::Float64\n\nintegrand_ξ_GNC_Lensing_LocalGP(\n χ1::Float64, s1::Float64, s2::Float64,\n y, cosmo::Cosmology;\n kwargs... )::Float64\n\nReturn the integrand of the Two-Point Correlation Function (TPCF) given by the cross correlation between the Lensing and the Local Gravitational Potential (GP) effects arising from the Galaxy Number Counts (GNC).\n\nIn the first method, you should pass the two extreme Points (P1 and P2) and the intermediate integrand Point (IP) where to evaluate the function. In the second method (that internally recalls the first), you must provide the three corresponding comoving distances s1, s2, χ1. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this integrand is the following:\n\nbeginsplit\n f^kappa phi (chi_1 s_1 s_2 y ) = \n D_2 \n J^kappa phi_alphaleft \n J^kappa phi_20 I_0^2 ( Delta chi_1 ) +\n rightnonumber \n leftqquad\n J^kappa phi_beta\n left(\n frac160 I_0^0 ( Delta chi_1 ) +\n frac142 I_2^0 ( Delta chi_1 ) +\n frac1140 I_4^0 ( Delta chi_1 ) \n right)\n right \nendsplit\n\nwith\n\nbeginsplit\n J^kappa phi_alpha = \n fracmathcalH_0^2 Omega_mathrmM0 s_2 D(chi_1)a(chi_1) a_2 s_1\n (chi_1 - s_1) (5s_mathrmb 1 - 2) \n times\n qquadqquad\n left\n 2 f_2 a_2 mathcalH_2^2 (mathitf_mathrmevo 2 - 3) + \n 3 mathcalH_0^2 Omega_mathrmM0 (f_2 + mathcalR_2 + 5s_mathrmb 2 - 2)\n right nonumber\n \n \n J^kappa phi_beta =\n 2 y chi_1^2 - chi_1 s_2 (y^2 + 3) + 2 y s_2^2\n \n \n J^kappa phi_20 = frac12 y Deltachi_1^2 \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nb_1, s_mathrmb 1, mathitf_mathrmevo 1 (and b_2, s_mathrmb 2, mathitf_mathrmevo 2) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nIn this TPCF there are no observer terms. The obs keyword is inserted only for compatibility with the other GNC TPCFs.\n\nThis function is used inside ξ_GNC_Lensing_LocalGP with trapz() from the Trapz Julia package.\n\nInputs\n\nIP::Point, P1::Point, P2::Point or χ1,s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nb1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:\nif not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;\nif you set one or more values, they will override the cosmo ones in this computation;\nthe two sets of values should be different only if you are interested in studing two galaxy species;\nonly the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities. \ns_lim=nothing : parameter used in order to avoid the divergence of the mathcalR and mathfrakR denominators: when 0 leq s leq s_mathrmlim the returned values are\nforall s in 0 s_mathrmlim quad \n mathfrakR(s) = 1 - frac1mathcalH_0 s_mathrmlim quad\n mathcalR(s) = 5 s_mathrmb + \n frac2 - 5 s_mathrmbmathcalH_0 s_mathrmlim + \n fracdotmathcalHmathcalH_0^2 - mathitf_mathrmevo \nIf nothing, the default value stored in cosmo will be considered.\nobs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?\n:yes or true -> all the observer effects will be considered\n:no or false -> no observer term will be taken into account\n:noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_Lensing_LocalGP\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations_3/#GaPSE.integrand_ξ_GNC_Lensing_IntegratedGP","page":"GNC TPCFs","title":"GaPSE.integrand_ξ_GNC_Lensing_IntegratedGP","text":" integrand_ξ_GNC_Lensing_IntegratedGP(\n IP1::Point, IP2::Point,\n P1::Point, P2::Point,\n y, cosmo::Cosmology; \n obs::Union{Bool,Symbol}=:noobsvel\n ) ::Float64\n\n integrand_ξ_GNC_Lensing_IntegratedGP(\n χ1::Float64, χ2::Float64,\n s1::Float64, s2::Float64,\n y, cosmo::Cosmology;\n kwargs...) ::Float64\n\nReturn the integrand of the Two-Point Correlation Function (TPCF) given by the cross correlation between the Lensing and the Integrated Gravitational Potential (GP) effects arising from the Galaxy Number Counts (GNC).\n\nIn the first method, you should pass the two extreme Points (P1 and P2) and the two intermediate integrand Points (IP1 and IP2) where to evaluate the function. In the second method (that internally recalls the first), you must provide the four corresponding comoving distances s1, s2, χ1, χ2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this integrand is the following:\n\nbeginsplit\n f^kappa intphi (chi_1 chi_2 s_1 s_2 y ) = \n J_alpha^kappa intphi \n left \n J_31^kappa intphi I_1^3 ( Delta chi ) +\n J_22^kappa intphi I_2^2 ( Delta chi ) \n right \nendsplit\n\nwith\n\nbeginsplit\n J_alpha^kappa intphi =\n frac\n 9 chi_2 mathcalH_0^4 Omega_mathrmM0^2 D(chi_1) D(chi_2) \n \n a(chi_1) a(chi_2) s_1 s_2\n \n (chi_1 - s_1) (5 s_mathrmb 1 - 2) times\n qquadqquadqquadqquadqquadqquad\n left\n mathcalH(chi_2) mathcalR_2 s_1 (f(chi_2) - 1) - 5 s_mathrmb 1 + 2\n right nonumber\n \n \n J_31^kappa intphi = y Deltachi^2\n \n \n J_22^kappa intphi = \n frac12 (y^2 - 1) chi_1 chi_2 \n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nb_1, s_mathrmb 1, mathitf_mathrmevo 1 (and b_2, s_mathrmb 2, mathitf_mathrmevo 2) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nIn this TPCF there are no observer terms. The obs keyword is inserted only for compatibility with the other GNC TPCFs.\n\nThis function is used inside ξ_GNC_Lensing_IntegratedGP with trapz() from the Trapz Julia package.\n\nInputs\n\nIP1::Point, IP2::Point, P1::Point, P2::Point or χ1, χ2, s1, s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nb1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:\nif not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;\nif you set one or more values, they will override the cosmo ones in this computation;\nthe two sets of values should be different only if you are interested in studing two galaxy species;\nonly the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities. \ns_lim=nothing : parameter used in order to avoid the divergence of the mathcalR and mathfrakR denominators: when 0 leq s leq s_mathrmlim the returned values are\nforall s in 0 s_mathrmlim quad \n mathfrakR(s) = 1 - frac1mathcalH_0 s_mathrmlim quad\n mathcalR(s) = 5 s_mathrmb + \n frac2 - 5 s_mathrmbmathcalH_0 s_mathrmlim + \n fracdotmathcalHmathcalH_0^2 - mathitf_mathrmevo \nIf nothing, the default value stored in cosmo will be considered.\nobs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?\n:yes or true -> all the observer effects will be considered\n:no or false -> no observer term will be taken into account\n:noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning IntegratedGP) will be neglected, the other ones will be taken into account\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_Lensing_IntegratedGP\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations_3/#GaPSE.integrand_ξ_GNC_LocalGP_IntegratedGP","page":"GNC TPCFs","title":"GaPSE.integrand_ξ_GNC_LocalGP_IntegratedGP","text":"integrand_ξ_GNC_LocalGP_IntegratedGP(\n IP::Point, P1::Point, P2::Point,\n y, cosmo::Cosmology; \n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, \n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,\n obs::Union{Bool,Symbol}=:noobsvel\n ) ::Float64\n\nintegrand_ξ_GNC_LocalGP_IntegratedGP(\n χ2::Float64, s1::Float64, s2::Float64,\n y, cosmo::Cosmology;\n kwargs... )::Float64\n\nReturn the integrand of the Two-Point Correlation Function (TPCF) given by the cross correlation between the Local Gravitational Potential (GP) and the Integrated Gravitational Potential (GP) effects arising from the Galaxy Number Counts (GNC).\n\nIn the first method, you should pass the two extreme Points (P1 and P2) and the intermediate integrand Point (IP) where to evaluate the function. In the second method (that internally recalls the first), you must provide the three corresponding comoving distances s1, s2, χ2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this integrand is the following:\n\nbeginsplit\n f^phi intphi (chi_2 s_1 s_2 y ) = \n D_1 J^phi intphi_40 tildeI_0^4 ( Deltachi_2 ) + \n J^phi_0 intphi_04 tildeI_0^4 ( chi_2 ) \nendsplit\n\nwith\n\nbeginsplit\n J^phi intphi_40 =\n frac\n 3 Deltachi_2^4 mathcalH_0^2 Omega_mathrmM0 D(chi_2) \n \n 2 s_2 a(chi_2) a_1\n left\n s_2 mathcalH(chi_2) mathcalR_2(f(chi_2)-1) -5 s_mathrmb 2+2\n right \n times\n qquadqquadqquad\n left\n 2 a_1 f_1 mathcalH_1^2 (mathitf_mathrmevo 1 - 3) +\n 3 mathcalH_0^2 Omega_mathrmM0 (f_1 + mathcalR_1 + 5 s_mathrmb 1 - 2)\n right\n nonumber \n \n J^phi_0 intphi_40 =\n frac\n 3 chi_2^4 mathcalH_0^3 Omega_mathrmM0 D(chi_2)\n \n 2 s_1 s_2 a(chi_2)\n left\n s_2 mathcalH(chi_2) mathcalR_2 (f(chi_2) - 1) - 5 s_mathrmb 2 + 2\n righttimes\n nonumber \n qquadqquadqquad\n left\n - 3 Omega_mathrmM0 mathcalH_0 s_1 mathcalR_1 +\n 2 f_0 (mathcalH_0 s_1 mathcalR_1 + 5 s_mathrmb 1 - 2)\n right \n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nb_1, s_mathrmb 1, mathitf_mathrmevo 1 (and b_2, s_mathrmb 2, mathitf_mathrmevo 2) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nIn this TPCF, the term proportional to D(s_1) is not an observer term. The other one instead is, and it does also depend on the observer velocity. Consequently, if you set obs = :yes or obs = true both of them will computed, while for obs = :no, obs = false or even obs = :noobsvel only the first one will be taken into account.\n\nThis function is used inside ξ_GNC_LocalGP_IntegratedGP with trapz() from the Trapz Julia package.\n\nInputs\n\nIP::Point, P1::Point, P2::Point or χ2,s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nb1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:\nif not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;\nif you set one or more values, they will override the cosmo ones in this computation;\nthe two sets of values should be different only if you are interested in studing two galaxy species;\nonly the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities. \ns_lim=nothing : parameter used in order to avoid the divergence of the mathcalR and mathfrakR denominators: when 0 leq s leq s_mathrmlim the returned values are\nforall s in 0 s_mathrmlim quad \n mathfrakR(s) = 1 - frac1mathcalH_0 s_mathrmlim quad\n mathcalR(s) = 5 s_mathrmb + \n frac2 - 5 s_mathrmbmathcalH_0 s_mathrmlim + \n fracdotmathcalHmathcalH_0^2 - mathitf_mathrmevo \nIf nothing, the default value stored in cosmo will be considered.\nobs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?\n:yes or true -> all the observer effects will be considered\n:no or false -> no observer term will be taken into account\n:noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account\nsuit_sampling::Bool = true : this bool keyword can be found in all the TPCFs which have at least one χ integral; it is conceived to enable a sampling of the χ integral(s) suited for the given TPCF; however, it actually have an effect only in the TPCFs that have such a sampling implemented in the code. Currently, only ξ_GNC_Newtonian_Lensing (and its simmetryc TPCF) has it.\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_LocalGP_IntegratedGP\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations_3/#Two-Point-Cross-Correlation-Function-multipoles","page":"GNC TPCFs","title":"Two-Point Cross-Correlation Function multipoles","text":"","category":"section"},{"location":"GNC_Correlations_3/","page":"GNC TPCFs","title":"GNC TPCFs","text":"GaPSE.integrand_ξ_GNC_multipole\nGaPSE.ξ_GNC_multipole\nGaPSE.map_ξ_GNC_multipole\nGaPSE.print_map_ξ_GNC_multipole","category":"page"},{"location":"GNC_Correlations_3/#GaPSE.integrand_ξ_GNC_multipole","page":"GNC TPCFs","title":"GaPSE.integrand_ξ_GNC_multipole","text":"integrand_ξ_GNC_multipole(s1, s, μ, effect::Function, cosmo::Cosmology;\n L::Int = 0, use_windows::Bool = true, kwargs...)\n\nintegrand_ξ_GNC_multipole(s1, s, μ, effect::String, cosmo::Cosmology; kwargs...)\n\nReturn the integrand on mu = hatmathbfs_1 cdot hatmathbfs of the of the chosen Galaxy Number Counts (GNC) Two-Point Correlation Function (TPCF) term, i.e. the following function f(s_1 s mu):\n\n f_L(s_1 s mu) = xi left(s_1 s_2 yright) \n mathcalL_L(mu) times \n begincases \n frac1mathcalNmathcalF(s mu) quad mathrmuse_windows == true \n 1 quadquad mathrmuse_windows == false\n endcases\n\nwhere:\n\ns_2 = s_2(s_1 s mu) = sqrts_1^2 + s^2 + 2 s_1 s mu \ny = costheta = hatmathbfs_1 cdot hatmathbfs_2 = fracmu s + s_1s_2(s_1 s mu)\nxi is the corresponding GNC TPCF effect\nmathcalL_L(mu) is the Legendre polynomial of order L\nmathcalF(s mu) is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)\nmathcalN is the integrated window function norm (check the documentation of WindowFIntegrated)\n\nIn the former method you have to pass as an input the GNC effect function you want to integrate, while in the (recommended) latter one it's necessary to specify the name of the GNC TPCF term among the following:\n\nauto_newton , auto_doppler , auto_lensing , auto_localgp , auto_integratedgp , newton_doppler , doppler_newton , newton_lensing , lensing_newton , newton_localgp , localgp_newton , newton_integratedgp , integratedgp_newton , lensing_doppler , doppler_lensing , doppler_localgp , localgp_doppler , doppler_integratedgp , integratedgp_doppler , lensing_localgp , localgp_lensing , lensing_integratedgp , integratedgp_lensing , localgp_integratedgp , integratedgp_localgp ,\n\nto which correspond the following functions, respectively:\n\nξ_GNC_Newtonian , ξ_GNC_Doppler , ξ_GNC_Lensing , ξ_GNC_LocalGP , ξ_GNC_IntegratedGP , ξ_GNC_Newtonian_Doppler , ξ_GNC_Doppler_Newtonian , ξ_GNC_Newtonian_Lensing , ξ_GNC_Lensing_Newtonian , ξ_GNC_Newtonian_LocalGP , ξ_GNC_LocalGP_Newtonian , ξ_GNC_Newtonian_IntegratedGP , ξ_GNC_IntegratedGP_Newtonian , ξ_GNC_Lensing_Doppler , ξ_GNC_Doppler_Lensing , ξ_GNC_Doppler_LocalGP , ξ_GNC_LocalGP_Doppler , ξ_GNC_Doppler_IntegratedGP , ξ_GNC_IntegratedGP_Doppler , ξ_GNC_Lensing_LocalGP , ξ_GNC_LocalGP_Lensing , ξ_GNC_Lensing_IntegratedGP , ξ_GNC_IntegratedGP_Lensing , ξ_GNC_LocalGP_IntegratedGP , ξ_GNC_IntegratedGP_LocalGP ,\n\nInternally, the second method recall the first, so all the keyword arguments are in common.\n\nNote that these is an internal conversion of coordiate sistems from (s1, s, μ) to (s1, s2, y) thorugh the functions y and s2. The inverse relations are:\n\ns = s(s_1 s_2 y) = sqrts_1^2 + s_2^2 - 2 s_1 s_2 y\nmu = costheta = hatmathbfs_1 cdot hatmathbfs = fracy s_2 - s_1s(s_1 s_2 y).\n\nInputs\n\ns1: the comoving distance where must be evaluated the integral\ns: the comoving distance from s1 where must be evaluated the integral\nμ: the cosine between s1 and s where must be evaluated the integral\neffect::Function or effect::String : name/function you want to consider, among the ones inside GaPSE.GR_EFFECTS_GNC/GaPSE.VEC_ξs_GNC respectively.\ncosmo::Cosmology: cosmology to be used in this computation\n\nOptional arguments\n\nL::Int = 0: order of the Legendre polynomial to be used\nuse_windows::Bool = false: tells if the integrand must consider the two window function phi and mathcalF\nkwargs... : other keyword arguments that will be passed to the selected GR TPCF effect (ξ_GNC_Doppler, ξ_GNC_Lensing, ...)\n\nSee also: ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, WindowFIntegrated, ϕ, Cosmology, y, s2, GR_EFFECTS_GNC, GaPSE.VEC_ξs_GNC\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations_3/#GaPSE.ξ_GNC_multipole","page":"GNC TPCFs","title":"GaPSE.ξ_GNC_multipole","text":"ξ_GNC_multipole(\n s1, s, effect::Function, cosmo::Cosmology;\n L::Int = 0, alg::Symbol = :lobatto, \n use_windows::Bool = true, \n obs::Union{Bool,Symbol} = :noobsvel,\n N_lob::Int = 100, N_trap::Int = 200, \n atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,\n enhancer::Float64 = 1e6, \n kwargs...) ::Float64\n\nξ_GNC_multipole(s1, s, effect::String, cosmo::Cosmology; \n kwargs...) ::Float64\n\nEvaluate the multipole of order L of the chosen Galaxy Number Counts (GNC) Two-Point Correlation Function (TPCF) term i.e. the following function xi_L(s_1 s):\n\n xi_L(s_1 s) = frac2 L + 12 int_-1^+1 mathrmdmu \n xi (s_1 s_2 costheta) mathcalL_L(mu) times\n begincases \n frac1mathcalNmathcalF(s mu) quad mathrmuse_windows == true \n 1 quadquad mathrmuse_windows == false\n endcases\n\nwhere:\n\ns_2 = s_2(s_1 s mu) = sqrts_1^2 + s^2 + 2 s_1 s mu \ny = costheta = hatmathbfs_1 cdot hatmathbfs_2 = fracmu s + s_1s_2(s_1 s mu)\nxi is the corresponding GNC TPCF effect\nmathcalL_L(mu) is the Legendre polynomial of order L\nmathcalF(s mu) is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)\nmathcalN is the integrated window function norm (check the documentation of WindowFIntegrated) \n\nIn the former method you have to pass as an input the GNC effect function you want to integrate, while in the (recommended) latter one it's necessary to specify the name of the GNC TPCF term among the following:\n\nauto_newton , auto_doppler , auto_lensing , auto_localgp , auto_integratedgp , newton_doppler , doppler_newton , newton_lensing , lensing_newton , newton_localgp , localgp_newton , newton_integratedgp , integratedgp_newton , lensing_doppler , doppler_lensing , doppler_localgp , localgp_doppler , doppler_integratedgp , integratedgp_doppler , lensing_localgp , localgp_lensing , lensing_integratedgp , integratedgp_lensing , localgp_integratedgp , integratedgp_localgp ,\n\nto which correspond the following functions:\n\nξ_GNC_Newtonian , ξ_GNC_Doppler , ξ_GNC_Lensing , ξ_GNC_LocalGP , ξ_GNC_IntegratedGP , ξ_GNC_Newtonian_Doppler , ξ_GNC_Doppler_Newtonian , ξ_GNC_Newtonian_Lensing , ξ_GNC_Lensing_Newtonian , ξ_GNC_Newtonian_LocalGP , ξ_GNC_LocalGP_Newtonian , ξ_GNC_Newtonian_IntegratedGP , ξ_GNC_IntegratedGP_Newtonian , ξ_GNC_Lensing_Doppler , ξ_GNC_Doppler_Lensing , ξ_GNC_Doppler_LocalGP , ξ_GNC_LocalGP_Doppler , ξ_GNC_Doppler_IntegratedGP , ξ_GNC_IntegratedGP_Doppler , ξ_GNC_Lensing_LocalGP , ξ_GNC_LocalGP_Lensing , ξ_GNC_Lensing_IntegratedGP , ξ_GNC_IntegratedGP_Lensing , ξ_GNC_LocalGP_IntegratedGP , ξ_GNC_IntegratedGP_LocalGP ,\n\nInternally, the second method recall the first, so all the keyword arguments are in common.\n\nNote that these is an internal conversion of coordiate sistems from (s1, s, μ) to (s1, s2, y) thorugh the functions y and s2. The inverse relations are:\n\ns = s(s_1 s_2 y) = sqrts_1^2 + s_2^2 - 2 s_1 s_2 y\nmu = costheta = hatmathbfs_1 cdot hatmathbfs = fracy s_2 - s_1s(s_1 s_2 y).\n\nInputs\n\ns1: the comoving distance where must be evaluated the integral\ns: the comoving distance from s1 where must be evaluated the integral\neffect::Function or effect::String : name/function you want to consider, among the ones inside GaPSE.GR_EFFECTS_GNC/GaPSE.VEC_ξs_GNC respectively.\ncosmo::Cosmology: cosmology to be used in this computation\n\nOptional arguments\n\nL::Int = 0: order of the Legendre polynomial to be used\nalg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):\n:quad -> the integration over mu will be preformed through the Julia function quadgk from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n:trap -> the integration over mu will be preformed through the Julia function trapz from the Trapz.jl Julia package, that uses the simple trapezoidal rulae.\n:lobatto -> the integration over mu will be preformed through the Julia function gausslobatto from the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!\nuse_windows::Bool = false: tells if the integrand must consider the two window function phi and mathcalF\nobs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?\n:yes or true -> all the observer effects will be considered\n:no or false -> no observer term will be taken into account\n:noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account\nN_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\nN_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\nkwargs... : other keyword arguments that will be passed to the selected GNC TPCF effect (ξ_GNC_Doppler, ξ_GNC_Lensing, ...)\n\nSee also: integrand_ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole WindowFIntegrated, Cosmology, y, s2, GR_EFFECTS_GNC, VEC_ξs_GNC\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations_3/#GaPSE.map_ξ_GNC_multipole","page":"GNC TPCFs","title":"GaPSE.map_ξ_GNC_multipole","text":"map_ξ_GNC_multipole(cosmo::Cosmology,\n effect::Union{String,Function}, ss = nothing;\n s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,\n obs::Union{Bool,Symbol} = :noobsvel,\n N_lob::Int = 100, N_trap::Int = 50,\n atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,\n enhancer::Float64=1e6, N_log::Int = 1000, \n pr::Bool = true,\n kwargs...) ::Tuple{Vector{Float64}, Vector{Float64}}\n\nEvaluate the multipole of order L of the chosen Galaxy Number Counts (GNC) Two-Point Correlation Function (TPCF) term for all the comoving distance values stored inside ss. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). If s1 = nothing, it is set s1 = cosmo.s_eff.\n\nThe function evaluated is then the following xi_L(s_1 s):\n\n xi_L(s_1 s) = frac2 L + 12 int_-1^+1 mathrmdmu \n xi (s_1 s_2 costheta) mathcalL_L(mu) times\n begincases \n frac1mathcalNmathcalF(s mu) quad mathrmuse_windows == true \n 1 quadquad mathrmuse_windows == false\n endcases\n\nwhere:\n\ns_2 = s_2(s_1 s mu) = sqrts_1^2 + s^2 + 2 s_1 s mu \ny = costheta = hatmathbfs_1 cdot hatmathbfs_2 = fracmu s + s_1s_2(s_1 s mu)\nxi is the corresponding GNC TPCF effect\nmathcalL_L(mu) is the Legendre polynomial of order L\nmathcalF(s mu) is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)\nmathcalN is the integrated window function norm (check the documentation of WindowFIntegrated) \n\nNote that these is an internal conversion of coordiate sistems from (s1, s, μ) to (s1, s2, y) thorugh the functions y and s2. The inverse relations are:\n\ns = s(s_1 s_2 y) = sqrts_1^2 + s_2^2 - 2 s_1 s_2 y\nmu = costheta = hatmathbfs_1 cdot hatmathbfs = fracy s_2 - s_1s(s_1 s_2 y).\n\nInputs\n\ncosmo::Cosmology : cosmology to be used in this computation\neffect::Union{String,Function} : the GR effect TPCF you want to consider; you may specify the name of the effect as one of the following strings (recommended):\nauto_newton , auto_doppler , auto_lensing , auto_localgp , auto_integratedgp , newton_doppler , doppler_newton , newton_lensing , lensing_newton , newton_localgp , localgp_newton , newton_integratedgp , integratedgp_newton , lensing_doppler , doppler_lensing , doppler_localgp , localgp_doppler , doppler_integratedgp , integratedgp_doppler , lensing_localgp , localgp_lensing , lensing_integratedgp , integratedgp_lensing , localgp_integratedgp , integratedgp_localgp ,\nor directly the name of the function among the following: \nξ_GNC_Newtonian , ξ_GNC_Doppler , ξ_GNC_Lensing , ξ_GNC_LocalGP , ξ_GNC_IntegratedGP , ξ_GNC_Newtonian_Doppler , ξ_GNC_Doppler_Newtonian , ξ_GNC_Newtonian_Lensing , ξ_GNC_Lensing_Newtonian , ξ_GNC_Newtonian_LocalGP , ξ_GNC_LocalGP_Newtonian , ξ_GNC_Newtonian_IntegratedGP , ξ_GNC_IntegratedGP_Newtonian , ξ_GNC_Lensing_Doppler , ξ_GNC_Doppler_Lensing , ξ_GNC_Doppler_LocalGP , ξ_GNC_LocalGP_Doppler , ξ_GNC_Doppler_IntegratedGP , ξ_GNC_IntegratedGP_Doppler , ξ_GNC_Lensing_LocalGP , ξ_GNC_LocalGP_Lensing , ξ_GNC_Lensing_IntegratedGP , ξ_GNC_IntegratedGP_Lensing , ξ_GNC_LocalGP_IntegratedGP , ξ_GNC_IntegratedGP_LocalGP ,\nss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). This is why it is returned also the vector of the \"input\" values.\n\nOptional arguments\n\ns1 = nothing : comoving distance from the observer where the TPCF should be evaluated; if s1 = nothing, it is automatically set s1 = cosmo.s_eff from the given input cosmo::Cosmology.\nL::Int = 0: order of the Legendre polynomial to be used\nalg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):\n:quad -> the integration over mu will be preformed through the Julia function quadgk from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n:trap -> the integration over mu will be preformed through the Julia function trapz from the Trapz.jl Julia package, that uses the simple trapezoidal rulae.\n:lobatto -> the integration over mu will be preformed through the Julia function gausslobatto from the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!\nuse_windows::Bool = false: tells if the integrand must consider the two window function phi and mathcalF\nobs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?\n:yes or true -> all the observer effects will be considered\n:no or false -> no observer term will be taken into account\n:noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account\nN_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\nN_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\nN_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing \npr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)\nkwargs... : other keyword arguments that will be passed to the selected GNC TPCF effect (ξ_GNC_Doppler, ξ_GNC_Lensing, ...)\n\nReturns\n\nA Tuple{Vector{Float64}, Vector{Float64}}, which has as first element the ss vector and as second one the corresponding ξ value evaluated.\n\nSee also: integrand_ξ_GNC_multipole, ξ_GNC_multipole, print_map_ξ_GNC_multipole, WindowFIntegrated, Cosmology, y, s2, GR_EFFECTS_GNC, GaPSE.VEC_ξs_GNC\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations_3/#GaPSE.print_map_ξ_GNC_multipole","page":"GNC TPCFs","title":"GaPSE.print_map_ξ_GNC_multipole","text":"print_map_ξ_GNC_multipole(\n cosmo::Cosmology, out::String,\n effect::Union{String,Function},\n ss = nothing;\n s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,\n obs::Union{Bool,Symbol} = :noobsvel,\n N_lob::Int = 100, N_trap::Int = 50,\n atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,\n enhancer::Float64=1e6, N_log::Int = 1000, \n pr::Bool = true,\n kwargs...)\n\nEvaluate the multipole of order L of the chosen Galaxy Number Counts (GNC) Two-Point Correlation Function (TPCF) term for all the comoving distance values stored inside ss, and print the results (with all the options used) in a file named out. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). If s1 = nothing, it is set s1 = cosmo.s_eff.\n\nThe function evaluated is then the following xi_L(s_1 s):\n\n xi_L(s_1 s) = frac2 L + 12 int_-1^+1 mathrmdmu \n xi (s_1 s_2 costheta) mathcalL_L(mu) times\n begincases \n frac1mathcalNmathcalF(s mu) quad mathrmuse_windows == true \n 1 quadquad mathrmuse_windows == false\n endcases\n\nwhere:\n\ns_2 = s_2(s_1 s mu) = sqrts_1^2 + s^2 + 2 s_1 s mu \ny = costheta = hatmathbfs_1 cdot hatmathbfs_2 = fracmu s + s_1s_2(s_1 s mu)\nxi is the corresponding GNC TPCF effect\nmathcalL_L(mu) is the Legendre polynomial of order L\nmathcalF(s mu) is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)\nmathcalN is the integrated window function norm (check the documentation of WindowFIntegrated) \n\nNote that these is an internal conversion of coordiate sistems from (s1, s, μ) to (s1, s2, y) thorugh the functions y and s2. The inverse relations are:\n\ns = s(s_1 s_2 y) = sqrts_1^2 + s_2^2 - 2 s_1 s_2 y\nmu = costheta = hatmathbfs_1 cdot hatmathbfs = fracy s_2 - s_1s(s_1 s_2 y).\n\nInputs\n\ncosmo::Cosmology : cosmology to be used in this computation\neffect::Union{String,Function} : the GR effect TPCF you want to consider; you may specify the name of the effect as one of the following strings (recommended):\nauto_newton , auto_doppler , auto_lensing , auto_localgp , auto_integratedgp , newton_doppler , doppler_newton , newton_lensing , lensing_newton , newton_localgp , localgp_newton , newton_integratedgp , integratedgp_newton , lensing_doppler , doppler_lensing , doppler_localgp , localgp_doppler , doppler_integratedgp , integratedgp_doppler , lensing_localgp , localgp_lensing , lensing_integratedgp , integratedgp_lensing , localgp_integratedgp , integratedgp_localgp ,\nor directly the name of the function among the following: \nξ_GNC_Newtonian , ξ_GNC_Doppler , ξ_GNC_Lensing , ξ_GNC_LocalGP , ξ_GNC_IntegratedGP , ξ_GNC_Newtonian_Doppler , ξ_GNC_Doppler_Newtonian , ξ_GNC_Newtonian_Lensing , ξ_GNC_Lensing_Newtonian , ξ_GNC_Newtonian_LocalGP , ξ_GNC_LocalGP_Newtonian , ξ_GNC_Newtonian_IntegratedGP , ξ_GNC_IntegratedGP_Newtonian , ξ_GNC_Lensing_Doppler , ξ_GNC_Doppler_Lensing , ξ_GNC_Doppler_LocalGP , ξ_GNC_LocalGP_Doppler , ξ_GNC_Doppler_IntegratedGP , ξ_GNC_IntegratedGP_Doppler , ξ_GNC_Lensing_LocalGP , ξ_GNC_LocalGP_Lensing , ξ_GNC_Lensing_IntegratedGP , ξ_GNC_IntegratedGP_Lensing , ξ_GNC_LocalGP_IntegratedGP , ξ_GNC_IntegratedGP_LocalGP ,\nout::String : name of the file where the results must be stored.\nss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log).\n\nOptional arguments\n\nThis function recall internally map_ξ_GNC_multipole, so the kwargs are the same; we report them for comfortness:\n\ns1 = nothing : comoving distance from the observer where the TPCF should be evaluated; if s1 = nothing, it is automatically set s1 = cosmo.s_eff from the given input cosmo::Cosmology.\nL::Int = 0: order of the Legendre polynomial to be used\nalg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):\n:quad -> the integration over mu will be preformed through the Julia function quadgk from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n:trap -> the integration over mu will be preformed through the Julia function trapz from the Trapz.jl Julia package, that uses the simple trapezoidal rulae.\n:lobatto -> the integration over mu will be preformed through the Julia function gausslobatto from the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!\nuse_windows::Bool = false: tells if the integrand must consider the two window function phi and mathcalF\nobs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?\n:yes or true -> all the observer effects will be considered\n:no or false -> no observer term will be taken into account\n:noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account\nN_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\nN_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\nN_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing \npr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)\nkwargs... : other keyword arguments that will be passed to the selected GNC TPCF effect (ξ_GNC_Doppler, ξ_GNC_Lensing, ...)\n\nSee also: integrand_ξ_GNC_multipole, ξ_GNC_multipole, print_map_ξ_GNC_multipole, WindowFIntegrated, Cosmology, y, s2, GR_EFFECTS_GNC, GaPSE.VEC_ξs_GNC\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations_3/#Two-Point-Cross-Correlation-Function-Sum-multipoles","page":"GNC TPCFs","title":"Two-Point Cross-Correlation Function Sum multipoles","text":"","category":"section"},{"location":"GNC_Correlations_3/","page":"GNC TPCFs","title":"GNC TPCFs","text":"GaPSE.sum_ξ_GNC_multipole\nGaPSE.map_sum_ξ_GNC_multipole\nGaPSE.print_map_sum_ξ_GNC_multipole","category":"page"},{"location":"GNC_Correlations_3/#GaPSE.sum_ξ_GNC_multipole","page":"GNC TPCFs","title":"GaPSE.sum_ξ_GNC_multipole","text":"sum_ξ_GNC_multipole(s1, s, cosmo::Cosmology;\n s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,\n obs::Union{Bool,Symbol} = :noobsvel,\n N_lob::Int = 100, N_trap::Int = 50,\n atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,\n enhancer::Float64=1e6, N_log::Int = 1000, \n pr::Bool = true,\n kwargs...) ::Tuple{Float64, Vector{Float64}}\n\nEvaluate the multipole of order L of all the Galaxy Number Counts (GNC) Two-Point Correlation Function (TPCF) multipoles and their sum in the comoving distance s1 and a comoving distance s from it for the input cosmo::Cosmology. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThis function makes a for-loop on the GaPSE.GR_EFFECTS_GNC strings, calling ξ_GNC_multipole for each of them. To each string corresponds pretty intuitively one of the 25 GNC effects. They are currently, in order:\n\nauto_newton , auto_doppler , auto_lensing , auto_localgp , auto_integratedgp , newton_doppler , doppler_newton , newton_lensing , lensing_newton , newton_localgp , localgp_newton , newton_integratedgp , integratedgp_newton , lensing_doppler , doppler_lensing , doppler_localgp , localgp_doppler , doppler_integratedgp , integratedgp_doppler , lensing_localgp , localgp_lensing , lensing_integratedgp , integratedgp_lensing , localgp_integratedgp , integratedgp_localgp ,\n\nInputs\n\ns1: the comoving distance where must be evaluated the integral\ns: the comoving distance from s1 where must be evaluated the integral\ncosmo::Cosmology: cosmology to be used in this computation\n\nOptional arguments\n\nThis function recall internally ξ_GNC_multipole, so the kwargs are the same; we report them for comfortness:\n\nL::Int = 0: order of the Legendre polynomial to be used\nalg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):\n:quad -> the integration over mu will be preformed through the Julia function quadgk from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n:trap -> the integration over mu will be preformed through the Julia function trapz from the Trapz.jl Julia package, that uses the simple trapezoidal rulae.\n:lobatto -> the integration over mu will be preformed through the Julia function gausslobatto from the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!\nuse_windows::Bool = false: tells if the integrand must consider the two window function phi and mathcalF\nobs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?\n:yes or true -> all the observer effects will be considered\n:no or false -> no observer term will be taken into account\n:noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account\nN_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\nN_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\nkwargs... : other keyword arguments that will be passed to ALL the GNC TPCF effect (ξ_GNC_Doppler, ξ_GNC_Lensing, ...); if one of them has that keyword argument, it will use the given value, otherwise it will be unaffected.\n\nReturns\n\nA tuple containing:\n\nthe sum of all the ξ multipoles as first element\na Vector{Float64} with all the values of each ξ; they are ordered following GR_EFFECTS_GNC\n\nSee also: integrand_ξ_GNC_multipole, ξ_GNC_multipole, map_sum_ξ_GNC_multipole, print_map_sum_ξ_GNC_multipole, Cosmology, GR_EFFECTS_GNC\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations_3/#GaPSE.map_sum_ξ_GNC_multipole","page":"GNC TPCFs","title":"GaPSE.map_sum_ξ_GNC_multipole","text":"map_sum_ξ_GNC_multipole(\n effect::Union{String,Function}, ss = nothing;\n s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,\n obs::Union{Bool,Symbol} = :noobsvel,\n N_lob::Int = 100, N_trap::Int = 50,\n atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,\n enhancer::Float64=1e6, N_log::Int = 1000, \n pr::Bool = true,\n kwargs...) ::Tuple{Vector{Float64}, Vector{Float64}, Vector{Vector{Float64}}}\n\nEvaluate the multipole of order L of all the Galaxy Number Counts (GNC) Two-Point Correlation Function (TPCF) multipoles and their sum in the comoving distance s1, for all the comoving distances stored inside ss (representing the comoving distance from s1) for the input cosmo::Cosmology. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). If s1 = nothing, it is set s1 = cosmo.s_eff. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThis function makes a for-loop on the GaPSE.GR_EFFECTS_GNC strings, calling map_ξ_GNC_multipole for each of them. To each string corresponds pretty intuitively one of the 25 GNC effects. They are currently, in order:\n\nauto_newton , auto_doppler , auto_lensing , auto_localgp , auto_integratedgp , newton_doppler , doppler_newton , newton_lensing , lensing_newton , newton_localgp , localgp_newton , newton_integratedgp , integratedgp_newton , lensing_doppler , doppler_lensing , doppler_localgp , localgp_doppler , doppler_integratedgp , integratedgp_doppler , lensing_localgp , localgp_lensing , lensing_integratedgp , integratedgp_lensing , localgp_integratedgp , integratedgp_localgp ,\n\nInputs\n\ncosmo::Cosmology : cosmology to be used in this computation\nss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). This is why it is returned also the vector of the \"input\" values.\n\nOptional arguments\n\nThis function recall internally map_ξ_GNC_multipole, so the kwargs are the same; we report them for comfortness:\n\ns1 = nothing : comoving distance from the observer where the TPCF should be evaluated; if s1 = nothing, it is automatically set s1 = cosmo.s_eff from the given input cosmo::Cosmology.\nL::Int = 0: order of the Legendre polynomial to be used\nalg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):\n:quad -> the integration over mu will be preformed through the Julia function quadgk from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n:trap -> the integration over mu will be preformed through the Julia function trapz from the Trapz.jl Julia package, that uses the simple trapezoidal rulae.\n:lobatto -> the integration over mu will be preformed through the Julia function gausslobatto from the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!\nuse_windows::Bool = false: tells if the integrand must consider the two window function phi and mathcalF\nobs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?\n:yes or true -> all the observer effects will be considered\n:no or false -> no observer term will be taken into account\n:noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account\nN_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\nN_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\nN_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing \npr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)\nkwargs... : other keyword arguments that will be passed to ALL the GNC TPCF effect (ξ_GNC_Doppler, ξ_GNC_Lensing, ...); if one of them has that keyword argument, it will use the given value, otherwise it will be unaffected.\n\nReturns\n\nA tuple containing:\n\nas first element, the vector ss itself;\nas second one, the Vector{Float64} of the sum of all the ξ multipoles;\nas third one, a Vector{Vector{Float64}} with all the values of each ξ; they are ordered following GR_EFFECTS_GNC\n\nSee also: map_ξ_GNC_multipole, sum_ξ_GNC_multipole, print_map_sum_ξ_GNC_multipole, Cosmology, GR_EFFECTS_GNC\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations_3/#GaPSE.print_map_sum_ξ_GNC_multipole","page":"GNC TPCFs","title":"GaPSE.print_map_sum_ξ_GNC_multipole","text":"print_map_sum_ξ_GNC_multipole(\n cosmo::Cosmology, out::String, ss = nothing;\n s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,\n obs::Union{Bool,Symbol} = :noobsvel,\n N_lob::Int = 100, N_trap::Int = 50,\n atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,\n enhancer::Float64=1e6, N_log::Int = 1000, \n pr::Bool = true,\n single::Bool = true,\n kwargs...)\n\nEvaluate the multipole of order L of all the Galaxy Number Counts (GNC) Two-Point Correlation Function (TPCF) multipoles and their sum in the comoving distance s1, for all the comoving distances stored inside ss (representing the comoving distance from s1) for the input cosmo::Cosmology; finally, it saves the results inside the file out. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). If s1 = nothing, it is set s1 = cosmo.s_eff. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThis function makes a for-loop on the GaPSE.GR_EFFECTS_GNC strings, calling map_ξ_GNC_multipole for each of them. To each string corresponds pretty intuitively one of the 25 GNC effects. They are currently, in order:\n\nauto_newton , auto_doppler , auto_lensing , auto_localgp , auto_integratedgp , newton_doppler , doppler_newton , newton_lensing , lensing_newton , newton_localgp , localgp_newton , newton_integratedgp , integratedgp_newton , lensing_doppler , doppler_lensing , doppler_localgp , localgp_doppler , doppler_integratedgp , integratedgp_doppler , lensing_localgp , localgp_lensing , lensing_integratedgp , integratedgp_lensing , localgp_integratedgp , integratedgp_localgp ,\n\nInputs\n\ncosmo::Cosmology : cosmology to be used in this computation\nout::String : name of the file where the results must be stored.\nss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log).\n\nOptional arguments\n\nThis function recall internally map_ξ_GNC_multipole, so the kwargs are the same; we report them for comfortness:\n\ns1 = nothing : comoving distance from the observer where the TPCF should be evaluated; if s1 = nothing, it is automatically set s1 = cosmo.s_eff from the given input cosmo::Cosmology.\nL::Int = 0: order of the Legendre polynomial to be used\nalg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):\n:quad -> the integration over mu will be preformed through the Julia function quadgk from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n:trap -> the integration over mu will be preformed through the Julia function trapz from the Trapz.jl Julia package, that uses the simple trapezoidal rulae.\n:lobatto -> the integration over mu will be preformed through the Julia function gausslobatto from the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!\nuse_windows::Bool = false: tells if the integrand must consider the two window function phi and mathcalF\nobs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?\n:yes or true -> all the observer effects will be considered\n:no or false -> no observer term will be taken into account\n:noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account\nN_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\nN_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\nN_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing \npr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)\nsingle::Bool = true : if true, all the CFs are printed inside the file of the sum, in a table with 18 columns (first one for ss, second for their sum an the next 16 for each effect). Otherwise, a new directory \"allstandalonesCFs\" is created (in the same path given in out) and they are separately saved in files there placed.\nkwargs... : other keyword arguments that will be passed to ALL the GNC TPCF effect (ξ_GNC_Doppler, ξ_GNC_Lensing, ...); if one of them has that keyword argument, it will use the given value, otherwise it will be unaffected.\n\nSee also: map_ξ_GNC_multipole, sum_ξ_GNC_multipole, map_sum_ξ_GNC_multipole, Cosmology, GR_EFFECTS_GNC\n\n\n\n\n\n","category":"function"},{"location":"PlaneParallelApprox/","page":"Calculating TPCFs with the PP Approximation","title":"Calculating TPCFs with the PP Approximation","text":"DocTestSetup = quote\n using GaPSE\nend","category":"page"},{"location":"PlaneParallelApprox/#The-Plane-Parallel-Approximation","page":"Calculating TPCFs with the PP Approximation","title":"The Plane Parallel Approximation","text":"","category":"section"},{"location":"PlaneParallelApprox/#The-GNC-Doppler-TPCF-in-the-Plane-Parallel-Approximation","page":"Calculating TPCFs with the PP Approximation","title":"The GNC Doppler TPCF in the Plane Parallel Approximation","text":"","category":"section"},{"location":"PlaneParallelApprox/","page":"Calculating TPCFs with the PP Approximation","title":"Calculating TPCFs with the PP Approximation","text":"GaPSE.ξ_PPDoppler_L0\nGaPSE.ξ_PPDoppler_L2\nGaPSE.ξ_PPDoppler\nGaPSE.integrand_ξ_PPDoppler_multipole\nGaPSE.ξ_PPDoppler_multipole\nGaPSE.map_ξ_PPDoppler_multipole\nGaPSE.print_map_ξ_PPDoppler_multipole","category":"page"},{"location":"PlaneParallelApprox/#GaPSE.ξ_PPDoppler_L0","page":"Calculating TPCFs with the PP Approximation","title":"GaPSE.ξ_PPDoppler_L0","text":"ξ_PPDoppler_L0(P::Point, cosmo::Cosmology)\nξ_PPDoppler_L0(s, cosmo::Cosmology)\n\nReturn the value of the Two-Point Correlation Function (TPCF) monopole of the Doppler effect in the Plane-Parallel approximation. In the first method, you should pass the Point where to evaluate that function, while in the second (that internally recalls the first) you must provide the comoving distance s. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of such TPCF monopole is the following:\n\nxi^mathrmpp v_parallel_0(s) = \n frac13 f^2(s_mathrmeff) mathscrH^2(s_mathrmeff) \n mathscrR^2_mathrmLD(s_mathrmeff)\n D^2(s_mathrmeff) s^2 I_0^2(s)\n\nwhere:\n\ns_mathrmeff is the effective comoving distance stored in cosmo::Cosmology\nD the linear growth factor and f the linear growth rate\nmathscrH(z) is the comoving Hubble parameter\nmathscrR_mathrmLD is defined as : mathscrR_mathrmLD(z)= 1 - frac1mathscrH(z) s(z)\nI_ell^n is defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n\nwith P(q) as the matter Power Spectrum at z=0 and j_ell as spherical Bessel function of order ell.\n\nAll the cosmological data needed for this computation are taken from the input struct cosmo::Cosmology.\n\nSee also: Point, Cosmology, func_ℛ_LD, ξ_PPDoppler_L2, ξ_PPDoppler, integrand_ξ_PPDoppler_multipole, ξ_PPDoppler_multipole map_ξ_PPDoppler_multipole, print_map_ξ_PPDoppler_multipole\n\n\n\n\n\n","category":"function"},{"location":"PlaneParallelApprox/#GaPSE.ξ_PPDoppler_L2","page":"Calculating TPCFs with the PP Approximation","title":"GaPSE.ξ_PPDoppler_L2","text":"ξ_PPDoppler_L0(P::Point, cosmo::Cosmology)\nξ_PPDoppler_L0(s, cosmo::Cosmology)\n\nReturn the value of the Two-Point Correlation Function (TPCF) quadrupole of the Doppler effect in the Plane-Parallel approximation. In the first method, you should pass the Point where to evaluate that function, while in the second (that internally recalls the first) you must provide the comoving distance s. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of such TPCF monopole is the following:\n\nxi^mathrmpp v_parallel_2(s) = \n -frac23 f^2(z_mathrmeff) mathscrH^2(z_mathrmeff) \n mathscrR^2_mathrmLD(z_mathrmeff)\n D^2(z_mathrmeff) s^2 I_2^2(s)\n\nwhere:\n\nz_mathrmeff is the effective redshift stored in cosmo::Cosmology ( and z_mathrmeff is the effective comoving distance associated in this cosmology)\nD the linear growth factor and f the linear growth rate\nmathscrH(z) is the comoving Hubble parameter\nmathscrR_mathrmLD(z) is defined as : mathscrR_mathrmLD(z)= 1 - frac1mathscrH(z) s(z)\nI_ell^n is defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n\nwith P(q) as the matter Power Spectrum at z=0 and j_ell as spherical Bessel function of order ell.\n\nAll the cosmological data needed for this computation are taken from the input struct cosmo::Cosmology.\n\nSee also: Point, Cosmology, func_ℛ_LD, ξ_PPDoppler_L0, ξ_PPDoppler, integrand_ξ_PPDoppler_multipole, ξ_PPDoppler_multipole map_ξ_PPDoppler_multipole, print_map_ξ_PPDoppler_multipole\n\n\n\n\n\n","category":"function"},{"location":"PlaneParallelApprox/#GaPSE.ξ_PPDoppler","page":"Calculating TPCFs with the PP Approximation","title":"GaPSE.ξ_PPDoppler","text":"ξ_PPDoppler(s, μ, cosmo::Cosmology)\n\nReturn the value of the Two-Point Correlation Function (TPCF) of the Doppler effect in the Plane-Parallel approximation in the given comoving distance s and cosine value for the Legendre polynomials μ (for the given cosmo::Cosmology).\n\nThe analytical expression of such TPCF is the following:\n\nbeginsplit\nxi^mathrmpp v_parallel(szmu) = xi^mathrmpp v_parallel_0(sz) + \n xi^mathrmpp v_parallel_2(s) mathcalL_2(mu) \nxi^mathrmpp v_parallel_0(s) = \n frac13 f^2(s_mathrmeff) mathscrH^2(s_mathrmeff) \n mathscrR^2_mathrmLD(s_mathrmeff)\n D^2(s_mathrmeff) s^2 I_0^2(s) \nxi^mathrmpp v_parallel_2(s) = \n -frac23 f^2(z_mathrmeff) mathscrH^2(z_mathrmeff) \n mathscrR^2_mathrmLD(z_mathrmeff)\n D^2(z_mathrmeff) s^2 I_2^2(s) \nendsplit\n\nwhere: \n\nz is the redshift associated to the comoving distance s in this cosmology\nD the linear growth factor and f the linear growth rate\nmathcalL_ell the Legendre polynomial of order ell\nmathscrH(z) is the comoving Hubble parameter\nmathscrR_mathrmLD(z) is defined as : mathscrR_mathrmLD(z)= 1 - frac1mathscrH(z) s(z)\nI_ell^n is defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n\nwith P(q) as the matter Power Spectrum at z=0 and j_ell as spherical Bessel function of order ell.\n\nAll the cosmological data needed for this computation are taken from the input struct cosmo::Cosmology.\n\nSee also: Point, Cosmology, integrand_ξ_PPDoppler_multipole, ξ_PPDoppler_multipole map_ξ_PPDoppler_multipole, print_map_ξ_PPDoppler_multipole\n\n\n\n\n\n","category":"function"},{"location":"PlaneParallelApprox/#GaPSE.integrand_ξ_PPDoppler_multipole","page":"Calculating TPCFs with the PP Approximation","title":"GaPSE.integrand_ξ_PPDoppler_multipole","text":"integrand_ξ_PPDoppler_multipole(s, μ, cosmo::Cosmology;\n L::Int=0, use_windows::Bool=true)\n\nReturn the integrand on mu = hatmathbfs_1 cdot hatmathbfs of the Doppler effect Two-Point Correlation Function (TPCF) in the Plane Parallel (PP) approximation, i.e. the following function f(s mu):\n\n f_L(s mu) = xi^mathrmpp v_parallel left(s muright) \n mathcalL_L(mu) times \n begincases \n frac1mathcalNmathcalF(s mu) quad mathrmuse_windows == true \n 1 quadquad mathrmuse_windows == false\n endcases\n\nwhere:\n\nxi^mathrmpp v_parallel(smu) is the TPCF of the Doppler term in the PP approximation with the angular dependence, computed from ξ_PPDoppler.\nmathcalL_L(mu) is the Legendre polynomial of order L\nmathcalF(s mu) is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)\nmathcalN is the integrated window function norm (check the documentation of WindowFIntegrated)\n\nInputs\n\ns: the comoving distance where must be evaluated the integral\nμ: the cosine between s1 and s where must be evaluated the integral\ncosmo::Cosmology: cosmology to be used in this computation\n\nOptional arguments\n\nL::Int = 0: order of the Legendre polynomial to be used\nuse_windows::Bool = false: tells if the integrand must consider mathcalF or not.\n\nSee also:ξ_PPDoppler, ξ_PPDoppler_multipole, map_ξ_PPDoppler_multipole, print_map_ξ_PPDoppler_multipole WindowFIntegrated, Cosmology, \n\n\n\n\n\n","category":"function"},{"location":"PlaneParallelApprox/#GaPSE.ξ_PPDoppler_multipole","page":"Calculating TPCFs with the PP Approximation","title":"GaPSE.ξ_PPDoppler_multipole","text":"ξ_PPDoppler_multipole(\n s, cosmo::Cosmology;\n L::Int = 0, use_windows::Bool = true,\n atol_quad::Float64 = 0.0,\n rtol_quad::Float64 = 1e-2,\n enhancer::Float64 = 1e6 ) ::Float64\n\nEvaluate the multipole of order L of the Doppler effect Two-Point Correlation Function (TPCF) in the Plane Parallel (PP) term i.e. the following function xi^mathrmpp v_parallel (s):\n\n xi^mathrmpp v_parallel (s) = frac2 L + 12 int_-1^+1 mathrmdmu \n xi^mathrmpp v_parallel left(s muright) \n mathcalL_L(mu) times \n begincases \n frac1mathcalNmathcalF(s mu) quad mathrmuse_windows == true \n 1 quadquad mathrmuse_windows == false\n endcases\n\nwhere:\n\nxi^mathrmpp v_parallel(smu) is the TPCF of the Doppler term in the PP approximation with the angular dependence, computed from ξ_PPDoppler.\nmathcalL_L(mu) is the Legendre polynomial of order L\nmathcalF(s mu) is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)\nmathcalN is the integrated window function norm (check the documentation of WindowFIntegrated)\n\nThe integration over mu is preformed through the Julia function quadgk from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n\nInputs\n\ns: the comoving distance where must be evaluated the integral\ncosmo::Cosmology: cosmology to be used in this computation\n\nOptional arguments\n\nL::Int = 0: order of the Legendre polynomial to be used\nuse_windows::Bool = false: tells if the integrand must consider mathcalF or not.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\n\nSee also: ξ_PPDoppler, integrand_ξ_PPDoppler_multipole, map_ξ_PPDoppler_multipole, print_map_ξ_PPDoppler_multipole WindowFIntegrated, Cosmology, \n\n\n\n\n\n","category":"function"},{"location":"PlaneParallelApprox/#GaPSE.map_ξ_PPDoppler_multipole","page":"Calculating TPCFs with the PP Approximation","title":"GaPSE.map_ξ_PPDoppler_multipole","text":"map_ξ_PPDoppler_multipole(\n cosmo::Cosmology, ss = nothing;\n L::Int = 0, use_windows::Bool = true,\n atol_quad::Float64 = 0.0,\n rtol_quad::Float64 = 1e-2,\n enhancer::Float64 = 1e6,\n pr::Bool = true,\n N_log::Int = 1000,\n kwargs...) ::Tuple{Vector{Float64}, Vector{Float64}}\n\nEvaluate the multipole of order L of the Doppler effect Two-Point Correlation Function (TPCF) in the Plane Parallel (PP) term for all the comoving distance values stored inside ss. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log).\n\nThe function evaluated is then the following xi^mathrmpp g (s):\n\n xi^mathrmpp v_parallel (s) = frac2 L + 12 int_-1^+1 mathrmdmu \n xi^mathrmpp v_parallel left(s muright) \n mathcalL_L(mu) times \n begincases \n frac1mathcalNmathcalF(s mu) quad mathrmuse_windows == true \n 1 quadquad mathrmuse_windows == false\n endcases\n\nwhere:\n\nxi^mathrmpp v_parallel(smu) is the TPCF of the Doppler term in the PP approximation with the angular dependence, computed from ξ_PPDoppler.\nmathcalL_L(mu) is the Legendre polynomial of order L\nmathcalF(s mu) is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)\nmathcalN is the integrated window function norm (check the documentation of WindowFIntegrated)\n\nThe integration over mu is preformed through the Julia function quadgk from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n\nInputs\n\ncosmo::Cosmology: cosmology to be used in this computation\nss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). This is why it is returned also the vector of the \"input\" values.\n\nOptional arguments\n\nThis function recall internally ξ_PPDoppler_multipole, so the kwargs of the latter are valid also for the former; we report them for comfortness:\n\nL::Int = 0: order of the Legendre polynomial to be used\nuse_windows::Bool = false: tells if the integrand must consider mathcalF or not.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\nN_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing \npr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)\n\nReturns\n\nA Tuple{Vector{Float64}, Vector{Float64}}, which has as first element the ss vector and as second one the corresponding ξ value evaluated.\n\nSee also: ξ_PPDoppler, integrand_ξ_PPDoppler_multipole, ξ_PPDoppler_multipole, print_map_ξ_PPDoppler_multipole WindowFIntegrated, Cosmology, \n\n\n\n\n\n","category":"function"},{"location":"PlaneParallelApprox/#GaPSE.print_map_ξ_PPDoppler_multipole","page":"Calculating TPCFs with the PP Approximation","title":"GaPSE.print_map_ξ_PPDoppler_multipole","text":"print_map_ξ_PPDoppler_multipole(\n cosmo::Cosmology, out::String,\n ss = nothing;\n L::Int = 0, use_windows::Bool = true,\n atol_quad::Float64 = 0.0,\n rtol_quad::Float64 = 1e-2,\n enhancer::Float64 = 1e6,\n pr::Bool = true,\n N_log::Int = 1000,\n kwargs...)\n\nEvaluate the multipole of order L of the Doppler effect Two-Point Correlation Function (TPCF) in the Plane Parallel (PP) term for all the comoving distance values stored inside ss, and print the results (with all the options used) in a file named out. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log).\n\nThe function evaluated is then the following xi^mathrmpp v_parallel (s):\n\n xi^mathrmpp v_parallel (s) = frac2 L + 12 int_-1^+1 mathrmdmu \n xi^mathrmpp v_parallel left(s muright) \n mathcalL_L(mu) times \n begincases \n frac1mathcalNmathcalF(s mu) quad mathrmuse_windows == true \n 1 quadquad mathrmuse_windows == false\n endcases\n\nwhere:\n\nxi^mathrmpp v_parallel(smu) is the TPCF of the Doppler term in the PP approximation with the angular dependence, computed from ξ_PPDoppler.\nmathcalL_L(mu) is the Legendre polynomial of order L\nmathcalF(s mu) is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)\nmathcalN is the integrated window function norm (check the documentation of WindowFIntegrated)\n\nThe integration over mu is preformed through the Julia function quadgk from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n\nInputs\n\ncosmo::Cosmology: cosmology to be used in this computation\nout::String : name of the file where the results must be stored.\nss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). This is why it is returned also the vector of the \"input\" values.\n\nOptional arguments\n\nThis function recall internally map_ξ_PPDoppler_multipole, so the kwargs of the latter are valid also for the former; we report them for comfortness:\n\nL::Int = 0: order of the Legendre polynomial to be used\nuse_windows::Bool = false: tells if the integrand must consider mathcalF or not.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\nN_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing \npr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)\n\nSee also: ξ_PPDoppler, integrand_ξ_PPDoppler_multipole, ξ_PPDoppler_multipole, map_ξ_PPDoppler_multipole WindowFIntegrated, Cosmology, \n\n\n\n\n\n","category":"function"},{"location":"PlaneParallelApprox/#The-Galaxy-TPCF-term-in-the-Plane-Parallel-Approximation","page":"Calculating TPCFs with the PP Approximation","title":"The Galaxy TPCF term in the Plane Parallel Approximation","text":"","category":"section"},{"location":"PlaneParallelApprox/","page":"Calculating TPCFs with the PP Approximation","title":"Calculating TPCFs with the PP Approximation","text":"GaPSE.ξ_PPGalaxies_L0\nGaPSE.ξ_PPGalaxies_L2\nGaPSE.ξ_PPGalaxies_L4\nGaPSE.ξ_PPGalaxies\nGaPSE.integrand_ξ_PPGalaxies_multipole\nGaPSE.ξ_PPGalaxies_multipole\nGaPSE.map_ξ_PPGalaxies_multipole\nGaPSE.print_map_ξ_PPGalaxies_multipole","category":"page"},{"location":"PlaneParallelApprox/#GaPSE.ξ_PPGalaxies_L0","page":"Calculating TPCFs with the PP Approximation","title":"GaPSE.ξ_PPGalaxies_L0","text":"ξ_PPGalaxies_L0(P::Point, cosmo::Cosmology; b = nothing, sp::Int64=1)\nξ_PPGalaxies_L0(s, cosmo::Cosmology; kwargs...)\n\nReturn the value of the Two-Point Correlation Function (TPCF) monopole of the Galaxies in the Plane-Parallel approximation. In the first method, you should pass the Point where to evaluate that function, while in the second (that internally recalls the first) you must provide the comoving distance s. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of such TPCF monopole is the following:\n\nxi^mathrmpp g_0(s) = D^2(z) I_0^0(s) left(b^2 + \nfrac23 b f(z) + frac15 f^2(z)right)\n\nwhere: \n\nb is the galaxy bias\nz is the redshift associated to the comoving distance s in this cosmology\nD the linear growth factor and f the linear growth rate\nI_ell^n is defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n\nwith P(q) as the matter Power Spectrum at z=0 and j_ell as spherical Bessel function of order ell.\n\nAll the cosmological data needed for this computation are taken from the input struct cosmo::Cosmology.\n\nKeyword Arguments\n\nb = nothing : galaxy bias value to be considered in the computation; if set to nothing, its value is inferred from the other keyword argument sp;\nsp::Int64=1 : galaxy type to be considered between the two species stored in cosmo: it can be either 1 or 2, and the corresponding set of galaxy, magnification and evolutionary biases stored in cosmo are considered; in case b is set to a value, this parameter is ignored.\n\nSee also: Point, Cosmology, ξ_PPGalaxies_L2, ξ_PPGalaxies_L4, integrand_ξ_PPGalaxies_multipole, ξ_PPGalaxies_multipole map_ξ_PPGalaxies_multipole, print_map_ξ_PPGalaxies_multipole\n\n\n\n\n\n","category":"function"},{"location":"PlaneParallelApprox/#GaPSE.ξ_PPGalaxies_L2","page":"Calculating TPCFs with the PP Approximation","title":"GaPSE.ξ_PPGalaxies_L2","text":"ξ_PPGalaxies_L2(P::Point, cosmo::Cosmology; b=nothing, sp::Int64=1)\nξ_PPGalaxies_L2(s, cosmo::Cosmology; kwargs...)\n\nReturn the value of the Two-Point Correlation Function (TPCF) quadrupole of the Galaxies in the Plane-Parallel approximation. In the first method, you should pass the Point where to evaluate that function, while in the second (that internally recalls the first) you must provide the comoving distance s. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of such TPCF monopole is the following:\n\nxi^mathrmpp g_2(s) = - D^2(z) I_2^0(s) left(frac43 \n b f(z) + frac47 f^2(z)right)\n\nwhere: \n\nb is the galaxy bias\nz is the redshift associated to the comoving distance s in this cosmology\nD the linear growth factor and f the linear growth rate\nI_ell^n is defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n\nwith P(q) as the matter Power Spectrum at z=0 and j_ell as spherical Bessel function of order ell.\n\nAll the cosmological data needed for this computation are taken from the input struct cosmo::Cosmology.\n\n## Keyword Arguments\n\nb = nothing : galaxy bias value to be considered in the computation; if set to nothing, its value is inferred from the other keyword argument sp;\nsp::Int64=1 : galaxy type to be considered between the two species stored in cosmo: it can be either 1 or 2, and the corresponding set of galaxy, magnification and evolutionary biases stored in cosmo are considered; in case b is set to a value, this parameter is ignored.\n\nSee also: Point, Cosmology, ξ_PPGalaxies_L0, ξ_PPGalaxies_L4, integrand_ξ_PPGalaxies_multipole, ξ_PPGalaxies_multipole map_ξ_PPGalaxies_multipole, print_map_ξ_PPGalaxies_multipole\n\n\n\n\n\n","category":"function"},{"location":"PlaneParallelApprox/#GaPSE.ξ_PPGalaxies_L4","page":"Calculating TPCFs with the PP Approximation","title":"GaPSE.ξ_PPGalaxies_L4","text":"ξ_PPGalaxies_L4(P::Point, cosmo::Cosmology; b=nothing, sp::Int64=1)\nξ_PPGalaxies_L4(s, cosmo::Cosmology; kwargs...)\n\nReturn the value of the Two-Point Correlation Function (TPCF) hexadecapole of the Galaxies in the Plane-Parallel approximation. In the first method, you should pass the Point where to evaluate that function, while in the second (that internally recalls the first) you must provide the comoving distance s. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of such TPCF monopole is the following:\n\nxi^mathrmpp g_4(sz) = D^2(z) I_4^0(s) \nleft(frac835 f^2(z)right)\n\nwhere: \n\nb is the galaxy bias\nz is the redshift associated to the comoving distance s in this cosmology\nD the linear growth factor and f the linear growth rate\nI_ell^n is defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n\nwith P(q) as the matter Power Spectrum at z=0 and j_ell as spherical Bessel function of order ell.\n\nAll the cosmological data needed for this computation are taken from the input struct cosmo::Cosmology.\n\nKeyword Arguments\n\nb = nothing : galaxy bias value to be considered in the computation; if set to nothing, its value is inferred from the other keyword argument sp;\nsp::Int64=1 : galaxy type to be considered between the two species stored in cosmo: it can be either 1 or 2, and the corresponding set of galaxy, magnification and evolutionary biases stored in cosmo are considered; in case b is set to a value, this parameter is ignored.\n\nSee also: Point, Cosmology, ξ_PPGalaxies_L0, ξ_PPGalaxies_L2, integrand_ξ_PPGalaxies_multipole, ξ_PPGalaxies_multipole map_ξ_PPGalaxies_multipole, print_map_ξ_PPGalaxies_multipole\n\n\n\n\n\n","category":"function"},{"location":"PlaneParallelApprox/#GaPSE.ξ_PPGalaxies","page":"Calculating TPCFs with the PP Approximation","title":"GaPSE.ξ_PPGalaxies","text":"ξ_PPGalaxies(s, μ, cosmo::Cosmology; b=nothing, sp::Int64=1)\n\nReturn the value of the Two-Point Correlation Function (TPCF) of the Galaxies in the Plane-Parallel approximation in the given comoving distance s and cosine value for the Legendre polynomials μ (for the given cosmo::Cosmology).\n\nThe analytical expression of such TPCF is the following:\n\nbeginsplit\nxi^mathrmpp g(smu) = xi^mathrmpp g_0(s) + \n xi^mathrmpp g_2(s) mathcalL_2(mu) + \n xi^mathrmpp g_4(s) mathcalL_4(mu) \nxi^mathrmpp g_0(s) = D^2(z) I_0^0(s) left(b^2 + \n frac23 b f(z) + frac15 f^2(z)right) \nxi^mathrmpp g_2(s) = - D^2(z) I_2^0(s) left(frac43 \n b f(z) + frac47 f^2(z)right) \nxi^mathrmpp g_4(s) = D^2(z) I_4^0(s) \n left(frac835 f^2(z)right)\nendsplit\n\nwhere: \n\nb is the galaxy bias\nz is the redshift associated to the comoving distance s in this cosmology\nD the linear growth factor and f the linear growth rate\nmathcalL_ell the Legendre polynomial of order ell\nI_ell^n is defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n\nwith P(q) as the matter Power Spectrum at z=0 and j_ell as spherical Bessel function of order ell.\n\nAll the cosmological data needed for this computation are taken from the input struct cosmo::Cosmology.\n\nKeyword Arguments\n\nb = nothing : galaxy bias value to be considered in the computation; if set to nothing, its value is inferred from the other keyword argument sp;\nsp::Int64=1 : galaxy type to be considered between the two species stored in cosmo: it can be either 1 or 2, and the corresponding set of galaxy, magnification and evolutionary biases stored in cosmo are considered; in case b is set to a value, this parameter is ignored.\n\nSee also: Point, Cosmology, ξ_PPGalaxies_L0, ξ_PPGalaxies_L2, ξ_PPGalaxies_L4 integrand_ξ_PPGalaxies_multipole, ξ_PPGalaxies_multipole map_ξ_PPGalaxies_multipole, print_map_ξ_PPGalaxies_multipole\n\n\n\n\n\n","category":"function"},{"location":"PlaneParallelApprox/#GaPSE.integrand_ξ_PPGalaxies_multipole","page":"Calculating TPCFs with the PP Approximation","title":"GaPSE.integrand_ξ_PPGalaxies_multipole","text":"integrand_ξ_PPGalaxies_multipole(s, μ, cosmo::Cosmology;\n L::Int=0, use_windows::Bool=true, b = nothing, sp::Int64=1) ::Float64\n\nReturn the integrand on mu = hatmathbfs_1 cdot hatmathbfs of the Galaxies Two-Point Correlation Function (TPCF) in the Plane Parallel (PP) approximation, i.e. the following function f(s mu):\n\n f_L(s mu) = xi^mathrmpp g left(s muright) \n mathcalL_L(mu) times \n begincases \n frac1mathcalNmathcalF(s mu) quad mathrmuse_windows == true \n 1 quadquad mathrmuse_windows == false\n endcases\n\nwhere:\n\nxi^mathrmpp g(smu) is the TPCF of the Galaxies in the PP approximation with the angular dependence, computed from ξ_PPGalaxies.\nmathcalL_L(mu) is the Legendre polynomial of order L\nmathcalF(s mu) is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)\nmathcalN is the integrated window function norm (check the documentation of WindowFIntegrated)\n\nInputs\n\ns: the comoving distance where must be evaluated the integral\nμ: the cosine between s1 and s where must be evaluated the integral\ncosmo::Cosmology: cosmology to be used in this computation\n\nKeyword Arguments\n\nL::Int = 0: order of the Legendre polynomial to be used\nuse_windows::Bool = false: tells if the integrand must consider mathcalF or not.\nb = nothing : galaxy bias value to be considered in the computation; if set to nothing, its value is inferred from the other keyword argument sp;\nsp::Int64=1 : galaxy type to be considered between the two species stored in cosmo: it can be either 1 or 2, and the corresponding set of galaxy, magnification and evolutionary biases stored in cosmo are considered; in case b is set to a value, this parameter is ignored.\n\nSee also:ξ_PPGalaxies, ξ_PPGalaxies_multipole, map_ξ_PPGalaxies_multipole, print_map_ξ_PPGalaxies_multipole WindowFIntegrated, Cosmology, \n\n\n\n\n\n","category":"function"},{"location":"PlaneParallelApprox/#GaPSE.ξ_PPGalaxies_multipole","page":"Calculating TPCFs with the PP Approximation","title":"GaPSE.ξ_PPGalaxies_multipole","text":"ξ_PPGalaxies_multipole(\n s, cosmo::Cosmology;\n L::Int = 0, use_windows::Bool = true,\n atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,\n enhancer::Float64 = 1e6, \n b=nothing, sp::Int64=1 ) ::Float64\n\nEvaluate the multipole of order L of the Galaxies Two-Point Correlation Function (TPCF) in the Plane Parallel (PP) term i.e. the following function xi^mathrmpp g (s):\n\n xi^mathrmpp g (s) = frac2 L + 12 int_-1^+1 mathrmdmu \n xi^mathrmpp g left(s muright) \n mathcalL_L(mu) times \n begincases \n frac1mathcalNmathcalF(s mu) quad mathrmuse_windows == true \n 1 quadquad mathrmuse_windows == false\n endcases\n\nwhere:\n\nxi^mathrmpp g(smu) is the TPCF of the Galaxies in the PP approximation with the angular dependence, computed from ξ_PPGalaxies.\nmathcalL_L(mu) is the Legendre polynomial of order L\nmathcalF(s mu) is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)\nmathcalN is the integrated window function norm (check the documentation of WindowFIntegrated)\n\nThe integration over mu is preformed through the Julia function quadgk from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n\nInputs\n\ns: the comoving distance where must be evaluated the integral\ncosmo::Cosmology: cosmology to be used in this computation\n\nKeyword Arguments\n\nL::Int = 0: order of the Legendre polynomial to be used\nuse_windows::Bool = false: tells if the integrand must consider mathcalF or not.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\nb = nothing : galaxy bias value to be considered in the computation; if set to nothing, its value is inferred from the other keyword argument sp;\nsp::Int64=1 : galaxy type to be considered between the two species stored in cosmo: it can be either 1 or 2, and the corresponding set of galaxy, magnification and evolutionary biases stored in cosmo are considered; in case b is set to a value, this parameter is ignored.\n\nSee also: ξ_PPGalaxies, integrand_ξ_PPGalaxies_multipole, map_ξ_PPGalaxies_multipole, print_map_ξ_PPGalaxies_multipole WindowFIntegrated, Cosmology, \n\n\n\n\n\n","category":"function"},{"location":"PlaneParallelApprox/#GaPSE.map_ξ_PPGalaxies_multipole","page":"Calculating TPCFs with the PP Approximation","title":"GaPSE.map_ξ_PPGalaxies_multipole","text":"map_ξ_PPGalaxies_multipole(\n cosmo::Cosmology, ss = nothing;\n L::Int = 0, use_windows::Bool = true,\n atol_quad::Float64 = 0.0,\n rtol_quad::Float64 = 1e-2,\n enhancer::Float64 = 1e6,\n pr::Bool = true,\n N_log::Int = 1000,\n kwargs...) ::Tuple{Vector{Float64}, Vector{Float64}}\n\nEvaluate the multipole of order L of the Galaxies Two-Point Correlation Function (TPCF) in the Plane Parallel (PP) term for all the comoving distance values stored inside ss. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log).\n\nThe function evaluated is then the following xi^mathrmpp g (s):\n\n xi^mathrmpp g (s) = frac2 L + 12 int_-1^+1 mathrmdmu \n xi^mathrmpp g left(s muright) \n mathcalL_L(mu) times \n begincases \n frac1mathcalNmathcalF(s mu) quad mathrmuse_windows == true \n 1 quadquad mathrmuse_windows == false\n endcases\n\nwhere:\n\nxi^mathrmpp g(smu) is the TPCF of the Galaxies in the PP approximation with the angular dependence, computed from ξ_PPGalaxies.\nmathcalL_L(mu) is the Legendre polynomial of order L\nmathcalF(s mu) is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)\nmathcalN is the integrated window function norm (check the documentation of WindowFIntegrated)\n\nThe integration over mu is preformed through the Julia function quadgk from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n\nInputs\n\ncosmo::Cosmology: cosmology to be used in this computation\nss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). This is why it is returned also the vector of the \"input\" values.\n\nOptional arguments\n\nThis function recall internally ξ_PPGalaxies_multipole, so the kwargs of the latter are valid also for the former; we report them for comfortness:\n\nL::Int = 0: order of the Legendre polynomial to be used\nuse_windows::Bool = false: tells if the integrand must consider mathcalF or not.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\nN_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing \npr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)\nb = nothing : galaxy bias value to be considered in the computation; if set to nothing, its value is inferred from the other keyword argument sp;\nsp::Int64=1 : galaxy type to be considered between the two species stored in cosmo: it can be either 1 or 2, and the corresponding set of galaxy, magnification and evolutionary biases stored in cosmo are considered; in case b is set to a value, this parameter is ignored.\n\nReturns\n\nA Tuple{Vector{Float64}, Vector{Float64}}, which has as first element the ss vector and as second one the corresponding ξ value evaluated.\n\nSee also: ξ_PPGalaxies, integrand_ξ_PPGalaxies_multipole, ξ_PPGalaxies_multipole, print_map_ξ_PPGalaxies_multipole WindowFIntegrated, Cosmology, \n\n\n\n\n\n","category":"function"},{"location":"PlaneParallelApprox/#GaPSE.print_map_ξ_PPGalaxies_multipole","page":"Calculating TPCFs with the PP Approximation","title":"GaPSE.print_map_ξ_PPGalaxies_multipole","text":"print_map_ξ_PPGalaxies_multipole(\n cosmo::Cosmology, out::String,\n ss = nothing;\n L::Int = 0, use_windows::Bool = true,\n atol_quad::Float64 = 0.0,\n rtol_quad::Float64 = 1e-2,\n enhancer::Float64 = 1e6,\n pr::Bool = true,\n N_log::Int = 1000,\n kwargs...)\n\nEvaluate the multipole of order L of the Galaxies Two-Point Correlation Function (TPCF) in the Plane Parallel (PP) term for all the comoving distance values stored inside ss, and print the results (with all the options used) in a file named out. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log).\n\nThe function evaluated is then the following xi^mathrmpp g (s):\n\n xi^mathrmpp g (s) = frac2 L + 12 int_-1^+1 mathrmdmu \n xi^mathrmpp g left(s muright) \n mathcalL_L(mu) times \n begincases \n frac1mathcalNmathcalF(s mu) quad mathrmuse_windows == true \n 1 quadquad mathrmuse_windows == false\n endcases\n\nwhere:\n\nxi^mathrmpp g(smu) is the TPCF of the Galaxies in the PP approximation with the angular dependence, computed from ξ_PPGalaxies.\nmathcalL_L(mu) is the Legendre polynomial of order L\nmathcalF(s mu) is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)\nmathcalN is the integrated window function norm (check the documentation of WindowFIntegrated)\n\nThe integration over mu is preformed through the Julia function quadgk from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n\nInputs\n\ncosmo::Cosmology: cosmology to be used in this computation\nout::String : name of the file where the results must be stored.\nss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). This is why it is returned also the vector of the \"input\" values.\n\nOptional arguments\n\nThis function recall internally map_ξ_PPGalaxies_multipole, so the kwargs of the latter are valid also for the former; we report them for comfortness:\n\nL::Int = 0: order of the Legendre polynomial to be used\nuse_windows::Bool = false: tells if the integrand must consider mathcalF or not.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\nN_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing \npr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)\nb = nothing : galaxy bias value to be considered in the computation; if set to nothing, its value is inferred from the other keyword argument sp;\nsp::Int64=1 : galaxy type to be considered between the two species stored in cosmo: it can be either 1 or 2, and the corresponding set of galaxy, magnification and evolutionary biases stored in cosmo are considered; in case b is set to a value, this parameter is ignored.\n\nSee also: ξ_PPGalaxies, integrand_ξ_PPGalaxies_multipole, ξ_PPGalaxies_multipole, map_ξ_PPGalaxies_multipole WindowFIntegrated, Cosmology, \n\n\n\n\n\n","category":"function"},{"location":"PowerSpectraGenWin/","page":"Power Spectra for a generic window","title":"Power Spectra for a generic window","text":"DocTestSetup = quote\n using GaPSE\nend","category":"page"},{"location":"PowerSpectraGenWin/#Power-Spectrum-for-a-generic-window-fuction","page":"Power Spectra for a generic window","title":"Power Spectrum for a generic window fuction","text":"","category":"section"},{"location":"PowerSpectraGenWin/#Multipoles-Q_l1-of-the-toy-model-window-function","page":"Power Spectra for a generic window","title":"Multipoles Q_l1 of the toy-model window function","text":"","category":"section"},{"location":"PowerSpectraGenWin/","page":"Power Spectra for a generic window","title":"Power Spectra for a generic window","text":"GaPSE.WindowFIntegrated_multipole\nGaPSE.print_map_WindowFIntegrated_multipole","category":"page"},{"location":"PowerSpectraGenWin/#GaPSE.WindowFIntegrated_multipole","page":"Power Spectra for a generic window","title":"GaPSE.WindowFIntegrated_multipole","text":"WindowFIntegrated_multipole(\n s, windowfint::GaPSE.WindowFIntegrated;\n s_min, s_max,\n L::Int=0, alg::Symbol=:lobatto,\n N_lob::Int=100, N_trap::Int=200,\n atol_quad::Float64=0.0, rtol_quad::Float64=1e-2,\n enhancer::Float64=1e6,\n )\n\nEvaluate the multipole of order L of the input Integrated Window Function windowfint in the input comoving distance s. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of the Integrated Window Function multipole Q_ell_1 is the following:\n\nQ_ell_1(s) = \n int_-1^1 mathrmdmu mathcalL_ell_1(mu) \n mathcalF(s mu)\n\nwhere mathcalL_ell_1 is the Legendre polynomial of order ell_1, mu the cosine angle, \n\nmathcalF(s mu) = \n int_0^infty mathrmds_1 phi(s_1) \n phileft(sqrts_1^2 + s^2 + 2 s_1 s muright) \n Fleft(fracss_1 mu right)\n\nthe integrated window function associated to the window function Fleft(fracss_1 mu right) (check the docstring of WindowF for its definition) and phi the radial window function, obtained by ϕ.\n\nOptional arguments\n\ns_min and s_max (mandatory keyword arguments) : min and max comoving distance of the survey; their values will be internally used by \nL::Int = 0: order of the Legendre polynomial to be used\nalg::Symbol = :lobatto : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):\n:quad -> the integration over mu will be preformed through the Julia function quadgk \nfrom the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n:trap -> the integration over mu will be preformed through the Julia function trapz \nfrom the Trapz.jl Julia package, that uses the simple trapezoidal rulae.\n:lobatto -> the integration over mu will be preformed through the Julia function gausslobatto \nfrom the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. \nN_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\nN_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\n\nSee also: WindowFIntegrated, WindowF, ϕ\n\n\n\n\n\n","category":"function"},{"location":"PowerSpectraGenWin/#GaPSE.print_map_WindowFIntegrated_multipole","page":"Power Spectra for a generic window","title":"GaPSE.print_map_WindowFIntegrated_multipole","text":"print_map_WindowFIntegrated_multipole(\n ss::Vector{Float64},\n windowFint::Union{String,GaPSE.WindowFIntegrated}, out::String;\n s_min, s_max,\n pr::Bool=true, L_max::Int=4, alg::Symbol=:lobatto,\n N_lob::Int=100, N_trap::Int=200,\n atol_quad::Float64=0.0, rtol_quad::Float64=1e-2,\n enhancer::Float64=1e6)\n\nprint_map_WindowFIntegrated_multipole(\n s_zs::Vector{Float64},\n windowFint::Union{String,GaPSE.WindowFIntegrated}, out::String,\n file_data::String; z_min, z_max,\n names_bg=GaPSE.NAMES_BACKGROUND, h_0=0.7, kwargs...))\n\nprint_map_WindowFIntegrated_multipole(\n windowFint::Union{String,GaPSE.WindowFIntegrated}, out::String,\n file_data::String; z_min, z_max,\n names_bg=GaPSE.NAMES_BACKGROUND, h_0=0.7, N::Int=100, \n m::Float64=2.1, st::Float64=0.0, kwargs...)\n\nEvaluate the integrated window function multipoles Q_ell_1(s) in a vector of s values for all the multipoles 0 leq ell_1 leq L_mathrmmax, and print the results in the out file. The computation of the multipole is performed through WindowFIntegrated_multipole.\n\nThe first method takes as input:\n\nss::Vector{Float64} : the vector of s points where to sample the integrated window function multipoles Q_ell_1.ss must be a float vector of increasing comoving distance values (so each element must be ≥ 0); the first and last values ARE NOT RELATED to s_min and s_max.\nwindowFint::Union{String,WindowFIntegrated}, i.e. the integrated window function itself; it can be passed as the namefile where the integrated window is stored in (that will be opened with WindowFIntegrated) or as a WindowFIntegrated struct directly.\nout::String : the name of the output file\ns_min and s_max (keyword arguments) : min and max comoving distance of the survey; their values will be internally used by \n\nThe second method takes as input the min and max redshifts of the survey (z_minand z_max), the vector of redshifts zs::Vector{Float64} for the integrated window function sampling, windowFint as before and the file_data where can be found the association z rightarrow s(z). Such file must have the structure of the background data produced by the CLASS (link: https://github.com/lesgourg/class_public) code. Note that also zs musyt be a float vector of increasing redshift values (so each element must be ≥ 0). This method internally recalls the first one, so the other kwargs... are in common.\n\nThe third method takes as input the min and max redshifts of the survey (z_minand z_max) and the same input as the second method (windowF, out and file_data) but NOT THE REDSHIFT SAMPLING VECTOR zs. The sampling will be internally made linearly from s = mathrmst(where st::Float64 = 0.0 is a keyword argument) to s = m s_mathrmmax, where s_max is the comoving distance associated to z_max (for the data stored in file_data) and m::Float64 = 2.1 a coefficient that we suggest to set equals to 2 < m < 3. N::Int = 100 is the number of s values used for the sampling in the interval 0 m s_mathrmmax. This method internally recalls the first one, so the other kwargs... are in common.\n\nThe analytical expression for the integrated window function is the following:\n\nQ_ell_1(s) = \n int_-1^1 mathrmdmu mathcalL_ell_1(mu) \n mathcalF(s mu)\n\nwhere s is the comoving distance, mu the cosine angle, mathcalL_ell_1 the Legendre polynomial of order ell_1 and mathcalF(x μ) the integrated window function. Check the documentation of WindowFIntegrated for its definition. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nExample\n\njulia> windowfint = GaPSE.WindowFIntegrated(PATHTOGAPSE\"data/IntegrFREFERENCEpi2z115.txt\"); julia> GaPSE.printmapWindowFIntegratedmultipole(windowfint, \"myQlmultipoles.txt\", PATHTOGAPSE\"data/WideAZAbackground.dat\"; zmin = 1.0, zmax=1.5, st = 1.0, N=500, pr=false) julia> run(head -n 20 $(DIR*\"my_Ql_multipoles.txt\")) ###############\n\nGaPSE\n\n############### \n\n\n\nThis is an integration map of the Q{l1} multipoles, defined as:\n\nQ{l1}(s1, s \\mu) = \\int{-1}^{+1} \\mathrm{d}\\mu \\mathcal{L}{l1}(\\mu) \\mathcal{F}(s, \\mu)\n\n\\mathcal{F}(s, \\mu) = \\int0^{\\infty} \\mathrm{d}s1 s1^2 \\phi(s1) \\phi(\\sqrt(s1^2 + s^2 + 2 s1 s \\mu)) F(s/s_1, \\mu)\n\nwhere \\mathcal{L}{l1}(\\mu) is tre Legendre polynomial if order l1 and\n\nF(x, \\mu) is the window function considered (for its analytical definition, check the code).\n\n\n\n\n\nTime needed for this computation [in s]: 27.256186962127686\n\nThe keyword arguments were:\n\n\n\ns [h0^{-1} Mpc] Q{l1=0} Q{l1=1} Q{l1=2} Q{l1=3} Q{l_1=4}\n\n1.0 4.1857800000750543e11 -4.377435879373042e7 -5.084259164821501e8 1.2380785453994218e6 -3.641597411371149e8 13.852533751787348 4.1473071900503394e11 -6.063857839848524e8 -1.342493986435839e9 1.7150523594728626e7 -2.0225033264194965e8 ... ... ... ... ... ...\n\nOptional arguments\n\nAs optional arguments of the first method:\n\ns_min and s_max (mandatory keyword arguments) : min and max comoving distance of the survey; their values will be internally used by \npr::Bool = true : do you want to see the progress-bar of the computation?\nL_max::Int64 = 4 : maximum multipole order to be computed\nalg::Symbol = :lobatto : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):\n:quad -> the integration over mu will be preformed through the Julia function quadgk \nfrom the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n:trap -> the integration over mu will be preformed through the Julia function trapz \nfrom the Trapz.jl Julia package, that uses the simple trapezoidal rulae.\n:lobatto -> the integration over mu will be preformed through the Julia function gausslobatto \nfrom the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. \nN_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\nN_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\n\nThe optional arguments given to the second method will be directly given to the first one. The only two exceptions are:\n\ns_min and s_max (mandatory keyword arguments) : min and max redshift of the survey; their values will be internally coverted to comoving distances and passed to the first method\nnames = NAMES_BACKGROUND : the column names of the file_data. If the colum order change from the default one NAMES_BACKGROUND, you must set as input the vector of string with the correct one, with the SAME names. They are, with the default order:\n[\"z\", \"proper time [Gyr]\", \"conf. time [Mpc]\", \"H [1/Mpc]\", \"comov. dist.\", \"ang.diam.dist.\", \"lum. dist.\", \"comov.snd.hrz.\", \"(.)rhog\", \"(.)rhob\", \"(.)rhocdm\", \"(.)rholambda\", \"(.)rhour\", \"(.)rhocrit\", \"gr.fac. D\", \"gr.fac. f\"]\nh = 0.7 : the adimensional hubble constant. By default, CLASS background data are measured with it numerically expressed (so distances are measured in Mpc, for example), while this code works with h in the unit of measure (so distances are measured in Mpc/h, for example). Change this value to 1.0 if the input data do not have this issue, or to your value of interest (0.67, 0.5, ...).\n\nThe optional arguments given to the third method will be directly given to the first one again. The only two exceptions are:\n\nnames_bg=GaPSE.NAMES_BACKGROUND and h_0=0.7 : same as for the second method\nN::Int=100 : number of points to be used in the liearly spaced comoving distance vector\nst::Float64=0.0 : starting comoving distance of the vector\nm:Float64 = 2.1 : coefficient that set the maximum comoving distance of the vector, equals to m * s_max, where s_max is the comoving distance associated to the redhsift z_max\n\nSee also: WindowFIntegrated_multipole, WindowFIntegrated, WindowF, ϕ, BackgroundData\n\n\n\n\n\n","category":"function"},{"location":"PowerSpectraGenWin/#Creating-a-XiMultipole-struct","page":"Power Spectra for a generic window","title":"Creating a XiMultipole struct","text":"","category":"section"},{"location":"PowerSpectraGenWin/","page":"Power Spectra for a generic window","title":"Power Spectra for a generic window","text":"GaPSE.XiMultipoles\nGaPSE.create_file_for_XiMultipoles","category":"page"},{"location":"PowerSpectraGenWin/#GaPSE.XiMultipoles","page":"Power Spectra for a generic window","title":"GaPSE.XiMultipoles","text":"XiMultipoles(\n comdist::Vector{Float64}\n multipoles::Vector{Vector{Float64}}\n)\n\nStores the multipoles of a generic Two-Point Correlation Function.\n\nConstructors\n\nXiMultipoles(file::String; comments::Bool=true, xdt::DataType=Float64, ydt::DataType=Float64)\n\nRead the file file and create a XiMultipoles struct having\n\nas first element the comoving distances stored in the first column (with the input type xdt)\nas second element a vector that contains all the following columns (with the input type ydt), which are the multipoles L=0,1,2,... of the TPCF considered\n\nIf the file start with comments (lines starting with #), set comments = true.\n\n\n\n\n\n","category":"type"},{"location":"PowerSpectraGenWin/#GaPSE.create_file_for_XiMultipoles","page":"Power Spectra for a generic window","title":"GaPSE.create_file_for_XiMultipoles","text":"create_file_for_XiMultipoles(out::String, names::Vector{String}, \n effect::Union{String, Integer}, group::String=\"GNC\"; \n comments::Bool=true, xdt::DataType=Float64, ydt::DataType=Float64)\n\nRead the column number effect (if is an Integer) or the one corresponding to the GR effect effect for the input group group (if is a String) from all the filenames stored in the Vector names, and save them in a file named out.\n\nThe first column of out will be the same as the first column of the first filename in names; it is however checked internally if the first column of all the other files coincides with this one. The following columns of out follow the order in names. Note that effect, if passed as Integer, must be > 1 (because 1 is the index of the first column, used as x-axis).\n\ngroup must be one among the following: [\"LD\", \"GNC\", \"GNCxLD\", \"LDxGNC\", \"generic\"] If group=generic, then effect must be an integer (because you are not selecting a specific effect in one of the native GaPSE groups).\n\nxdt and ydt are the data types to be used for respectively the first column and the 2-3-4-... columns of out. Set comments=true if the files in names start with a header that must be skipped (its lines must start with #, otherwise they will not be recognised as comments).\n\nExample\n\njulia> run(cat file_1.txt)\n\nGeneric comment line\n\nof the file_1.txt\n\n1.0 0.999999 0.34545 0.00991 ... ... ... ...\n\njulia> run(cat file_2.txt)\n\nsame, for file_2.txt\n\n1.0 0.58244 0.12123 0.000154 ... ... ... ...\n\njulia> createfileforXiMultipoles(\"mix.txt\", [\"file1.txt\", \"file_2.txt\"], 3, \"generic\"); julia> run(cat mix.txt) ###############\n\nGaPSE\n\n############### \n\n\n\n\n\nThis is a table containing the multipoles of the Two-Point Correlation Function (TPCF)\n\nfor a generic group effect [not given, provied only the index 2] taken from the files:\n\n- L = 0 : file_1.txt\n\n- L = 1 : file_2.txt\n\n\n\ns [Mpc/h0] xi{L=0} xi_{L=1}\n\n1.0 0.34545 0.12123 ... ... ...\n\n\n\n\n\n","category":"function"},{"location":"PowerSpectraGenWin/#The-Power-Spectrum-for-a-GenWin","page":"Power Spectra for a generic window","title":"The Power Spectrum for a GenWin","text":"","category":"section"},{"location":"PowerSpectraGenWin/","page":"Power Spectra for a generic window","title":"Power Spectra for a generic window","text":"GaPSE.GenericWindow\nGaPSE.PS_multipole_GenWin\nGaPSE.print_PS_multipole_GenWin","category":"page"},{"location":"PowerSpectraGenWin/#GaPSE.GenericWindow","page":"Power Spectra for a generic window","title":"GaPSE.GenericWindow","text":"GenericWindow(\n comdist::Vector{Float64}\n multipoles::Vector{Vector{Float64}}\n splines::Vector{Dierckx.Spline1D}\n)\n\nStores the multipoles of a generic window function, computed as:\n\n Q_ell_1 = int_0^infty mathrmds_1 s_1^2 phi(s_1) F_ell_1(s_1s)\n\nwith some FFT algorithm. See Eq. (2.13) of Castorina, Di Dio (2021) for more details.\n\nConstructors\n\nGenericWindow(file::String; comments::Bool=true, xdt::DataType=Float64, ydt::DataType=Float64)\n\nRead the file file and create a GenericWindow struct having\n\nas first element the comoving distances stored in the first column (with the input type xdt)\nas second element a vector that contains all the following columns (with the input type ydt), which are the multipoles L=0,1,2,... of the Window FUnction considered\nas second element a vector that contains all the splines of that multipoles\n\nIf the file start with comments (lines starting with #), set comments = true.\n\n\n\n\n\n","category":"type"},{"location":"PowerSpectraGenWin/#GaPSE.PS_multipole_GenWin","page":"Power Spectra for a generic window","title":"GaPSE.PS_multipole_GenWin","text":"PS_multipole_GenWin(\n ximult::Union{XiMultipoles,String}, genwin::Union{GenericWindow,String};\n alg::Symbol=:fftlog, L::Int=0,\n cut_first_n::Int=0, cut_last_n::Int=0,\n kwargs...)\n\nReturn the L-order Power Spectrum (PS) multipole for a generic window function, through the following Fast Fourier Transform and the effective redshift approximation:\n\n leftlangle hatP_L(k) rightrangle = \n frac2 L + 1A (-i)^L\n sum_ell=0^infty \n sum_ell_1=0^infty \n beginpmatrix\n L ell ell_1 \n 0 0 0\n endpmatrix^2\n int_0^inftymathrmd s s^2 xi_ell(s s_rm eff) \n j_L(k s) Q_ell_1(s) \n\nwhere:\n\nleftlangle hatP_L(k) rightrangle is the order L Power Spectrum of the effect we are interested in; we are basing this expression on the Yamamoto estimator (see Yamamoto (2000) and Yamamoto (2006))\nA is a normalization constant\nthe 2x3 matrix represents the Wigner-3j symbols\nxi_ell is the order ell multipole of the Two-Point Correlation Function (TPCF)\nj_L is the spherical Bessel function of order L\ns_mathrmeff is the comoving distance associated with the effective redshift (see the TUTORIAL.ipynb notebook)\n\nQ_ell_1 can be easily estimated with FFT methods:\n\nbeginsplit\n Q_ell_1(s) = int_0^inftymathrmds_1 s_1^2 \n phi(s_1) F_ell_1(s_1 s) \n F_ell_1 (s_1 s) = \n int_4pi mathrmdOmega_mathbfhats \n int_4pi mathrmdOmega_mathbfhats_1 \n phi(s_2) W(mathbfhats_1) W(mathbfhats_2) \n mathcalL_ell_1(mathbfhats cdot mathbfhats_1) \nendsplit\n\nwhere:\n\nmathcalL_ell_1 is the Legendre polynomial of order ell_1\nmathrmdOmega_mathbfhats is the infinitesimal solid angle pointing in the direction of the versor mathbfhats\nphi(s) and W(mathbfhats) are respectively the radial and angular part of your window function (we remember that we assumed that such separability of the window function is possible)\n\nCheck Eq.(2.13) of Castorina, Di Dio for the theoretical explanation of this formula.\n\nCurrenlty, there are two algorithms you can choose in order to perform the computation; you can choose which one to use through the keyword value alg:\n\nalg = :fftlog (default and recommended option) will employ the FFTLog algorithm.\nalg = :twofast will employ the TwoFAST xicalc function of the TwoFAST Julia package. Note that in the computation the integration range 0leq s leq infty is reduced to int_s_min ≤ s ≤ int_s_max. This alogrithm is not the ideal choise, because TwoFAST is conceived for the direction PS -> TPCF, while is not 100% trustworthy for the other way round.\n\nIMPORTANT: no matter which algorithm you choose, you will need to give the input data in a LOGARITHMICALLY DISTRIBUTED scale. A linear distribution does not fit for the algorithms to apply.\n\nInputs\n\nximult::Union{XiMultipoles,String} : Two-Point Correlation functions to be used in the computation. You can provide either a XiMultipoles struct containing them or the String filename where they are stored (that will be internally open with XiMultipoles too). The file must have a structure analogous to the genwin one (see the next Inputs item). You can use create_file_for_XiMultipoles to produce such a file.\ngenwin::Union{GenericWindow,String} : multipoles Q_ell_1 of the generic window function you want to consider. You can provide either a GenericWindow struct containing them or the String filename where they are stored (that will be internally open with GenericWindow too). The file must have the following structure\n $ cat Ql_multipoles.txt \n # Any comment line in the file must start with a #\n # you can have how many comment lines you want in the header; they \n # will be all skipped.\n # Then you must provide in blank space separated columns:\n # - as first column, the comoving distance values, measured in Mpc/h_0\n # - from the second column onwards, all the Q_{\u001bll_1} multipoles you want;\n # they must be ordered followinf the ascending multipole order (so \u001bll_1 = 0\n # must be the 2 column), and you can go as further as you want in the multipole\n # order\n # \n # s [Mpc/h_0] Q_{l1=0} Q_{l1=1} Q_{l1=2} ...\n 1.0 0.9999999999999999 1.445269850978461e-7 0.000011917268941324522 ...\n 21.0 0.9832914433168294 -0.0025537781362117177 -0.0033199998619560947 ...\n 41.0 0.9669175943095181 -0.004923364937797496 -0.006463561496567318 ... \n ... ... ... ...\n\nOptional arguments\n\nDepending on the algorithm you choose, the options would change. The options in common are:\n\npr::Bool=true : want to print the automatic messages to the screen?\nL::Int=0 : which multipole order should I use for this computation? IT MUST MATCH THE MULTIPOLE ORDER OF THE INPUT TPCF!\ncut_first_n::Int=0 and cut_last_n::Int=0 : you can cout the first and/or last n elements of the input data, if they are highly irregular.\n\nThe specific ones for alg = :fftlog are:\n\nν::Union{Float64,Nothing} = nothing : bias parameter, i.e. exponent used to \"balance\" the curve; if nothing, will be set automatically to 1.5\nn_extrap_low::Int = 500 and n_extrap_high::Int = 500 : number of points to concatenate on the left/right of the input x-axis ss vector, logarithmically distributed with the same ratio of the left/right-edge elements of ss.\nn_pad::Int = 500 : number of zeros to be concatenated both on the left and on the right of the input function. They stabilize a lot the algorithm.\n\nThe specific ones for alg = :twofast are:\n\nepl::Bool=true : do you want to extend the edges of the input vectors using two fitted power-laws (obtained from EPLs)\nN_left::Int = 12 and N_right::Int = 12 : number of points from left right edges to be used for the power law fitting in EPLs. They matters only if in the given input file ξ is not defined until the extremes of integration int_s_min and int_s_max.\nint_s_min::Float64 = 1e-1 and int_s_max::Float64 = 1e3: extremes of integration; if epl is set to false, their values will be automatically set to min(ss...) and max(ss...) respectively. Their values do matter only if epl=true. \np0_left=[-2.0, 1.0] and p0_right=[-2.0, 1.0]: vectors with the initial values for the left/right power-law fitting of EPLs; the power-law is in the form y = f(x) = b * x^s, so the first vector value is the initial value of s (and of course the second is the one of b).\nk0::Union{Nothing,Float64} = nothing : starting point for the xicalc function; if nothing, it will be set k0 = 1.0 / max(ss...)\nright::Union{Float64,Nothing} = nothing : do you want to cut the output elements with ks .> right? if set to nothing, no cut will be done.\nN::Int = 1024 : number of points to be used in Fourier transform \n\nReturns\n\nA Tuple{Vector{Float64}, Vector{Float64}} with:\n\nthe k values vector as first element;\nthe correspoding PS pk values vector as second one.\n\nSee also: create_file_for_XiMultipoles, XiMultipoles, GenericWindow, V_survey, A, A_prime, EPLs, print_PS_multipole\n\n\n\n\n\n","category":"function"},{"location":"PowerSpectraGenWin/#GaPSE.print_PS_multipole_GenWin","page":"Power Spectra for a generic window","title":"GaPSE.print_PS_multipole_GenWin","text":"print_PS_multipole_GenWin(\n ximult::Union{XiMultipoles,String}, genwin::Union{GenericWindow,String},\n out::String; alg::Symbol=:fftlog, L::Int=0, \n cut_first_n::Int=0, cut_last_n::Int=0,\n kwargs...)\n\nCompute and save in the file out the L-order Power Spectrum (PS) multipole for a generic window function, through the following Fast Fourier Transform and the effective redshift approximation:\n\n leftlangle hatP_L(k) rightrangle = \n frac2 L + 1A (-i)^L\n sum_ell=0^infty \n sum_ell_1=0^infty \n beginpmatrix\n L ell ell_1 \n 0 0 0\n endpmatrix^2\n int_0^inftymathrmd s s^2 xi_ell(s s_rm eff) \n j_L(k s) Q_ell_1(s) \n\nwhere:\n\nleftlangle hatP_L(k) rightrangle is the order L Power Spectrum of the effect we are interested in; we are basing this expression on the Yamamoto estimator (see Yamamoto (2000) and Yamamoto (2006))\nA is a normalization constant\nthe 2x3 matrix represents the Wigner-3j symbols\nxi_ell is the order ell multipole of the Two-Point Correlation Function (TPCF)\nj_L is the spherical Bessel function of order L\ns_mathrmeff is the comoving distance associated with the effective redshift (see the TUTORIAL.ipynb notebook)\n\nQ_ell_1 can be easily estimated with FFT methods:\n\nbeginsplit\n Q_ell_1(s) = int_0^inftymathrmds_1 s_1^2 \n phi(s_1) F_ell_1(s_1 s) \n F_ell_1 (s_1 s) = \n int_4pi mathrmdOmega_mathbfhats \n int_4pi mathrmdOmega_mathbfhats_1 \n phi(s_2) W(mathbfhats_1) W(mathbfhats_2) \n mathcalL_ell_1(mathbfhats cdot mathbfhats_1) \nendsplit\n\nwhere:\n\nmathcalL_ell_1 is the Legendre polynomial of order ell_1\nmathrmdOmega_mathbfhats is the infinitesimal solid angle pointing in the direction of the versor mathbfhats\nphi(s) and W(mathbfhats) are respectively the radial and angular part of your window function (we remember that we assumed that such separability of the window function is possible)\n\nCheck Eq.(2.13) of Castorina, Di Dio for the theoretical explanation of this formula.\n\nCurrenlty, there are two algorithms you can choose in order to perform the computation; you can choose which one to use through the keyword value alg:\n\nalg = :fftlog (default and recommended option) will employ the FFTLog algorithm.\nalg = :twofast will employ the TwoFAST xicalc function of the TwoFAST Julia package. Note that in the computation the integration range 0leq s leq infty is reduced to int_s_min ≤ s ≤ int_s_max. This alogrithm is not the ideal choise, because TwoFAST is conceived for the direction PS -> TPCF, while is not 100% trustworthy for the other way round.\n\nIMPORTANT: no matter which algorithm you choose, you will need to give the input data in a LOGARITHMICALLY DISTRIBUTED scale. A linear distribution does not fit for the algorithms to apply.\n\nInputs\n\nximult::Union{XiMultipoles,String} : Two-Point Correlation functions to be used in the computation. You can provide either a XiMultipoles struct containing them or the String filename where they are stored (that will be internally open with XiMultipoles too). The file must have a structure analogous to the genwin one (see the next Inputs item). You can use create_file_for_XiMultipoles to produce such a file.\ngenwin::Union{GenericWindow,String} : multipoles Q_ell_1 of the generic window function you want to consider. You can provide either a GenericWindow struct containing them or the String filename where they are stored (that will be internally open with GenericWindow too). The file must have the following structure\n $ cat Ql_multipoles.txt \n # Any comment line in the file must start with a #\n # you can have how many comment lines you want in the header; they \n # will be all skipped.\n # Then you must provide in blank space separated columns:\n # - as first column, the comoving distance values, measured in Mpc/h_0\n # - from the second column onwards, all the Q_{\u001bll_1} multipoles you want;\n # they must be ordered followinf the ascending multipole order (so \u001bll_1 = 0\n # must be the 2 column), and you can go as further as you want in the multipole\n # order\n # \n # s [Mpc/h_0] Q_{l1=0} Q_{l1=1} Q_{l1=2} ...\n 1.0 0.9999999999999999 1.445269850978461e-7 0.000011917268941324522 ...\n 21.0 0.9832914433168294 -0.0025537781362117177 -0.0033199998619560947 ...\n 41.0 0.9669175943095181 -0.004923364937797496 -0.006463561496567318 ... \n ... ... ... ...\nout::String : name of the file where the results must be stored.\n\nOptional arguments\n\nDepending on the algorithm you choose, the options would change. The options in common are:\n\npr::Bool=true : want to print the automatic messages to the screen?\nL::Int=0 : which multipole order should I use for this computation? IT MUST MATCH THE MULTIPOLE ORDER OF THE INPUT TPCF!\ncut_first_n::Int=0 and cut_last_n::Int=0 : you can cout the first and/or last n elements of the input data, if they are highly irregular.\n\nThe specific ones for alg = :fftlog are:\n\nν::Union{Float64,Nothing} = nothing : bias parameter, i.e. exponent used to \"balance\" the curve; if nothing, will be set automatically to 1.5\nn_extrap_low::Int = 500 and n_extrap_high::Int = 500 : number of points to concatenate on the left/right of the input x-axis ss vector, logarithmically distributed with the same ratio of the left/right-edge elements of ss.\nn_pad::Int = 500 : number of zeros to be concatenated both on the left and on the right of the input function. They stabilize a lot the algorithm.\n\nThe specific ones for alg = :twofast are:\n\nepl::Bool=true : do you want to extend the edges of the input vectors using two fitted power-laws (obtained from EPLs)\nN_left::Int = 12 and N_right::Int = 12 : number of points from left right edges to be used for the power law fitting in EPLs. They matters only if in the given input file ξ is not defined until the extremes of integration int_s_min and int_s_max.\nint_s_min::Float64 = 1e-1 and int_s_max::Float64 = 1e3: extremes of integration; if epl is set to false, their values will be automatically set to min(ss...) and max(ss...) respectively. Their values do matter only if epl=true. \np0_left=[-2.0, 1.0] and p0_right=[-2.0, 1.0]: vectors with the initial values for the left/right power-law fitting of EPLs; the power-law is in the form y = f(x) = b * x^s, so the first vector value is the initial value of s (and of course the second is the one of b).\nk0::Union{Nothing,Float64} = nothing : starting point for the xicalc function; if nothing, it will be set k0 = 1.0 / max(ss...)\nright::Union{Float64,Nothing} = nothing : do you want to cut the output elements with ks .> right? if set to nothing, no cut will be done.\nN::Int = 1024 : number of points to be used in Fourier transform \n\nSee also: create_file_for_XiMultipoles, XiMultipoles, GenericWindow, V_survey, A, A_prime, EPLs, print_PS_multipole, PS_multipole_GenWin\n\n\n\n\n\n","category":"function"},{"location":"LD_Correlations_1/","page":"LD TPCFs","title":"LD TPCFs","text":"DocTestSetup = quote\n using GaPSE\nend","category":"page"},{"location":"LD_Correlations_1/#LD-TPCFs","page":"LD TPCFs","title":"LD TPCFs","text":"","category":"section"},{"location":"LD_Correlations_1/#Two-Point-Auto-Correlation-Functions","page":"LD TPCFs","title":"Two-Point Auto-Correlation Functions","text":"","category":"section"},{"location":"LD_Correlations_1/","page":"LD TPCFs","title":"LD TPCFs","text":"GaPSE.ξ_LD_Doppler\nGaPSE.ξ_LD_Lensing\nGaPSE.ξ_LD_LocalGP\nGaPSE.ξ_LD_IntegratedGP","category":"page"},{"location":"LD_Correlations_1/#GaPSE.ξ_LD_Doppler","page":"LD TPCFs","title":"GaPSE.ξ_LD_Doppler","text":"ξ_LD_Doppler(P1::Point, P2::Point, y, cosmo::Cosmology) ::Float64\n\nξ_LD_Doppler(s1, s2, y, cosmo::Cosmology) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) of the Doppler auto-correlation effect arising from the Luminosity Distance (LD) perturbations.\n\nIn the first method, you should pass the two Point (P1 and P2) where to evaluate the function, while in the second method (that internally recalls the first) you must provide the two corresponding comoving distances s1 and s2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this term is the following:\n\nbeginsplit\n xi^v_parallelv_parallel (s_1 s_2 y) = \n mathcalJ^v_parallelv_parallel_alpha\n left\n mathcalJ^v_parallelv_parallel_00 I_0^0(s) + \n mathcalJ^v_parallelv_parallel_02 I_2^0(s) +\n mathcalJ^v_parallelv_parallel_04 I_4^0(s) + \n mathcalJ^v_parallelv_parallel_20 I_0^2(s)\n right \nendsplit\n\nwith\n\nbeginsplit\n mathcalJ^v_parallelv_parallel_alpha = \n D_1 D_2 f_1 f_2 mathcalH_1 mathcalH_2 mathfrakR_1 mathfrakR_2\n \n \n mathcalJ^v_parallelv_parallel_00 = \n frac145 left\n y^2 s_1 s_2 - 2y(s_1^2 + s_2^2) + 3s_1 s_2\n right\n \n \n mathcalJ^v_parallelv_parallel_02 = \n frac263 left\n y^2 s_1 s_2 - 2y(s_1^2 + s_2^2) + 3s_1 s_2\n right\n \n \n mathcalJ^v_parallelv_parallel_04 = \n frac1105 left\n y^2 s_1 s_2 - 2y(s_1^2 + s_2^2) + 3s_1 s_2\n right\n \n \n mathcalJ^v_parallelv_parallel_20 = frac13 y s^2 \n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathfrakR_1 = mathfrakR(s_1), ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathfrakR(s) = 1 - frac1mathcalH(s) s \nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nInputs\n\nP1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters Omega_mathrmM0, ...\n\nSee also: Point, Cosmology, ξ_LD_multipole, map_ξ_LD_multipole, print_map_ξ_LD_multipole\n\n\n\n\n\n","category":"function"},{"location":"LD_Correlations_1/#GaPSE.ξ_LD_Lensing","page":"LD TPCFs","title":"GaPSE.ξ_LD_Lensing","text":"ξ_LD_Lensing(P1::Point, P2::Point, y, cosmo::Cosmology;\n en::Float64 = 1e6, Δχ_min::Float64 = 1e-3,\n N_χs_2::Int = 100) ::Float64\n\nξ_LD_Lensing(s1, s2, y, cosmo::Cosmology; kwargs...) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) of the Lensing auto-correlation effect arising from the Luminosity Distance (LD) perturbations.\n\nIn the first method, you should pass the two Point (P1 and P2) where to evaluate the function, while in the second method (that internally recalls the first) you must provide the two corresponding comoving distances s1 and s2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this term is the following:\n\nbeginsplit\n xi^kappakappa (s_1 s_2 y) = \n int_0^s_1 mathrmdchi_1 int_0^s_2 mathrmdchi_2 \n mathcalJ^kappakappa_alpha left\n mathcalJ^kappakappa_00I^0_0(Deltachi) + \n mathcalJ^kappakappa_02 I^0_2(Deltachi) +\n mathcalJ^kappakappa_31I^3_1(Deltachi) +\n mathcalJ^kappakappa_22I^2_2(Deltachi)\n right nonumber \nendsplit\n\nwith\n\nbeginsplit\n mathcalJ^kappakappa_alpha = \n frac\n mathcalH_0^4 Omega_mathrmM0^2 D(chi_1) D(chi_2)\n \n s_1 s_2 a(chi_1) a(chi_2)\n (chi_1 - s_1)(chi_2 - s_2)\n \n \n mathcalJ^kappakappa_00 = \n -frac 3 chi_1^2 chi_2^24 Deltachi^4 (y^2 - 1)\n left\n 8 y (chi_1^2 + chi_2^2) - 9chi_1chi_2y^2 - \n 7chi_1chi_2\n right \n \n \n mathcalJ^kappakappa_02 = \n -frac 3 chi_1^2 chi_2^22 Deltachi^4(y^2 - 1)\n left\n 4 y (chi_1^2 + chi_2^2) - 3 chi_1 chi_2 y^2 -\n 5 chi_1 chi_2\n right \n \n \n mathcalJ^kappakappa_31 = 9 y Deltachi^2\n \n \n mathcalJ^kappakappa_22 = \n frac9 chi_1 chi_24 Deltachi^4\n left\n 2(chi_1^4 + chi_2^4)(7 y^2 - 3) - \n 16 y chi_1 chi_2 (chi_1^2 + chi_2^2)(y^2 + 1) + \n right\n leftqquadqquadqquad\n chi_1^2 chi_2^2 (11y^4 + 14y^2 + 23) \n right nonumber\n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathfrakR_1 = mathfrakR(s_1), ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathfrakR(s) = 1 - frac1mathcalH(s) s \nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nThis function is computed integrating integrand_ξ_LD_Lensing with trapz() from the Trapz Julia package.\n\nInputs\n\nP1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters Omega_mathrmM0, ...\n\nKeyword arguments\n\nen::Float64 = 1e6: just a float number used in order to deal better with small numbers;\nN_χs_2::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ1) and (0, s2) (for χ2); it has been checked that with N_χs_2 ≥ 50 the result is stable.\nΔχ_min::Float64 = 1e-4 : when Deltachi = sqrtchi_1^2 + chi_2^2 - 2 chi_1 chi_2 y to 0^+, some I_ell^n term diverges, but the overall parenthesis has a known limit:\nlim_Deltachito 0^+ left(J^kappakappa_00 I^0_0(Deltachi) + \n J^kappakappa_02 I^0_2(Deltachi) + \n J^kappakappa_31 I^3_1(Deltachi) + J^kappakappa_22 I^2_2(Deltachi)\n right) = \n frac415 left(5 sigma_2 + frac23 σ_0 s_1^2 chi_2^2right)\n\nSee also: Point, Cosmology, ξ_LD_multipole, map_ξ_LD_multipole, print_map_ξ_LD_multipole\n\n\n\n\n\n","category":"function"},{"location":"LD_Correlations_1/#GaPSE.ξ_LD_LocalGP","page":"LD TPCFs","title":"GaPSE.ξ_LD_LocalGP","text":"ξ_LD_LocalGP(P1::Point, P2::Point, y, cosmo::Cosmology) ::Float64\n\nξ_LD_LocalGP(s1, s2, y, cosmo::Cosmology; kwargs...) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) of the Local Gravitational Potential (GP) auto-correlation effect arising from the Luminosity Distance (LD) perturbations.\n\nIn the first method, you should pass the two Point (P1 and P2) where to evaluate the function, while in the second method (that internally recalls the first) you must provide the two corresponding comoving distances s1 and s2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this term is the following:\n\nbeginsplit\n xi^phiphi (s_1 s_2 y) = \n frac9 mathcalH_0^4 Omega_mathrmM0^2 D_1 D_2 s^4 4 a_1 a_2\n left(1 + mathfrakR_1 + mathfrakR_2 + mathfrakR_1 mathfrakR_2 right)\n tildeI^4_0(s) \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathfrakR_1 = mathfrakR(s_1), ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathfrakR(s) = 1 - frac1mathcalH(s) s \nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nInputs\n\nP1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters Omega_mathrmM0, ...\n\nSee also: Point, Cosmology, ξ_LD_multipole, map_ξ_LD_multipole, print_map_ξ_LD_multipole\n\n\n\n\n\n","category":"function"},{"location":"LD_Correlations_1/#GaPSE.ξ_LD_IntegratedGP","page":"LD TPCFs","title":"GaPSE.ξ_LD_IntegratedGP","text":"ξ_LD_IntegratedGP(P1::Point, P2::Point, y, cosmo::Cosmology; \n en::Float64 = 1e10, N_χs_2::Int = 100) :: Float64\n\nξ_LD_IntegratedGP(s1, s2, y, cosmo::Cosmology; kwargs... )::Float64\n\nReturn the Two-Point Correlation Function (TPCF) of the Integrated Gravitational Potential (GP) auto-correlation effect arising from the Luminosity Distance (LD) perturbations.\n\nIn the first method, you should pass the two Point (P1 and P2) where to evaluate the function, while in the second method (that internally recalls the first) you must provide the two corresponding comoving distances s1 and s2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this term is the following:\n\nbeginsplit\n xi^intphiintphi (s_1 s_2 y) = int_0^s_1mathrmdchi_1int_0^s_2mathrmdchi_2 \n mathcalJ^intphiintphi_40\n tildeI^4_0(chi) \nendsplit\n\nwith\n\nbeginsplit\n mathcalJ^intphiintphi_40 = \n frac\n 9 mathcalH_0^4 Omega_mathrmM0^2 D(chi_1) D(chi_2) Deltachi^4\n a(chi_1) a(chi_2) s_1 s_2 \n left\n s_2 mathcalH(chi_2) mathfrakR_2(f(chi_2) - 1) - 1\n right times \n left\n s_1 mathcalH(chi_1) mathfrakR_1(f(chi_1) - 1) - 1\n right \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathfrakR_1 = mathfrakR(s_1), ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathfrakR(s) = 1 - frac1mathcalH(s) s \nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nThis function is computed integrating integrand_ξ_LD_IntegratedGP with trapz() from the Trapz Julia package.\n\nInputs\n\nP1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters Omega_mathrmM0, ...\n\nKeyword Arguments\n\nen::Float64 = 1e6: just a float number used in order to deal better with small numbers;\nN_χs_2::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ1) and (0, s2) (for χ2); it has been checked that with N_χs_2 ≥ 50 the result is stable.\n\nSee also: Point, Cosmology, ξ_LD_multipole, map_ξ_LD_multipole, print_map_ξ_LD_multipole\n\n\n\n\n\n","category":"function"},{"location":"LD_Correlations_1/#Two-Point-Cross-Correlation-Functions","page":"LD TPCFs","title":"Two-Point Cross-Correlation Functions","text":"","category":"section"},{"location":"LD_Correlations_1/","page":"LD TPCFs","title":"LD TPCFs","text":"GaPSE.ξ_LD_Doppler_Lensing\nGaPSE.ξ_LD_Lensing_Doppler\nGaPSE.ξ_LD_Doppler_LocalGP\nGaPSE.ξ_LD_LocalGP_Doppler\nGaPSE.ξ_LD_Doppler_IntegratedGP\nGaPSE.ξ_LD_IntegratedGP_Doppler\nGaPSE.ξ_LD_Lensing_LocalGP\nGaPSE.ξ_LD_LocalGP_Lensing\nGaPSE.ξ_LD_Lensing_IntegratedGP\nGaPSE.ξ_LD_IntegratedGP_Lensing\nGaPSE.ξ_LD_LocalGP_IntegratedGP\nGaPSE.ξ_LD_IntegratedGP_LocalGP","category":"page"},{"location":"LD_Correlations_1/#GaPSE.ξ_LD_Doppler_Lensing","page":"LD TPCFs","title":"GaPSE.ξ_LD_Doppler_Lensing","text":"ξ_LD_Doppler_Lensing(\n s1, s2, y, cosmo::Cosmology; \n kwargs... ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Doppler and the Lensing effects arising from the Luminosity Distance (LD) perturbations.\n\nIt's computed through the symmetric function ξ_LD_Lensing_Doppler; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nInputs\n\ns1 and s2: comoving distances where the TPCF has to be calculated;\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nkwargs... : Keyword arguments to be passed to the symmetric TPCF\n\nSee also: Point, Cosmology, ξ_LD_multipole, map_ξ_LD_multipole, print_map_ξ_LD_multipole, ξ_LD_Lensing_Doppler\n\n\n\n\n\n","category":"function"},{"location":"LD_Correlations_1/#GaPSE.ξ_LD_Lensing_Doppler","page":"LD TPCFs","title":"GaPSE.ξ_LD_Lensing_Doppler","text":"ξ_LD_Lensing_Doppler(\n s1, s2, y, cosmo::Cosmology;\n en::Float64 = 1e6, N_χs::Int = 100 ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Lensing and the Doppler effects arising from the Luminosity Distance (LD) perturbations.\n\nYou must provide the two comoving distances s1 and s2 where to evaluate the function. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this integrand is the following:\n\nbeginsplit\n xi^kappa v_parallel (s_1 s_2 y) = \n int_0^s_1 mathrmdchi_1 \n mathcalJ^kappa v_parallel_alpha times \n left\n mathcalJ^kappa v_parallel_00 I_0^0(Deltachi_1) + \n mathcalJ^kappa v_parallel_02 I_2^0(Deltachi_1) + \n mathcalJ^kappa v_parallel_04 I_4^0(Deltachi_1) + \n mathcalJ^kappa v_parallel_20 I_0^2(Deltachi_1)\n right \nendsplit\n\nwith\n\nbeginsplit\n mathcalJ^kappa v_parallel_alpha = \n mathcalH_0^2 Omega_mathrmM0 D_2 f_2 mathcalH_2 mathfrakR_2 \n fracD(chi_1) (chi_1 - s_1)a(chi_1) s_1\n \n \n mathcalJ^kappa v_parallel_00 = \n frac115\n left\n chi_1^2 y + chi_1(4 y^2 - 3) s_2 - 2 y s_2^2\n right\n \n \n mathcalJ^kappa v_parallel_02 = \n frac142 Deltachi_1^2\n left\n 4 chi_1^4 y + 4 chi_1^3 (2 y^2 - 3) s_2 +\n chi_1^2 y (11 - 23 y^2) s_2^2 +\n right\n leftqquadqquadqquad\n chi_1 (23 y^2 - 3) s_2^3 - 8 y s_2^4\n right nonumber\n \n \n mathcalJ^kappa v_parallel_04 = \n frac170 Deltachi_1^2 \n left\n 2chi_1^4 y + 2 chi_1^3 (2 y^2 - 3) s_2 -\n chi_1^2 y (y^2 + 5) s_2^2 + \n right\n leftqquadqquadqquad\n chi_1(y^2 + 9) s_2^3 - 4 y s_2^4\n right nonumber\n \n \n mathcalJ^kappa v_parallel_20 = y Deltachi_1^2 \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathfrakR_1 = mathfrakR(s_1), ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathfrakR(s) = 1 - frac1mathcalH(s) s \nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nThis function is computed integrating integrand_ξ_LD_Lensing_Doppler with trapz() from the Trapz Julia package.\n\nInputs\n\nP1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters Omega_mathrmM0, ...\n\nKeyword Arguments\n\nen::Float64 = 1e6: just a float number used in order to deal better with small numbers;\nN_χs::Int = 100: number of points to be used for sampling the integral along the range (0, s1) (for χ1); it has been checked that with N_χs ≥ 50 the result is stable.\n\nSee also: Point, Cosmology, ξ_LD_multipole, map_ξ_LD_multipole, print_map_ξ_LD_multipole\n\n\n\n\n\n","category":"function"},{"location":"LD_Correlations_1/#GaPSE.ξ_LD_Doppler_LocalGP","page":"LD TPCFs","title":"GaPSE.ξ_LD_Doppler_LocalGP","text":"ξ_LD_Doppler_LocalGP(P1::Point, P2::Point, y, cosmo::Cosmology ) ::Float64\nξ_LD_Doppler_LocalGP(s1, s2, y, cosmo::Cosmology ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Doppler and the Local Gravitational Potential (GP) effects arising from the Luminosity Distance (LD) perturbations.\n\nIn the first method, you should pass the two Point (P1 and P2) where to evaluate the function, while in the second method (that internally recalls the first) you must provide the two corresponding comoving distances s1 and s2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this TPCF is the following:\n\nbeginsplit\n xi^v_parallelphi (s_1 s_2 y) = \n mathcalJ^v_parallelphi_31 I^3_1(s) \nendsplit\n\nwith\n\nbeginsplit\n mathcalJ^v_parallelphi_31 = \n frac32 a_2 mathcalH_1 f_1 D_1 mathfrakR_1 mathcalH_0^2 \n Omega_mathrmM0 D_2 (1 + mathfrakR_2)(s_1 - s_2 y) \n s^2 \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathfrakR_1 = mathfrakR(s_1), ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathfrakR(s) = 1 - frac1mathcalH(s) s \nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nInputs\n\nP1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters Omega_mathrmM0, ...\n\nSee also: Point, Cosmology, ξ_LD_multipole, map_ξ_LD_multipole, print_map_ξ_LD_multipole\n\n\n\n\n\n","category":"function"},{"location":"LD_Correlations_1/#GaPSE.ξ_LD_LocalGP_Doppler","page":"LD TPCFs","title":"GaPSE.ξ_LD_LocalGP_Doppler","text":"ξ_LD_LocalGP_Doppler(\n s1, s2, y, cosmo::Cosmology; \n kwargs... ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Local Gravitational Potential (GP) and the Doppler effects arising from the Luminosity Distance (LD) perturbations.\n\nIt's computed through the symmetric function ξ_LD_Doppler_LocalGP; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nInputs\n\ns1 and s2: comoving distances where the TPCF has to be calculated;\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nkwargs... : Keyword arguments to be passed to the symmetric TPCF\n\nSee also: Point, Cosmology, ξ_LD_multipole, map_ξ_LD_multipole, print_map_ξ_LD_multipole, ξ_LD_Doppler_LocalGP\n\n\n\n\n\n","category":"function"},{"location":"LD_Correlations_1/#GaPSE.ξ_LD_Doppler_IntegratedGP","page":"LD TPCFs","title":"GaPSE.ξ_LD_Doppler_IntegratedGP","text":"ξ_LD_Doppler_IntegratedGP(\n s1, s2, y, cosmo::Cosmology;\n en::Float64 = 1e6, N_χs::Int = 100 ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Doppler and the Integrated Gravitational Potential (GP) effects arising from the Luminosity Distance (LD) perturbations.\n\nYou must provide the two comoving distances s1 and s2 where to evaluate the function. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this TPCF is the following:\n\nbeginsplit\n xi^v_parallel intphi left(chi_2 s_1 s_2 y right) = \n int_0^s_2 mathrmdchi_2 \n mathcalJ^v_parallel intphi_31 I_1^3(Deltachi_2) \nendsplit\n\nwith\n\nbeginsplit\n mathcalJ^v_parallel intphi_31 =\n 3 mathcalH_1 f_1 D_1 mathcalH_0^2 Omega_mathrmM0 mathfrakR_1 \n frac\n D(chi_2)(s_1 - chi_2 y)\n \n a(chi_2) s_2\n Deltachi_2^2 left\n s_2 mathfrakR_2 mathcalH(chi_2)(f_2 -1) - 1\n right \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathfrakR_1 = mathfrakR(s_1), ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathfrakR(s) = 1 - frac1mathcalH(s) s \nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nThis function is computed integrating integrand_ξ_LD_Doppler_IntegratedGP with trapz() from the Trapz Julia package.\n\nInputs\n\nP1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters Omega_mathrmM0, ...\n\nKeyword Arguments\n\nen::Float64 = 1e6: just a float number used in order to deal better with small numbers;\nN_χs::Int = 100: number of points to be used for sampling the integral along the range (0, s2) (for χ2); it has been checked that with N_χs ≥ 100 the result is stable.\n\nSee also: Point, Cosmology, ξ_LD_multipole, map_ξ_LD_multipole, print_map_ξ_LD_multipole\n\n\n\n\n\n","category":"function"},{"location":"LD_Correlations_1/#GaPSE.ξ_LD_IntegratedGP_Doppler","page":"LD TPCFs","title":"GaPSE.ξ_LD_IntegratedGP_Doppler","text":"ξ_LD_IntegratedGP_Doppler(\n s1, s2, y, cosmo::Cosmology; \n kwargs... ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Integrated Gravitational Potential (GP) and the Doppler effects arising from the Luminosity Distance (LD) perturbations.\n\nIt's computed through the symmetric function ξ_LD_Doppler_IntegratedGP; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nInputs\n\ns1 and s2: comoving distances where the TPCF has to be calculated;\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nkwargs... : Keyword arguments to be passed to the symmetric TPCF\n\nSee also: Point, Cosmology, ξ_LD_multipole, map_ξ_LD_multipole, print_map_ξ_LD_multipole, ξ_LD_Doppler_IntegratedGP\n\n\n\n\n\n","category":"function"},{"location":"LD_Correlations_1/#GaPSE.ξ_LD_Lensing_LocalGP","page":"LD TPCFs","title":"GaPSE.ξ_LD_Lensing_LocalGP","text":"ξ_LD_Lensing_LocalGP(\n s1, s2, y, cosmo::Cosmology;\n en::Float64 = 1e6, N_χs::Int = 100 ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Lensing and the Local Gravitational Potential (GP) effects arising from the Luminosity Distance (LD) perturbations.\n\nYou must provide the two comoving distances s1 and s2 where to evaluate the function. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this TPCF is the following:\n\nbeginsplit\n xi^kappa phi (s_1 s_2 y) = \n int_0^s_1 mathrmdchi_1 \n mathcalJ^kappa phi_alpha left\n mathcalJ^kappa phi_31 I_1^3(Deltachi_1) + \n mathcalJ^kappa phi_22 I_2^2(Deltachi_1)\n right nonumber \nendsplit\n\nwith\n\nbeginsplit\n mathcalJ^kappa phi_alpha =\n frac\n 9 mathcalH_0^4 Omega_mathrmM0^2 D_2 s_2\n 4 a_2 s_1 (1 + mathfrakR_2)\n fracD(chi_1)(s_1 - chi_1)a(chi_1)\n \n \n mathcalJ^kappa phi_31 = -2 y Deltachi_1^2 \n \n \n mathcalJ^kappa phi_22 = chi_1 s_2 (1 - y^2) \n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathfrakR_1 = mathfrakR(s_1), ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathfrakR(s) = 1 - frac1mathcalH(s) s \nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nThis function is computed integrating integrand_ξ_LD_Lensing_LocalGP with trapz() from the Trapz Julia package.\n\nInputs\n\nP1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters Omega_mathrmM0, ...\n\nKeyword Arguments\n\nen::Float64 = 1e6: just a float number used in order to deal better with small numbers;\nN_χs::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ1); it has been checked that with N_χs ≥ 50 the result is stable.\n\nSee also: Point, Cosmology, ξ_LD_multipole, map_ξ_LD_multipole, print_map_ξ_LD_multipole\n\n\n\n\n\n","category":"function"},{"location":"LD_Correlations_1/#GaPSE.ξ_LD_LocalGP_Lensing","page":"LD TPCFs","title":"GaPSE.ξ_LD_LocalGP_Lensing","text":"ξ_LD_LocalGP_Lensing(\n s1, s2, y, cosmo::Cosmology; \n kwargs... ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Local Gravitational Potential (GP) and the Lensing effects arising from the Luminosity Distance (LD) perturbations.\n\nIt's computed through the symmetric function ξ_LD_Lensing_LocalGP; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nInputs\n\ns1 and s2: comoving distances where the TPCF has to be calculated;\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nkwargs... : Keyword arguments to be passed to the symmetric TPCF\n\nSee also: Point, Cosmology, ξ_LD_multipole, map_ξ_LD_multipole, print_map_ξ_LD_multipole, ξ_LD_Lensing_LocalGP\n\n\n\n\n\n","category":"function"},{"location":"LD_Correlations_1/#GaPSE.ξ_LD_Lensing_IntegratedGP","page":"LD TPCFs","title":"GaPSE.ξ_LD_Lensing_IntegratedGP","text":"ξ_LD_Lensing_IntegratedGP(\n P1::Point, P2::Point, y, cosmo::Cosmology;\n en::Float64 = 1e6, N_χs_2::Int = 100 ) ::Float64\n\nξ_LD_Lensing_IntegratedGP(\n s1, s2, y, cosmo::Cosmology; kwargs... ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Lensing and the Integrated Gravitational Potential (GP) effects arising from the Luminosity Distance (LD) perturbations.\n\nIn the first method, you should pass the two Point (P1 and P2) where to evaluate the function, while in the second method (that internally recalls the first) you must provide the two corresponding comoving distances s1 and s2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this TPCF is the following:\n\nbeginsplit\n xi^kappaintphi (s_1 s_2 y) = \n int_0^s_1 mathrmdchi_1 int_0^s_2 mathrmdchi_2 \n mathcalJ^kappaintphi_alphaleft \n mathcalJ^kappaintphi_31 I_1^3(Deltachi) + \n mathcalJ^kappaintphi_22 I_2^2(Deltachi) \n right \nendsplit\n\nwith\n\nbeginsplit\n mathcalJ^kappaintphi_alpha =\n frac92 mathcalH_0^4 Omega_mathrmM0^2 \n frac\n D(chi_1) D(chi_2) chi_2 (s_1 - chi_1)\n \n s_1 a(chi_1) a(chi_2)\n \n left\n mathcalH(chi_2)(f(chi_2) - 1)mathfrakR_2 -frac1s_2 \n right\n \n \n mathcalJ^kappaintphi_31 = -2 y Deltachi^2\n \n \n mathcalJ^kappaintphi_22 = chi_1 chi_2(1 - y^2) \n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathfrakR_1 = mathfrakR(s_1), ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathfrakR(s) = 1 - frac1mathcalH(s) s \nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nThis function is computed integrating integrand_ξ_LD_Lensing_IntegratedGP with trapz() from the Trapz Julia package.\n\nInputs\n\nP1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters Omega_mathrmM0, ...\n\nKeyword Arguments\n\nen::Float64 = 1e6: just a float number used in order to deal better with small numbers;\nN_χs_2::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ1) and (0, s2) (for χ2); it has been checked that with N_χs_2 ≥ 50 the result is stable.\n\nSee also: Point, Cosmology, ξ_LD_multipole, map_ξ_LD_multipole, print_map_ξ_LD_multipole\n\n\n\n\n\n","category":"function"},{"location":"LD_Correlations_1/#GaPSE.ξ_LD_IntegratedGP_Lensing","page":"LD TPCFs","title":"GaPSE.ξ_LD_IntegratedGP_Lensing","text":"ξ_LD_IntegratedGP_Lensing(\n s1, s2, y, cosmo::Cosmology; \n kwargs... ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Integrated Gravitational Potential (GP) and the Lensing effects arising from the Luminosity Distance (LD) perturbations.\n\nIt's computed through the symmetric function ξ_LD_Lensing_IntegratedGP; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nInputs\n\ns1 and s2: comoving distances where the TPCF has to be calculated;\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nkwargs... : Keyword arguments to be passed to the symmetric TPCF\n\nSee also: Point, Cosmology, ξ_LD_multipole, map_ξ_LD_multipole, print_map_ξ_LD_multipole, ξ_LD_Lensing_IntegratedGP\n\n\n\n\n\n","category":"function"},{"location":"LD_Correlations_1/#GaPSE.ξ_LD_LocalGP_IntegratedGP","page":"LD TPCFs","title":"GaPSE.ξ_LD_LocalGP_IntegratedGP","text":"ξ_LD_LocalGP_IntegratedGP(\n s1, s2, y, cosmo::Cosmology;\n en::Float64 = 1e6, N_χs::Int = 100 ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Local Gravitational Potential (GP) and the Integrated GP effects arising from the Luminosity Distance (LD) perturbations.\n\nYou must provide the two comoving distances s1 and s2 where to evaluate the function. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this TPCF is the following:\n\nbeginsplit\n xi^phiintphi (s_1 s_2 y) = \n int_0^s_2 mathrmdchi_2 \n mathcalJ^phi intphi_40 tildeI^4_0(Deltachi_2)\n \nendsplit\n\nwith\n\nbeginsplit\n mathcalJ^phi intphi_40 =\n frac9 mathcalH_0^4 Omega_mathrmM0^2 D_12 a_1 \n (mathfrakR_1 + 1)\n fracD(chi_2) Deltachi_2^4a(chi_2)\n left\n mathcalH(chi_2)(f(chi_2) - 1)mathfrakR_2 - frac1s_2\n right \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathfrakR_1 = mathfrakR(s_1), ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathfrakR(s) = 1 - frac1mathcalH(s) s \nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nThis function is computed integrating integrand_ξ_LD_LocalGP_IntegratedGP with trapz() from the Trapz Julia package.\n\nInputs\n\nP1::Point and P2::Point, or s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters Omega_mathrmM0, ...\n\nKeyword arguments\n\nen::Float64 = 1e6: just a float number used in order to deal better with small numbers;\nN_χs::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ1); it has been checked that with N_χs ≥ 50 the result is stable.\n\nSee also: Point, Cosmology, ξ_LD_multipole, map_ξ_LD_multipole, print_map_ξ_LD_multipole\n\n\n\n\n\n","category":"function"},{"location":"LD_Correlations_1/#GaPSE.ξ_LD_IntegratedGP_LocalGP","page":"LD TPCFs","title":"GaPSE.ξ_LD_IntegratedGP_LocalGP","text":"ξ_LD_IntegratedGP_LocalGP(\n s1, s2, y, cosmo::Cosmology; \n kwargs... ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Integrated Gravitational Potential (GP) and the Local GP effects arising from the Luminosity Distance (LD) perturbations.\n\nIt's computed through the symmetric function ξ_LD_IntegratedGP_LocalGP; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nInputs\n\ns1 and s2: comoving distances where the TPCF has to be calculated;\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nkwargs... : Keyword arguments to be passed to the symmetric TPCF\n\nSee also: Point, Cosmology, ξ_LD_multipole, map_ξ_LD_multipole, print_map_ξ_LD_multipole, ξ_LD_IntegratedGP_LocalGP\n\n\n\n\n\n","category":"function"},{"location":"LDxGNC_Correlations_1/","page":"LDxGNC TPCFs","title":"LDxGNC TPCFs","text":"DocTestSetup = quote\n using GaPSE\nend","category":"page"},{"location":"LDxGNC_Correlations_1/#LDxGNC-TPCFs","page":"LDxGNC TPCFs","title":"LDxGNC TPCFs","text":"","category":"section"},{"location":"LDxGNC_Correlations_1/#Two-Point-Cross-Correlation-Functions","page":"LDxGNC TPCFs","title":"Two-Point Cross-Correlation Functions","text":"","category":"section"},{"location":"LDxGNC_Correlations_1/","page":"LDxGNC TPCFs","title":"LDxGNC TPCFs","text":"GaPSE.ξ_LDxGNC_Doppler_Newtonian\nGaPSE.ξ_LDxGNC_Lensing_Newtonian\nGaPSE.ξ_LDxGNC_LocalGP_Newtonian\nGaPSE.ξ_LDxGNC_IntegratedGP_Newtonian\nGaPSE.ξ_LDxGNC_Doppler_Doppler\nGaPSE.ξ_LDxGNC_Lensing_Doppler\nGaPSE.ξ_LDxGNC_LocalGP_Doppler\nGaPSE.ξ_LDxGNC_IntegratedGP_Doppler\nGaPSE.ξ_LDxGNC_Doppler_Lensing\nGaPSE.ξ_LDxGNC_Lensing_Lensing\nGaPSE.ξ_LDxGNC_LocalGP_Lensing\nGaPSE.ξ_LDxGNC_IntegratedGP_Lensing\nGaPSE.ξ_LDxGNC_Doppler_LocalGP\nGaPSE.ξ_LDxGNC_Lensing_LocalGP\nGaPSE.ξ_LDxGNC_LocalGP_LocalGP\nGaPSE.ξ_LDxGNC_IntegratedGP_LocalGP\nGaPSE.ξ_LDxGNC_Doppler_IntegratedGP\nGaPSE.ξ_LDxGNC_Lensing_IntegratedGP\nGaPSE.ξ_LDxGNC_LocalGP_IntegratedGP\nGaPSE.ξ_LDxGNC_IntegratedGP_IntegratedGP","category":"page"},{"location":"LDxGNC_Correlations_1/#GaPSE.ξ_LDxGNC_Doppler_Newtonian","page":"LDxGNC TPCFs","title":"GaPSE.ξ_LDxGNC_Doppler_Newtonian","text":"ξ_LDxGNC_Doppler_Newtonian(s1, s2, y, cosmo::Cosmology; \n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, \n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,\n obs::Union{Bool, Symbol} = :noobsvel ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Doppler effect arising from the Luminosity Distance (LD) perturbations and the Newtonian one arising from the Galaxy Number Counts (GNC).\n\nIt's computed through the symmetric function ξ_GNCxLD_Newtonian_Doppler; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nInputs\n\ns1 and s2: comoving distances where the TPCF has to be calculated;\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nkwargs... : Keyword arguments to be passed to the symmetric TPCF\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_LDxGNC_multipole, print_map_ξ_LDxGNC_multipole, ξ_GNCxLD_Newtonian_Doppler\n\n\n\n\n\n","category":"function"},{"location":"LDxGNC_Correlations_1/#GaPSE.ξ_LDxGNC_Lensing_Newtonian","page":"LDxGNC TPCFs","title":"GaPSE.ξ_LDxGNC_Lensing_Newtonian","text":"ξ_LDxGNC_Lensing_Newtonian(s1, s2, y, cosmo::Cosmology; \n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, \n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,\n obs::Union{Bool, Symbol} = :noobsvel ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Lensing effect arising from the Luminosity Distance (LD) perturbations and the Newtonian one arising from the Galaxy Number Counts (GNC).\n\nIt's computed through the symmetric function ξ_GNCxLD_Newtonian_Lensing; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nInputs\n\ns1 and s2: comoving distances where the TPCF has to be calculated;\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nkwargs... : Keyword arguments to be passed to the symmetric TPCF\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_LDxGNC_multipole, print_map_ξ_LDxGNC_multipole, ξ_GNCxLD_Newtonian_Lensing\n\n\n\n\n\n","category":"function"},{"location":"LDxGNC_Correlations_1/#GaPSE.ξ_LDxGNC_LocalGP_Newtonian","page":"LDxGNC TPCFs","title":"GaPSE.ξ_LDxGNC_LocalGP_Newtonian","text":"ξ_LDxGNC_LocalGP_Newtonian(s1, s2, y, cosmo::Cosmology; \n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, \n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,\n obs::Union{Bool, Symbol} = :noobsvel ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Local Gravitational Potential (GP) effect arising from the Luminosity Distance (LD) perturbations and the Newtonian one arising from the Galaxy Number Counts (GNC).\n\nIt's computed through the symmetric function ξ_GNCxLD_Newtonian_LocalGP; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nInputs\n\ns1 and s2: comoving distances where the TPCF has to be calculated;\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nkwargs... : Keyword arguments to be passed to the symmetric TPCF\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_LDxGNC_multipole, print_map_ξ_LDxGNC_multipole, ξ_GNCxLD_Newtonian_LocalGP\n\n\n\n\n\n","category":"function"},{"location":"LDxGNC_Correlations_1/#GaPSE.ξ_LDxGNC_IntegratedGP_Newtonian","page":"LDxGNC TPCFs","title":"GaPSE.ξ_LDxGNC_IntegratedGP_Newtonian","text":"ξ_LDxGNC_IntegratedGP_Newtonian(s1, s2, y, cosmo::Cosmology; \n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, \n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,\n obs::Union{Bool, Symbol} = :noobsvel ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Integrated Gravitational Potential (GP) effect arising from the Luminosity Distance (LD) perturbations and the Newtonian one arising from the Galaxy Number Counts (GNC).\n\nIt's computed through the symmetric function ξ_GNCxLD_Newtonian_IntegratedGP; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nInputs\n\ns1 and s2: comoving distances where the TPCF has to be calculated;\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nkwargs... : Keyword arguments to be passed to the symmetric TPCF\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_LDxGNC_multipole, print_map_ξ_LDxGNC_multipole, ξ_GNCxLD_Newtonian_IntegratedGP\n\n\n\n\n\n","category":"function"},{"location":"LDxGNC_Correlations_1/#GaPSE.ξ_LDxGNC_Doppler_Doppler","page":"LDxGNC TPCFs","title":"GaPSE.ξ_LDxGNC_Doppler_Doppler","text":"ξ_LDxGNC_Doppler_Doppler(s1, s2, y, cosmo::Cosmology; \n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, \n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,\n obs::Union{Bool, Symbol} = :noobsvel ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Doppler effect arising from the Luminosity Distance (LD) perturbations and the Doppler one arising from the Galaxy Number Counts (GNC).\n\nIt's computed through the symmetric function ξ_GNCxLD_Doppler_Doppler; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nInputs\n\ns1 and s2: comoving distances where the TPCF has to be calculated;\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nkwargs... : Keyword arguments to be passed to the symmetric TPCF\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_LDxGNC_multipole, print_map_ξ_LDxGNC_multipole, ξ_GNCxLD_Doppler_Doppler\n\n\n\n\n\n","category":"function"},{"location":"LDxGNC_Correlations_1/#GaPSE.ξ_LDxGNC_Lensing_Doppler","page":"LDxGNC TPCFs","title":"GaPSE.ξ_LDxGNC_Lensing_Doppler","text":"ξ_LDxGNC_Lensing_Doppler(s1, s2, y, cosmo::Cosmology; \n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, \n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,\n obs::Union{Bool, Symbol} = :noobsvel ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Lensing effect arising from the Luminosity Distance (LD) perturbations and the Doppler one arising from the Galaxy Number Counts (GNC).\n\nIt's computed through the symmetric function ξ_GNCxLD_Doppler_Lensing; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nInputs\n\ns1 and s2: comoving distances where the TPCF has to be calculated;\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nkwargs... : Keyword arguments to be passed to the symmetric TPCF\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_LDxGNC_multipole, print_map_ξ_LDxGNC_multipole, ξ_GNCxLD_Doppler_Lensing\n\n\n\n\n\n","category":"function"},{"location":"LDxGNC_Correlations_1/#GaPSE.ξ_LDxGNC_LocalGP_Doppler","page":"LDxGNC TPCFs","title":"GaPSE.ξ_LDxGNC_LocalGP_Doppler","text":"ξ_LDxGNC_LocalGP_Doppler(s1, s2, y, cosmo::Cosmology; \n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, \n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,\n obs::Union{Bool, Symbol} = :noobsvel ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Local Gravitational Potential (GP) effect arising from the Luminosity Distance (LD) perturbations and the Doppler one arising from the Galaxy Number Counts (GNC).\n\nIt's computed through the symmetric function ξ_GNCxLD_Doppler_LocalGP; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nInputs\n\ns1 and s2: comoving distances where the TPCF has to be calculated;\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nkwargs... : Keyword arguments to be passed to the symmetric TPCF\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_LDxGNC_multipole, print_map_ξ_LDxGNC_multipole, ξ_GNCxLD_Doppler_LocalGP\n\n\n\n\n\n","category":"function"},{"location":"LDxGNC_Correlations_1/#GaPSE.ξ_LDxGNC_IntegratedGP_Doppler","page":"LDxGNC TPCFs","title":"GaPSE.ξ_LDxGNC_IntegratedGP_Doppler","text":"ξ_LDxGNC_IntegratedGP_Doppler(s1, s2, y, cosmo::Cosmology; \n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, \n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,\n obs::Union{Bool, Symbol} = :noobsvel ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Integrated Gravitational Potential (GP) effect arising from the Luminosity Distance (LD) perturbations and the Doppler one arising from the Galaxy Number Counts (GNC).\n\nIt's computed through the symmetric function ξ_GNCxLD_Doppler_IntegratedGP; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nInputs\n\ns1 and s2: comoving distances where the TPCF has to be calculated;\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nkwargs... : Keyword arguments to be passed to the symmetric TPCF\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_LDxGNC_multipole, print_map_ξ_LDxGNC_multipole, ξ_GNCxLD_Doppler_IntegratedGP\n\n\n\n\n\n","category":"function"},{"location":"LDxGNC_Correlations_1/#GaPSE.ξ_LDxGNC_Doppler_Lensing","page":"LDxGNC TPCFs","title":"GaPSE.ξ_LDxGNC_Doppler_Lensing","text":"ξ_LDxGNC_Doppler_Lensing(s1, s2, y, cosmo::Cosmology; \n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, \n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,\n obs::Union{Bool, Symbol} = :noobsvel ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Doppler effect arising from the Luminosity Distance (LD) perturbations and the Lensing one arising from the Galaxy Number Counts (GNC).\n\nIt's computed through the symmetric function ξ_GNCxLD_Lensing_Doppler; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nInputs\n\ns1 and s2: comoving distances where the TPCF has to be calculated;\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nkwargs... : Keyword arguments to be passed to the symmetric TPCF\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_LDxGNC_multipole, print_map_ξ_LDxGNC_multipole, ξ_GNCxLD_Lensing_Doppler\n\n\n\n\n\n","category":"function"},{"location":"LDxGNC_Correlations_1/#GaPSE.ξ_LDxGNC_Lensing_Lensing","page":"LDxGNC TPCFs","title":"GaPSE.ξ_LDxGNC_Lensing_Lensing","text":"ξ_LDxGNC_Lensing_Lensing(s1, s2, y, cosmo::Cosmology; \n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, \n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,\n obs::Union{Bool, Symbol} = :noobsvel ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Lensing effect arising from the Luminosity Distance (LD) perturbations and the Lensing one arising from the Galaxy Number Counts (GNC).\n\nIt's computed through the symmetric function ξ_GNCxLD_Lensing_Lensing; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nInputs\n\ns1 and s2: comoving distances where the TPCF has to be calculated;\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nkwargs... : Keyword arguments to be passed to the symmetric TPCF\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_LDxGNC_multipole, print_map_ξ_LDxGNC_multipole, ξ_GNCxLD_Lensing_Lensing\n\n\n\n\n\n","category":"function"},{"location":"LDxGNC_Correlations_1/#GaPSE.ξ_LDxGNC_LocalGP_Lensing","page":"LDxGNC TPCFs","title":"GaPSE.ξ_LDxGNC_LocalGP_Lensing","text":"ξ_LDxGNC_LocalGP_Lensing(s1, s2, y, cosmo::Cosmology; \n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, \n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,\n obs::Union{Bool, Symbol} = :noobsvel ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Local Gravitational Potential (GP) effect arising from the Luminosity Distance (LD) perturbations and the Lensing one arising from the Galaxy Number Counts (GNC).\n\nIt's computed through the symmetric function ξ_GNCxLD_Lensing_LocalGP; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nInputs\n\ns1 and s2: comoving distances where the TPCF has to be calculated;\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nkwargs... : Keyword arguments to be passed to the symmetric TPCF\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_LDxGNC_multipole, print_map_ξ_LDxGNC_multipole, ξ_GNCxLD_Lensing_LocalGP\n\n\n\n\n\n","category":"function"},{"location":"LDxGNC_Correlations_1/#GaPSE.ξ_LDxGNC_IntegratedGP_Lensing","page":"LDxGNC TPCFs","title":"GaPSE.ξ_LDxGNC_IntegratedGP_Lensing","text":"ξ_LDxGNC_IntegratedGP_Lensing(s1, s2, y, cosmo::Cosmology; \n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, \n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,\n obs::Union{Bool, Symbol} = :noobsvel ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Integrated Gravitational Potential (GP) effect arising from the Luminosity Distance (LD) perturbations and the Lensing one arising from the Galaxy Number Counts (GNC).\n\nIt's computed through the symmetric function ξ_GNCxLD_Lensing_IntegratedGP; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nInputs\n\ns1 and s2: comoving distances where the TPCF has to be calculated;\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nkwargs... : Keyword arguments to be passed to the symmetric TPCF\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_LDxGNC_multipole, print_map_ξ_LDxGNC_multipole, ξ_GNCxLD_Lensing_IntegratedGP\n\n\n\n\n\n","category":"function"},{"location":"LDxGNC_Correlations_1/#GaPSE.ξ_LDxGNC_Doppler_LocalGP","page":"LDxGNC TPCFs","title":"GaPSE.ξ_LDxGNC_Doppler_LocalGP","text":"ξ_LDxGNC_Doppler_LocalGP(s1, s2, y, cosmo::Cosmology; \n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, \n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,\n obs::Union{Bool, Symbol} = :noobsvel ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Doppler effect arising from the Luminosity Distance (LD) perturbations and Local Gravitational Potential (GP) one arising from the Galaxy Number Counts (GNC).\n\nIt's computed through the symmetric function ξ_GNCxLD_LocalGP_Doppler; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nInputs\n\ns1 and s2: comoving distances where the TPCF has to be calculated;\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nkwargs... : Keyword arguments to be passed to the symmetric TPCF\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_LDxGNC_multipole, print_map_ξ_LDxGNC_multipole, ξ_GNCxLD_LocalGP_Doppler\n\n\n\n\n\n","category":"function"},{"location":"LDxGNC_Correlations_1/#GaPSE.ξ_LDxGNC_Lensing_LocalGP","page":"LDxGNC TPCFs","title":"GaPSE.ξ_LDxGNC_Lensing_LocalGP","text":"ξ_LDxGNC_Lensing_LocalGP(s1, s2, y, cosmo::Cosmology; \n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, \n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,\n obs::Union{Bool, Symbol} = :noobsvel ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Lensing effect arising from the Luminosity Distance (LD) perturbations and Local Gravitational Potential (GP) one arising from the Galaxy Number Counts (GNC).\n\nIt's computed through the symmetric function ξ_GNCxLD_LocalGP_Lensing; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nInputs\n\ns1 and s2: comoving distances where the TPCF has to be calculated;\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nkwargs... : Keyword arguments to be passed to the symmetric TPCF\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_LDxGNC_multipole, print_map_ξ_LDxGNC_multipole, ξ_GNCxLD_LocalGP_Lensing\n\n\n\n\n\n","category":"function"},{"location":"LDxGNC_Correlations_1/#GaPSE.ξ_LDxGNC_LocalGP_LocalGP","page":"LDxGNC TPCFs","title":"GaPSE.ξ_LDxGNC_LocalGP_LocalGP","text":"ξ_LDxGNC_LocalGP_LocalGP(s1, s2, y, cosmo::Cosmology; \n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, \n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,\n obs::Union{Bool, Symbol} = :noobsvel ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Local Gravitational Potential (GP) effect arising from the Luminosity Distance (LD) perturbations and the Local GP one arising from the Galaxy Number Counts (GNC).\n\nIt's computed through the symmetric function ξ_GNCxLD_LocalGP_LocalGP; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nInputs\n\ns1 and s2: comoving distances where the TPCF has to be calculated;\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nkwargs... : Keyword arguments to be passed to the symmetric TPCF\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_LDxGNC_multipole, print_map_ξ_LDxGNC_multipole, ξ_GNCxLD_LocalGP_LocalGP\n\n\n\n\n\n","category":"function"},{"location":"LDxGNC_Correlations_1/#GaPSE.ξ_LDxGNC_IntegratedGP_LocalGP","page":"LDxGNC TPCFs","title":"GaPSE.ξ_LDxGNC_IntegratedGP_LocalGP","text":"ξ_LDxGNC_IntegratedGP_LocalGP(s1, s2, y, cosmo::Cosmology; \n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, \n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,\n obs::Union{Bool, Symbol} = :noobsvel ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Integrated Gravitational Potential (GP) effect arising from the Luminosity Distance (LD) perturbations and the Local GP one arising from the Galaxy Number Counts (GNC).\n\nIt's computed through the symmetric function ξ_GNCxLD_LocalGP_IntegratedGP; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nInputs\n\ns1 and s2: comoving distances where the TPCF has to be calculated;\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nkwargs... : Keyword arguments to be passed to the symmetric TPCF\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_LDxGNC_multipole, print_map_ξ_LDxGNC_multipole, ξ_GNCxLD_LocalGP_IntegratedGP\n\n\n\n\n\n","category":"function"},{"location":"LDxGNC_Correlations_1/#GaPSE.ξ_LDxGNC_Doppler_IntegratedGP","page":"LDxGNC TPCFs","title":"GaPSE.ξ_LDxGNC_Doppler_IntegratedGP","text":"ξ_LDxGNC_Doppler_IntegratedGP(s1, s2, y, cosmo::Cosmology; \n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, \n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,\n obs::Union{Bool, Symbol} = :noobsvel ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Doppler effect arising from the Luminosity Distance (LD) perturbations and Integrated Gravitational Potential (GP) one arising from the Galaxy Number Counts (GNC).\n\nIt's computed through the symmetric function ξ_GNCxLD_IntegratedGP_Doppler; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nInputs\n\ns1 and s2: comoving distances where the TPCF has to be calculated;\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nkwargs... : Keyword arguments to be passed to the symmetric TPCF\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_LDxGNC_multipole, print_map_ξ_LDxGNC_multipole, ξ_GNCxLD_IntegratedGP_Doppler\n\n\n\n\n\n","category":"function"},{"location":"LDxGNC_Correlations_1/#GaPSE.ξ_LDxGNC_Lensing_IntegratedGP","page":"LDxGNC TPCFs","title":"GaPSE.ξ_LDxGNC_Lensing_IntegratedGP","text":"ξ_LDxGNC_Lensing_IntegratedGP(s1, s2, y, cosmo::Cosmology; \n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, \n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,\n obs::Union{Bool, Symbol} = :noobsvel ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Lensing effect arising from the Luminosity Distance (LD) perturbations and Integrated Gravitational Potential (GP) one arising from the Galaxy Number Counts (GNC).\n\nIt's computed through the symmetric function ξ_GNCxLD_IntegratedGP_Lensing; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nInputs\n\ns1 and s2: comoving distances where the TPCF has to be calculated;\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nkwargs... : Keyword arguments to be passed to the symmetric TPCF\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_LDxGNC_multipole, print_map_ξ_LDxGNC_multipole, ξ_GNCxLD_IntegratedGP_Lensing\n\n\n\n\n\n","category":"function"},{"location":"LDxGNC_Correlations_1/#GaPSE.ξ_LDxGNC_LocalGP_IntegratedGP","page":"LDxGNC TPCFs","title":"GaPSE.ξ_LDxGNC_LocalGP_IntegratedGP","text":"ξ_LDxGNC_LocalGP_IntegratedGP(s1, s2, y, cosmo::Cosmology; \n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, \n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,\n obs::Union{Bool, Symbol} = :noobsvel ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Local Gravitational Potential (GP) effect arising from the Luminosity Distance (LD) perturbations and the Integrated GP one arising from the Galaxy Number Counts (GNC).\n\nIt's computed through the symmetric function ξ_GNCxLD_IntegratedGP_LocalGP; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nInputs\n\ns1 and s2: comoving distances where the TPCF has to be calculated;\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nkwargs... : Keyword arguments to be passed to the symmetric TPCF\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_LDxGNC_multipole, print_map_ξ_LDxGNC_multipole, ξ_GNCxLD_IntegratedGP_LocalGP\n\n\n\n\n\n","category":"function"},{"location":"LDxGNC_Correlations_1/#GaPSE.ξ_LDxGNC_IntegratedGP_IntegratedGP","page":"LDxGNC TPCFs","title":"GaPSE.ξ_LDxGNC_IntegratedGP_IntegratedGP","text":"ξ_LDxGNC_IntegratedGP_IntegratedGP(s1, s2, y, cosmo::Cosmology; \n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, \n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,\n obs::Union{Bool, Symbol} = :noobsvel ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Integrated Gravitational Potential (GP) effect arising from the Luminosity Distance (LD) perturbations and the Integrated GP one arising from the Galaxy Number Counts (GNC).\n\nIt's computed through the symmetric function ξ_GNCxLD_IntegratedGP_IntegratedGP; check its documentation for more details about the analytical expression and the keyword arguments. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nInputs\n\ns1 and s2: comoving distances where the TPCF has to be calculated;\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nkwargs... : Keyword arguments to be passed to the symmetric TPCF\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_LDxGNC_multipole, print_map_ξ_LDxGNC_multipole, ξ_GNCxLD_IntegratedGP_IntegratedGP\n\n\n\n\n\n","category":"function"},{"location":"BackgroundData/","page":"Background Data","title":"Background Data","text":"DocTestSetup = quote\n using GaPSE\nend","category":"page"},{"location":"BackgroundData/#Background-functions","page":"Background Data","title":"Background functions","text":"","category":"section"},{"location":"BackgroundData/","page":"Background Data","title":"Background Data","text":"GaPSE.f0\nGaPSE.D0 \nGaPSE.ℋ0 \nGaPSE.BackgroundData","category":"page"},{"location":"BackgroundData/#GaPSE.f0","page":"Background Data","title":"GaPSE.f0","text":"const f0 :: Float64\n\nLinear growth rate at present time. Its value is equal to:\n\n f_0 simeq 05126998572951\n\n\n\n\n\n","category":"constant"},{"location":"BackgroundData/#GaPSE.D0","page":"Background Data","title":"GaPSE.D0","text":"const D0 :: Float64\n\nLinear growth factor at present time. Its value is equal to:\n\n D_0 = 10\n\n\n\n\n\n","category":"constant"},{"location":"BackgroundData/#GaPSE.ℋ0","page":"Background Data","title":"GaPSE.ℋ0","text":"const ℋ0 :: Float64\n\nComoving Hubble constant at present time. Its value is, in natural system (where the speed of light c=1): mathcalH_0 simeq 3335641times10^-4 h_0^-1mathrmMpc\n\n\n\n\n\n","category":"constant"},{"location":"BackgroundData/#GaPSE.BackgroundData","page":"Background Data","title":"GaPSE.BackgroundData","text":"BackgroundData(\n z::Vector{Float64}\n conftime::Vector{Float64}\n comdist::Vector{Float64}\n angdist::Vector{Float64}\n lumdist::Vector{Float64}\n D::Vector{Float64}\n f::Vector{Float64}\n ℋ::Vector{Float64}\n ℋ_p::Vector{Float64})\n\nStruct that contains all the relevant cosmological information for future computations. The data are stored with increasing distance values (so the first ones are associated to z=0). It is internally used in Cosmology.\n\nArguments\n\nz::Vector{Float64} : redshifts (adimensionals).\nconftime::Vector{Float64} : conformal times, measured in [Mpc/h].\ncomdist::Vector{Float64} : comoving distances, measured in [Mpc/h].\nangdist::Vector{Float64} : angular diameter distances, measured in [Mpc/h].\nlumdist::Vector{Float64} : luminosity distances, measured in [Mpc/h].\nD::Vector{Float64} : linear growth factors, normalized to 1.0 at the present day (adimensional).\nf::Vector{Float64} : linear growth rates (adimensional).\nℋ::Vector{Float64} : comoving Hubble parameters, measured in [h/Mpc].\nℋ_p::Vector{Float64} : derivatives of the comoving Hubble parameter wrt the conformal time. It is here manually computed with the Dierckx function derivative.\n\nConstructors\n\nBackgroundData(file::String, z_spline_lim; names = NAMES_BACKGROUND, h = 0.7)\n\nfile::string : input file where the data are stored; it is expected that such file is a background output of the CLASS program (link: https://github.com/lesgourg/class_public)\nz_spline_lim : the maximum redhsift we are interested in our analysis. The constructor will store the data necessary for a study only in 0 < z < z_spline_lim, for optimisation purposes.\nnames = NAMES_BACKGROUND : the column names of the file. If the colum order change from the default one NAMES_BACKGROUND, you must set as input the vector of string with the correct one, with the SAME names. They are, with the default order:\nz , proper time [Gyr] , conf. time [Mpc] , H [1/Mpc] , comov. dist. , ang.diam.dist. , lum. dist. , comov.snd.hrz. , (.)rho_g , (.)rho_b , (.)rho_cdm , (.)rho_lambda , (.)rho_ur , (.)rho_crit , gr.fac. D , gr.fac. f ,\nh = 0.7 : the adimensional hubble constant. By default, CLASS background data are measured with it numerically expressed (so distances are measured in Mpc, for example), while this code works with h in the unit of measure (so distances are measured in Mpc/h, for example). Change this value to 1.0 if the input data do not have this issue, or to your value of interest (0.67, 0.5, ...).\n\nSee also: CosmoParams, Cosmology\n\n\n\n\n\n","category":"type"},{"location":"CosmoUtils/","page":"Cosmology Utilities","title":"Cosmology Utilities","text":"DocTestSetup = quote\n using GaPSE\nend","category":"page"},{"location":"CosmoUtils/#The-Cosmology-Utilities","page":"Cosmology Utilities","title":"The Cosmology Utilities","text":"","category":"section"},{"location":"CosmoUtils/","page":"Cosmology Utilities","title":"Cosmology Utilities","text":"GaPSE.func_z_eff\nGaPSE.s\nGaPSE.μ\nGaPSE.s2\nGaPSE.y\nGaPSE.ϕ\nGaPSE.W\nGaPSE.V_survey\nGaPSE.A\nGaPSE.A_prime\nGaPSE.corresponding_redshift","category":"page"},{"location":"CosmoUtils/#GaPSE.func_z_eff","page":"Cosmology Utilities","title":"GaPSE.func_z_eff","text":"func_z_eff(s_min, s_max, z_of_s) ::Float64\n\nGiven:\n\nthe input comoving distances s_min and s_max\nthe spline z_of_s that for an input comoving distance s return the associated redshift z(s),\n\nthis function return the effective redshift z_mathrmeff, computed as follows:\n\nbeginsplit\nz_mathrmeff = \nfrac\n int mathrmd^3mathbfs phi^2(mathbfs) z(s)\n \n int mathrmd^3mathbfs phi^2(mathbfs) \n = frac\n int_0^infty mathrmds s^2 phi^2(s) z(s) times\n int_4pimathrmd^2hatmathbfs W^2(hatmathbfs)\n \n int_0^infty mathrmds s^2 phi^2(s)times\n int_4pimathrmd^2hatmathbfs W^2(hatmathbfs)\n 5pt\n = frac\n int_0^infty mathrmds s^2 phi^2(s) z(s)\n \n int_0^infty mathrmds s^2 phi^2(s)\n 4pt\n = frac3s_mathrmmax^3 - s_mathrmmin^3 \n int_s_mathrmmin^s_mathrmmax mathrmds s^2 z(s) \nendsplit\n\nWe have used our assuption concerning the separability of the window function of the survey phi(mathbfs) into a radial and angular part, respectively phi(s) and W(mathbfhats):\n\n phi(mathbfs) = phi(s) W(mathbfhats) \n\nWe remember that all the distances are measured in h_0^-1mathrmMpc. The final integration over mathrmds is performed through the function quadgk of the QuadGK.jl Julia package.\n\nSee also: ϕ, W\n\n\n\n\n\n","category":"function"},{"location":"CosmoUtils/#GaPSE.s","page":"Cosmology Utilities","title":"GaPSE.s","text":"s(s1, s2, y) ::Float64\n\nReturn the value s = s(s_1 s_2 y) = sqrts_1^2 + s_2^2 - 2 s_1 s_2 y\n\nSee also: μ, s2, y\n\n\n\n\n\n","category":"function"},{"location":"CosmoUtils/#GaPSE.μ","page":"Cosmology Utilities","title":"GaPSE.μ","text":"μ(s1, s2, y) ::Float64\n\nReturn the cosine mu=hatmathbfs_1cdothatmathbfs of the angle between the comoving distances mathbfs_1 and mathbfs = mathbfs_2 - mathbfs_1. It can be easily shown that:\n\nmu = mu(s_1 s_2 y) = fracy s_2 - s_1s(s_1 s_2 y) \nquad s = s(s_1 s_2 y) = sqrts_1^2 + s^2 - 2 s_1 s_2 y\n\nwith y=costheta=hatmathbfs_1cdothatmathbfs_2 and where s is obtained from the function s. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nSee also: s, s2, y\n\n\n\n\n\n","category":"function"},{"location":"CosmoUtils/#GaPSE.s2","page":"Cosmology Utilities","title":"GaPSE.s2","text":"s2(s1, s, μ) ::Float64\n\nReturn the value s_2 = sqrts_1^2 + s^2 + 2 s_1 s mu\n\nSee also: s, μ, y\n\n\n\n\n\n","category":"function"},{"location":"CosmoUtils/#GaPSE.y","page":"Cosmology Utilities","title":"GaPSE.y","text":"y(s1, s, y) ::Float64\n\nReturn the cosine y=costheta=hatmathbfs_1cdothatmathbfs_2 of the angle between the comoving distances mathbfs_1 and mathbfs_2 = mathbfs_1 + mathbfs. It can be easily shown that:\n\ny = y(s_1 s mu) = fracmu s + s_1s_2(s_1 s mu) \nquad s_2 = s_2(s_1 s mu) = sqrts_1^2 + s^2 + 2 s_1 s mu\n\nwith mu=hatmathbfs_1cdothatmathbfs and where s_2 is obtained from the function s2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nSee also: s, s2, μ\n\n\n\n\n\n","category":"function"},{"location":"CosmoUtils/#GaPSE.ϕ","page":"Cosmology Utilities","title":"GaPSE.ϕ","text":"ϕ(s, s_min, s_max) ::Float64\n\nRadial part of the survey window function. Return 1.0 if is true that s_mathrmmin s s_mathrmmax and 0.0 otherwise.\n\nIn this software we made the assuption that the survey window function can be separated into a radial and angular part, i.e.:\n\n phi(mathbfs) = phi(s) W(mathbfhats)\n\nSee also: W\n\n\n\n\n\n","category":"function"},{"location":"CosmoUtils/#GaPSE.W","page":"Cosmology Utilities","title":"GaPSE.W","text":"W(θ, θ_max) ::Float64\n\nAngular part of the survey window function. Return 1.0 if is true that 0 leq theta theta_mathrmmax and 0.0 otherwise. It is implicitly assumed an azimutal simmetry of the survey.\n\nIn this software we made the assuption that the survey window function can be separated into a radial and angular part, i.e.:\n\n phi(mathbfs) = phi(s) W(mathbfhats)\n\nSee also: ϕ\n\n\n\n\n\n","category":"function"},{"location":"CosmoUtils/#GaPSE.V_survey","page":"Cosmology Utilities","title":"GaPSE.V_survey","text":"V_survey(s_min, s_max, θ_max) ::Float64\n\nReturn the volume of a survey with azimutal simmetry, i.e.:\n\nbeginsplit\n V(s_mathrmmax s_mathrmmin theta_mathrmmax) = C_mathrmup - C_mathrmdown + TC \n C_mathrmup = fracpi3 s_mathrmmax^3 \n (1 - costheta_mathrmmax)^2 (2 + costheta_mathrmmax) \n C_mathrmdown = fracpi3 s_mathrmmin^3 \n (1 - costheta_mathrmmax)^2 (2 + costheta_mathrmmax) \n TC = fracpi3 (s_mathrmmax^2 + s_mathrmmin^2 + \n s_mathrmmax s_mathrmmin) (s_mathrmmax - s_mathrmmin) \n costheta_mathrmmax sin^2theta_mathrmmax\nendsplit\n\n\n\n\n\n","category":"function"},{"location":"CosmoUtils/#GaPSE.A","page":"Cosmology Utilities","title":"GaPSE.A","text":"A(s_min, s_max, θ_max) ::Float64\n\nReturn the Power Spectrum multipole normalization coefficient A, i.e.:\n\n A(s_mathrmmax s_mathrmmin theta_mathrmmax)= \n frac\n V(s_mathrmmax s_mathrmmin theta_mathrmmax)\n 4 pi^2\n\nwhere V(s_mathrmmax s_mathrmmin theta_mathrmmax) is the survey volume.\n\nPay attention: this is NOT used for the normalization of InputPS, see instead A_prime\n\nSee also: V_survey\n\n\n\n\n\n","category":"function"},{"location":"CosmoUtils/#GaPSE.A_prime","page":"Cosmology Utilities","title":"GaPSE.A_prime","text":"A_prime :: Float64\n\nIt's the Power Spectrum multipole normalization coefficient A^, i.e.:\n\n A^ = frac3 A (s_mathrmmax^3 - s_mathrmmin^3) = \n frac14pi\n\nSee also: A, V_survey\n\n\n\n\n\n","category":"constant"},{"location":"CosmoUtils/#GaPSE.corresponding_redshift","page":"Cosmology Utilities","title":"GaPSE.corresponding_redshift","text":"corresponding_redshift(z, m, file_data::String; names_bg=NAMES_BACKGROUND, h_0=0.7, Z_MAX = 1e3)\n\nFor a given file_data containing the csomological background quantities (that will be managed by the struct BackgroundData), return the redshift corresponding (for that cosmology) to the comoving distance equals to m * s(z), where z is the input redshift and m a coeffient.\n\nEssentially, in a sketch:\n\nInput z, m -> Computes s1 = s(z) -> Computes s2 = m * s1 -> Return z2 = z(s2)\n\nThis function is not efficient, it should be used only in order to have a rough estimation for the maximum sampling value of the Integrated Window Function.\n\nOptional arguments\n\nnames = NAMES_BACKGROUND : the column names of the file_data. If the colum order change from the default one NAMES_BACKGROUND, you must set as input the vector of string with the correct one, with the SAME names. They are, with the default order:\n[\"z\", \"proper time [Gyr]\", \"conf. time [Mpc]\", \"H [1/Mpc]\", \"comov. dist.\", \"ang.diam.dist.\", \"lum. dist.\", \"comov.snd.hrz.\", \"(.)rhog\", \"(.)rhob\", \"(.)rhocdm\", \"(.)rholambda\", \"(.)rhour\", \"(.)rhocrit\", \"gr.fac. D\", \"gr.fac. f\"]\nh = 0.7 : the adimensional hubble constant. By default, CLASS background data are measured with it numerically expressed (so distances are measured in Mpc, for example), while this code works with h in the unit of measure (so distances are measured in Mpc/h, for example). Change this value to 1.0 if the input data do not have this issue, or to your value of interest (0.67, 0.5, ...).\nZ_MAX = 1e3 : maximum redshift to consider for BackgroundData; it should be high.\n\nSee also: BackgroundData, WindowFIntegrated\n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations_2/","page":"GNCxLD TPCFs","title":"GNCxLD TPCFs","text":"DocTestSetup = quote\n using GaPSE\nend","category":"page"},{"location":"GNCxLD_Correlations_2/#GNCxLD-TPCFs","page":"GNCxLD TPCFs","title":"GNCxLD TPCFs","text":"","category":"section"},{"location":"GNCxLD_Correlations_2/#Two-Point-Cross-Correlation-Functions-integrands","page":"GNCxLD TPCFs","title":"Two-Point Cross-Correlation Functions integrands","text":"","category":"section"},{"location":"GNCxLD_Correlations_2/","page":"GNCxLD TPCFs","title":"GNCxLD TPCFs","text":"GaPSE.integrand_ξ_GNCxLD_IntegratedGP_Lensing\nGaPSE.integrand_ξ_GNCxLD_IntegratedGP_IntegratedGP\nGaPSE.integrand_ξ_GNCxLD_LocalGP_IntegratedGP\nGaPSE.integrand_ξ_GNCxLD_IntegratedGP_Doppler\nGaPSE.integrand_ξ_GNCxLD_Newtonian_Lensing\nGaPSE.integrand_ξ_GNCxLD_Lensing_IntegratedGP\nGaPSE.integrand_ξ_GNCxLD_Doppler_IntegratedGP\nGaPSE.integrand_ξ_GNCxLD_IntegratedGP_LocalGP\nGaPSE.integrand_ξ_GNCxLD_LocalGP_Lensing\nGaPSE.integrand_ξ_GNCxLD_Doppler_Lensing\nGaPSE.integrand_ξ_GNCxLD_Lensing_Lensing\nGaPSE.integrand_ξ_GNCxLD_Lensing_Doppler\nGaPSE.integrand_ξ_GNCxLD_Newtonian_IntegratedGP\nGaPSE.integrand_ξ_GNCxLD_Lensing_LocalGP","category":"page"},{"location":"GNCxLD_Correlations_2/#GaPSE.integrand_ξ_GNCxLD_IntegratedGP_Lensing","page":"GNCxLD TPCFs","title":"GaPSE.integrand_ξ_GNCxLD_IntegratedGP_Lensing","text":"integrand_ξ_GNCxLD_IntegratedGP_Lensing(\n\tIP1::Point, IP2::Point, P1::Point, P2::Point, y, cosmo::Cosmology; \n\tb1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing,\n\t𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing ) ::Float64\n\nintegrand_ξ_GNCxLD_IntegratedGP_Lensing(\n\tχ1::Float64, χ2::Float64, s1::Float64, s2::Float64, \n\ty, cosmo::Cosmology; kwargs... ) ::Float64\n\nReturn the integrand of the Two-Point Correlation Function (TPCF) given by the cross correlation between the Integrated Gravitational Potential (GP) effect arising from the Galaxy Number Counts (GNC) and the Lensing one arising from the Luminosity Distance (LD) perturbations.\n\nIn the first method, you should pass the two extreme Points (P1 and P2) and the two intermediate integrand Points (IP1 and IP2) where to evaluate the function. In the second method (that internally recalls the first), you must provide the three corresponding comoving distances s1, s2, χ1, χ2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this integrand is the following:\n\nbeginsplit\n f^intphi kappa (chi_1 chi_2 s_1 s_2 y ) = \n mathfrakJ_alpha^intphi kappa \n left \n mathfrakJ_31^intphi kappa I_1^3 ( Delta chi ) +\n mathfrakJ_22^intphi kappa I_2^2 ( Delta chi ) \n right \nendsplit\n\nwith\n\nbeginsplit\n mathfrakJ_alpha^intphi kappa =\n - frac\n 9 chi_1 mathcalH_0^4 Omega_mathrmM0^2 D(chi_1) D(chi_2) \n \n a(chi_1) a(chi_2) s_1 s_2\n \n (chi_2 - s_2)\n left\n mathcalH(chi_1) mathcalR_1 s_1 (f(chi_1) - 1) - 5 s_mathrmb 1 + 2\n right\n \n \n mathfrakJ_31^intphi kappa = y Deltachi^2\n \n \n mathfrakJ_22^intphi kappa = \n frac12 (y^2 - 1) chi_1 chi_2 \n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nmathfrakR_1 = mathfrakR(s_1), ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathfrakR(s) = 1 - frac1mathcalH(s) s \nb_1, s_mathrmb 1, mathitf_mathrmevo 1 (and b_2, s_mathrmb 2, mathitf_mathrmevo 2) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nThis function is used inside ξ_GNCxLD_IntegratedGP_Lensing with the trapz() from the Trapz Julia package.\n\nInputs\n\nIP1::Point, IP2::Point, P1::Point, P2::Point or χ1,χ2,s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nb1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:\nif not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;\nif you set one or more values, they will override the cosmo ones in this computation;\nthe two sets of values should be different only if you are interested in studing two galaxy species;\nonly the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities. \ns_lim=nothing : parameter used in order to avoid the divergence of the mathcalR and mathfrakR denominators: when 0 leq s leq s_mathrmlim the returned values are\nforall s in 0 s_mathrmlim quad \n mathfrakR(s) = 1 - frac1mathcalH_0 s_mathrmlim quad\n mathcalR(s) = 5 s_mathrmb + \n frac2 - 5 s_mathrmbmathcalH_0 s_mathrmlim + \n fracdotmathcalHmathcalH_0^2 - mathitf_mathrmevo \nIf nothing, the fault value stored in cosmo will be considered.\n\nSee also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole\n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations_2/#GaPSE.integrand_ξ_GNCxLD_IntegratedGP_IntegratedGP","page":"GNCxLD TPCFs","title":"GaPSE.integrand_ξ_GNCxLD_IntegratedGP_IntegratedGP","text":"integrand_ξ_GNCxLD_IntegratedGP_IntegratedGP(IP1::Point, IP2::Point,\n P1::Point, P2::Point, y, cosmo::Cosmology;\n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing,\n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing ) ::Float64\n\nintegrand_ξ_GNCxLD_IntegratedGP_IntegratedGP(\n χ1::Float64, χ2::Float64, s1::Float64, s2::Float64, \n y, cosmo::Cosmology; kwargs... ) ::Float64\n\nReturn the integrand of the Two-Point Correlation Function (TPCF) given by the cross correlation between the Integrated Gravitational Potential (GP) effect arising from the Galaxy Number Counts (GNC) and the Integrated GP one arising from the Luminosity Distance (LD) perturbations.\n\nIn the first method, you should pass the two extreme Points (P1 and P2) and the two intermediate integrand Points (IP1 and IP2) where to evaluate the function. In the second method (that internally recalls the first), you must provide the three corresponding comoving distances s1, s2, χ1, χ2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this integrand is the following:\n\nbeginsplit\n f^intphi int phi (chi_1 chi_2 s_1 s_2 y ) = \n mathfrakJ^int phi int phi_40 \n tildeI_0^4 ( Deltachi) \nendsplit\n\nwith\n\nbeginsplit\n mathfrakJ^int phiint phi_40 =\n - frac\n 9 Deltachi ^4 mathcalH_0^4 Omega_mathrmM0^2 D(chi_1) D(chi_2)\n \n a(chi_1) a(chi_2) s_1 s_2\n \n left\n s_1 (f(chi_1) - 1) mathcalH(chi_1) mathcalR_1 - 5 s_mathrmb 1 + 2\n right times\n nonumber \n left\n s_2 (f(chi_2) - 1) mathcalH(chi_2) mathfrakR_2 - 1\n right\n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nmathfrakR_1 = mathfrakR(s_1), ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathfrakR(s) = 1 - frac1mathcalH(s) s \nb_1, s_mathrmb 1, mathitf_mathrmevo 1 (and b_2, s_mathrmb 2, mathitf_mathrmevo 2) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nThis function is used inside ξ_GNCxLD_IntegratedGP_IntegratedGP with the trapz() from the Trapz Julia package.\n\nInputs\n\nIP1::Point, IP2::Point, P1::Point, P2::Point or χ1,χ2,s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nb1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:\nif not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;\nif you set one or more values, they will override the cosmo ones in this computation;\nthe two sets of values should be different only if you are interested in studing two galaxy species;\nonly the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities. \ns_lim=nothing : parameter used in order to avoid the divergence of the mathcalR and mathfrakR denominators: when 0 leq s leq s_mathrmlim the returned values are\nforall s in 0 s_mathrmlim quad \n mathfrakR(s) = 1 - frac1mathcalH_0 s_mathrmlim quad\n mathcalR(s) = 5 s_mathrmb + \n frac2 - 5 s_mathrmbmathcalH_0 s_mathrmlim + \n fracdotmathcalHmathcalH_0^2 - mathitf_mathrmevo \nIf nothing, the fault value stored in cosmo will be considered.\n\nSee also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole\n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations_2/#GaPSE.integrand_ξ_GNCxLD_LocalGP_IntegratedGP","page":"GNCxLD TPCFs","title":"GaPSE.integrand_ξ_GNCxLD_LocalGP_IntegratedGP","text":"integrand_ξ_GNCxLD_LocalGP_IntegratedGP(\n\tIP::Point, P1::Point, P2::Point, y, cosmo::Cosmology;\n\tb1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing,\n\t𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing ) ::Float64\n\nintegrand_ξ_GNCxLD_LocalGP_IntegratedGP(\n\tχ2::Float64, s1::Float64, s2::Float64,\n\ty, cosmo::Cosmology; kwargs... ) ::Float64\n\nReturn the integrand of the Two-Point Correlation Function (TPCF) given by the cross correlation between the Local Gravitational Potential (GP) effect arising from the Galaxy Number Counts (GNC) and the Integrated GP one arising from the Luminosity Distance (LD) perturbations.\n\nIn the first method, you should pass the two extreme Points (P1 and P2) and the intermediate integrand Point (IP) where to evaluate the function. In the second method (that internally recalls the first), you must provide the three corresponding comoving distances s1, s2, χ2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this integrand is the following:\n\nbeginsplit\n f^phi intphi (chi_2 s_1 s_2 y ) = \n D_1 \n mathfrakJ^phi intphi_40 I_0^4 ( Deltachi_2 ) \n \nendsplit\n\nwith\n\nbeginsplit\n mathfrakJ^phi intphi_40 =\n - frac\n 3 Deltachi_2^4 mathcalH_0^2 Omega_mathrmM0 D(chi_2) \n \n 2 s_2 a(chi_2) a_1\n left\n s_2 mathcalH(chi_2) mathfrakR_2 ( f(chi_2) - 1 ) - 1\n right \n times\n qquadqquadqquad\n left\n 2 a_1 f_1 mathcalH_1^2 (mathitf_mathrmevo 1 - 3) +\n 3 mathcalH_0^2 Omega_mathrmM0 (f_1 + mathcalR_1 + 5 s_mathrmb 1 - 2)\n right\n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nmathfrakR_1 = mathfrakR(s_1), ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathfrakR(s) = 1 - frac1mathcalH(s) s \nb_1, s_mathrmb 1, mathitf_mathrmevo 1 (and b_2, s_mathrmb 2, mathitf_mathrmevo 2) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nThis function is used inside ξ_GNCxLD_LocalGP_IntegratedGP with the trapz() from the Trapz Julia package.\n\nInputs\n\nIP::Point, P1::Point, P2::Point or χ2,s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nb1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:\nif not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;\nif you set one or more values, they will override the cosmo ones in this computation;\nthe two sets of values should be different only if you are interested in studing two galaxy species;\nonly the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities. \ns_lim=nothing : parameter used in order to avoid the divergence of the mathcalR and mathfrakR denominators: when 0 leq s leq s_mathrmlim the returned values are\nforall s in 0 s_mathrmlim quad \n mathfrakR(s) = 1 - frac1mathcalH_0 s_mathrmlim quad\n mathcalR(s) = 5 s_mathrmb + \n frac2 - 5 s_mathrmbmathcalH_0 s_mathrmlim + \n fracdotmathcalHmathcalH_0^2 - mathitf_mathrmevo \nIf nothing, the fault value stored in cosmo will be considered.\n\nSee also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole\n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations_2/#GaPSE.integrand_ξ_GNCxLD_IntegratedGP_Doppler","page":"GNCxLD TPCFs","title":"GaPSE.integrand_ξ_GNCxLD_IntegratedGP_Doppler","text":"integrand_ξ_GNCxLD_IntegratedGP_Doppler(\n\tIP::Point, P1::Point, P2::Point, y, cosmo::Cosmology;\n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing,\n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing ) ::Float64\n\nintegrand_ξ_GNCxLD_IntegratedGP_Doppler(\n χ1::Float64, s1::Float64, s2::Float64,\n y, cosmo::Cosmology; kwargs... ) ::Float64\n\nReturn the integrand of the Two-Point Correlation Function (TPCF) given by the cross correlation between the Integrated Gravitational Potential (GP) effect arising from the Galaxy Number Counts (GNC) and the Doppler one arising from the Luminosity Distance (LD) perturbations.\n\nIn the first method, you should pass the two extreme Points (P1 and P2) and the intermediate integrand Point (IP) where to evaluate the function. In the second method (that internally recalls the first), you must provide the three corresponding comoving distances s1, s2, χ2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this integrand is the following:\n\nbeginsplit\n f^intphi v_parallel (chi_1 s_1 s_2 y) =\n D_2 mathfrakJ^intphi v_parallel_31 I_1^3(Deltachi_1) \nendsplit\n\nwith\n\nbeginsplit\n mathfrakJ^intphi v_parallel_31 =\n - 3 f_2 mathcalH_2 mathfrakR_2 mathcalH_0^2 Omega_mathrmM0\n frac\n D(chi_1)(s_2 - chi_1 y)\n \n a(chi_1) s_1\n Deltachi_1^2 left\n s_1 mathcalR_1 mathcalH(chi_1)(f_1 - 1) - 5 s_mathrmb 1 + 2\n right \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nmathfrakR_1 = mathfrakR(s_1), ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathfrakR(s) = 1 - frac1mathcalH(s) s \nb_1, s_mathrmb 1, mathitf_mathrmevo 1 (and b_2, s_mathrmb 2, mathitf_mathrmevo 2) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nThis function is used inside ξ_GNCxLD_IntegratedGP_Doppler with the trapz() from the Trapz Julia package.\n\nInputs\n\nIP::Point, P1::Point, P2::Point or χ1,s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nb1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:\nif not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;\nif you set one or more values, they will override the cosmo ones in this computation;\nthe two sets of values should be different only if you are interested in studing two galaxy species;\nonly the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities. \ns_lim=nothing : parameter used in order to avoid the divergence of the mathcalR and mathfrakR denominators: when 0 leq s leq s_mathrmlim the returned values are\nforall s in 0 s_mathrmlim quad \n mathfrakR(s) = 1 - frac1mathcalH_0 s_mathrmlim quad\n mathcalR(s) = 5 s_mathrmb + \n frac2 - 5 s_mathrmbmathcalH_0 s_mathrmlim + \n fracdotmathcalHmathcalH_0^2 - mathitf_mathrmevo \nIf nothing, the fault value stored in cosmo will be considered.\n\nSee also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole\n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations_2/#GaPSE.integrand_ξ_GNCxLD_Newtonian_Lensing","page":"GNCxLD TPCFs","title":"GaPSE.integrand_ξ_GNCxLD_Newtonian_Lensing","text":"integrand_ξ_GNCxLD_Newtonian_Lensing(\n IP::Point, P1::Point, P2::Point, y, cosmo::Cosmology;\n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing,\n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing ) ::Float64\n\nintegrand_ξ_GNCxLD_Newtonian_Lensing(\n χ2::Float64, s1::Float64, s2::Float64,\n y, cosmo::Cosmology; kwargs... ) ::Float64\n\nReturn the integrand of the Two-Point Correlation Function (TPCF) given by the cross correlation between the Newtonian effect arising from the Galaxy Number Counts (GNC) and the Lensing one arising from the Luminosity Distance (LD) perturbations.\n\nIn the first method, you should pass the two extreme Points (P1 and P2) and the intermediate integrand Point (IP) where to evaluate the function. In the second method (that internally recalls the first), you must provide the three corresponding comoving distances s1, s2, χ2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this integrand is the following:\n\nbeginsplit\n f^delta kappa (chi_2 s_1 s_2 y ) =\n D_1 \n mathfrakJ^delta kappa_alpha\n left \n mathfrakJ^delta kappa_00 I_0^0 ( Deltachi_2 ) + \n mathfrakJ^delta kappa_02 I_2^0 ( Delta chi_2 ) + \n mathfrakJ^delta kappa_00 I_4^0 ( Delta chi_2 ) \n right \nendsplit\n\nwith\n\nbeginsplit\n mathfrakJ^delta kappa_alpha =\n - frac\n mathcalH_0 ^2 Omega_mathrmM0 D(chi_2)\n \n a(chi_2 ) s_2\n \n (chi_2 - s_2 )\n \n \n mathfrakJ^delta kappa_00 =\n frac15\n left\n (3 y^2 - 1) chi_2 f_1 - y s_1(3 f_1 + 5 b_1) \n right \n \n \n mathfrakJ^delta kappa_02 =\n frac114 Deltachi_2^2 \n left\n 4 f_1 (3 y^2 - 1) chi_2^3 - \n 2 y \n left\n (3 y^2 + 8) f_1 + 7 b_1\n right s_1 chi_2^2 +\n right nonumber \n leftqquad qquadqquad\n left\n (9 y^2 + 11) f_1 - 7 (y^2 + 3) b_1\n right s_1^2 chi_2 -\n 2 y left7 b_1 + 3 f_1 right s_1^3\n right \n \n \n mathfrakJ^delta kappa_04 =\n fracf_170 Deltachi_2^4 \n left\n (6 y^2 - 2) chi_2^5 +\n 6 y (y^2 - 3) s_1 chi_2^4 -\n (y^4 + 12 y^2 - 21) s_1^2 chi_2^3 +\n rightnonumber \n leftqquadqquadqquad\n 2 y (y^2 + 3) s_1^3 chi_2^2 -\n 12 chi_2 s_1^4 + \n 4 y s_1 ^5\n right \n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nmathfrakR_1 = mathfrakR(s_1), ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathfrakR(s) = 1 - frac1mathcalH(s) s \nb_1, s_mathrmb 1, mathitf_mathrmevo 1 (and b_2, s_mathrmb 2, mathitf_mathrmevo 2) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nThis function is used inside ξ_GNCxLD_Newtonian_Lensing with the trapz() from the Trapz Julia package.\n\nInputs\n\nIP::Point, P1::Point, P2::Point or χ2,s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nb1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:\nif not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;\nif you set one or more values, they will override the cosmo ones in this computation;\nthe two sets of values should be different only if you are interested in studing two galaxy species;\nonly the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities. \ns_lim=nothing : parameter used in order to avoid the divergence of the mathcalR and mathfrakR denominators: when 0 leq s leq s_mathrmlim the returned values are\nforall s in 0 s_mathrmlim quad \n mathfrakR(s) = 1 - frac1mathcalH_0 s_mathrmlim quad\n mathcalR(s) = 5 s_mathrmb + \n frac2 - 5 s_mathrmbmathcalH_0 s_mathrmlim + \n fracdotmathcalHmathcalH_0^2 - mathitf_mathrmevo \nIf nothing, the fault value stored in cosmo will be considered.\n\nSee also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole\n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations_2/#GaPSE.integrand_ξ_GNCxLD_Lensing_IntegratedGP","page":"GNCxLD TPCFs","title":"GaPSE.integrand_ξ_GNCxLD_Lensing_IntegratedGP","text":"integrand_ξ_GNCxLD_Lensing_IntegratedGP(\n IP1::Point, IP2::Point, P1::Point, P2::Point, y, cosmo::Cosmology;\n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing,\n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing ) ::Float64\n\nintegrand_ξ_GNCxLD_Lensing_IntegratedGP(\n χ1::Float64, χ2::Float64,\n s1::Float64, s2::Float64,\n y, cosmo::Cosmology;\n kwargs... ) ::Float64\n\nReturn the integrand of the Two-Point Correlation Function (TPCF) given by the cross correlation between the Lensing effect arising from the Galaxy Number Counts (GNC) and the Integrated Gravitational Potential (GP) one arising from the Luminosity Distance (LD) perturbations.\n\nIn the first method, you should pass the two extreme Points (P1 and P2) and the two intermediate integrand Points (IP1 and IP2) where to evaluate the function. In the second method (that internally recalls the first), you must provide the three corresponding comoving distances s1, s2, χ1, χ2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this integrand is the following:\n\nbeginsplit\n f^kappaintphi (chi_1 chi_2 s_1 s_2 y) = \n mathfrakJ^kappaintphi_alpha\n left \n mathfrakJ^kappaintphi_31 I_1^3(Deltachi) + \n mathfrakJ^kappaintphi_22 I_2^2(Deltachi) \n right \nendsplit\n\nwith\n\nbeginsplit\n mathfrakJ^kappaintphi_alpha =\n frac92 mathcalH_0^4 Omega_mathrmM0^2 \n frac\n D(chi_1) D(chi_2) chi_2 (s_1 - chi_1)\n \n s_1 s_2 a(chi_1) a(chi_2)\n (5 s_mathrmb 1 - 2 )\n left\n s_2 mathfrakR_2 mathcalH(chi_2) (f(chi_2) - 1) - 1\n right\n \n \n mathfrakJ^kappaintphi_31 = -2 y Deltachi^2\n \n \n mathfrakJ^kappaintphi_22 = chi_1 chi_2(1 - y^2) \n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nmathfrakR_1 = mathfrakR(s_1), ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathfrakR(s) = 1 - frac1mathcalH(s) s \nb_1, s_mathrmb 1, mathitf_mathrmevo 1 (and b_2, s_mathrmb 2, mathitf_mathrmevo 2) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nThis function is used inside ξ_GNCxLD_Lensing_IntegratedGP with the trapz() from the Trapz Julia package.\n\nInputs\n\nIP1::Point, IP2::Point, P1::Point, P2::Point or χ1,χ2,s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nb1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:\nif not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;\nif you set one or more values, they will override the cosmo ones in this computation;\nthe two sets of values should be different only if you are interested in studing two galaxy species;\nonly the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities. \ns_lim=nothing : parameter used in order to avoid the divergence of the mathcalR and mathfrakR denominators: when 0 leq s leq s_mathrmlim the returned values are\nforall s in 0 s_mathrmlim quad \n mathfrakR(s) = 1 - frac1mathcalH_0 s_mathrmlim quad\n mathcalR(s) = 5 s_mathrmb + \n frac2 - 5 s_mathrmbmathcalH_0 s_mathrmlim + \n fracdotmathcalHmathcalH_0^2 - mathitf_mathrmevo \nIf nothing, the fault value stored in cosmo will be considered.\n\nSee also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole\n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations_2/#GaPSE.integrand_ξ_GNCxLD_Doppler_IntegratedGP","page":"GNCxLD TPCFs","title":"GaPSE.integrand_ξ_GNCxLD_Doppler_IntegratedGP","text":"integrand_ξ_GNCxLD_Doppler_IntegratedGP(\n IP::Point, P1::Point, P2::Point, y, cosmo::Cosmology; \n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing,\n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing ) ::Float64\n\nintegrand_ξ_GNCxLD_Doppler_IntegratedGP(\n χ2::Float64, s1::Float64, s2::Float64,\n y, cosmo::Cosmology; kwargs... ) ::Float64\n\nReturn the integrand of the Two-Point Correlation Function (TPCF) given by the cross correlation between the Doppler effect arising from the Galaxy Number Counts (GNC) and the Integrated Gravitational Potential (GP) one arising from the Luminosity Distance (LD) perturbations.\n\nIn the first method, you should pass the two extreme Points (P1 and P2) and the intermediate integrand Point (IP) where to evaluate the function. In the second method (that internally recalls the first), you must provide the three corresponding comoving distances s1, s2, χ2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this integrand is the following:\n\nbeginsplit\n f^v_parallel intphi (chi_2 s_1 s_2 y) =\n D_1 mathfrakJ^v_parallel intphi_31 I_1^3(Deltachi_2) \nendsplit\n\nwith\n\nbeginsplit\n mathfrakJ^v_parallel intphi_31 =\n 3 f_1 mathcalH_1 mathcalR_1 mathcalH_0^2 Omega_mathrmM0\n frac\n D(chi_2)(chi_2 y - s_1)\n \n a(chi_2) s_2\n Deltachi_2^2 left\n s_2 mathfrakR_2 mathcalH(chi_2)(f_2 -1) - 1 \n right \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nmathfrakR_1 = mathfrakR(s_1), ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathfrakR(s) = 1 - frac1mathcalH(s) s \nb_1, s_mathrmb 1, mathitf_mathrmevo 1 (and b_2, s_mathrmb 2, mathitf_mathrmevo 2) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nThis function is used inside ξ_GNCxLD_Doppler_IntegratedGP with the trapz() from the Trapz Julia package.\n\nInputs\n\nIP::Point, P1::Point, P2::Point or χ2,s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nb1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:\nif not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;\nif you set one or more values, they will override the cosmo ones in this computation;\nthe two sets of values should be different only if you are interested in studing two galaxy species;\nonly the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities. \ns_lim=nothing : parameter used in order to avoid the divergence of the mathcalR and mathfrakR denominators: when 0 leq s leq s_mathrmlim the returned values are\nforall s in 0 s_mathrmlim quad \n mathfrakR(s) = 1 - frac1mathcalH_0 s_mathrmlim quad\n mathcalR(s) = 5 s_mathrmb + \n frac2 - 5 s_mathrmbmathcalH_0 s_mathrmlim + \n fracdotmathcalHmathcalH_0^2 - mathitf_mathrmevo \nIf nothing, the fault value stored in cosmo will be considered.\n\nSee also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole\n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations_2/#GaPSE.integrand_ξ_GNCxLD_IntegratedGP_LocalGP","page":"GNCxLD TPCFs","title":"GaPSE.integrand_ξ_GNCxLD_IntegratedGP_LocalGP","text":"integrand_ξ_GNCxLD_IntegratedGP_LocalGP(\n IP::Point, P1::Point, P2::Point, y, cosmo::Cosmology;\n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing,\n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing ) ::Float64\n\nintegrand_ξ_GNCxLD_IntegratedGP_LocalGP(\n χ1::Float64, s1::Float64, s2::Float64,\n y, cosmo::Cosmology; kwargs... ) ::Float64\n\nReturn the integrand of the Two-Point Correlation Function (TPCF) given by the cross correlation between the Integrated Gravitational Potential (GP) effect arising from the Galaxy Number Counts (GNC) and the Local GP one arising from the Luminosity Distance (LD) perturbations.\n\nIn the first method, you should pass the two extreme Points (P1 and P2) and the intermediate integrand Point (IP) where to evaluate the function. In the second method (that internally recalls the first), you must provide the three corresponding comoving distances s1, s2, χ2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this integrand is the following:\n\nbeginsplit\n f^intphi phi (chi_1 s_1 s_2 y) = \n D_2 \n mathfrakJ^intphi phi_40 tildeI^4_0(Deltachi_1)\n \nendsplit\n\nwith\n\nbeginsplit\n mathfrakJ^intphi phi_40 =\n - frac9 mathcalH_0^4 Omega_mathrmM0^2 D(chi_1) 2 a_2 s_1 a(chi_1) \n Deltachi_1^4 (1 + mathfrakR_2)\n left\n s_1 mathcalH(chi_1) mathcalR_1 (f(chi_1) - 1) - 5 s_mathrmb 1 + 2\n right \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nmathfrakR_1 = mathfrakR(s_1), ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathfrakR(s) = 1 - frac1mathcalH(s) s \nb_1, s_mathrmb 1, mathitf_mathrmevo 1 (and b_2, s_mathrmb 2, mathitf_mathrmevo 2) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nThis function is used inside ξ_GNCxLD_IntegratedGP_LocalGP with the trapz() from the Trapz Julia package.\n\nInputs\n\nIP::Point, P1::Point, P2::Point or χ1,s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nb1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:\nif not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;\nif you set one or more values, they will override the cosmo ones in this computation;\nthe two sets of values should be different only if you are interested in studing two galaxy species;\nonly the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities. \ns_lim=nothing : parameter used in order to avoid the divergence of the mathcalR and mathfrakR denominators: when 0 leq s leq s_mathrmlim the returned values are\nforall s in 0 s_mathrmlim quad \n mathfrakR(s) = 1 - frac1mathcalH_0 s_mathrmlim quad\n mathcalR(s) = 5 s_mathrmb + \n frac2 - 5 s_mathrmbmathcalH_0 s_mathrmlim + \n fracdotmathcalHmathcalH_0^2 - mathitf_mathrmevo \nIf nothing, the fault value stored in cosmo will be considered.\n\nSee also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole\n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations_2/#GaPSE.integrand_ξ_GNCxLD_LocalGP_Lensing","page":"GNCxLD TPCFs","title":"GaPSE.integrand_ξ_GNCxLD_LocalGP_Lensing","text":"integrand_ξ_GNCxLD_LocalGP_Lensing(\n\tIP::Point, P1::Point, P2::Point, y, cosmo::Cosmology; \n\tb1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing,\n\t𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing ) ::Float64\n\nintegrand_ξ_GNCxLD_LocalGP_Lensing(\n\tχ2::Float64, s1::Float64, s2::Float64,\n\ty, cosmo::Cosmology; kwargs... ) ::Float64\n\nReturn the integrand of the Two-Point Correlation Function (TPCF) given by the cross correlation between the Local Gravitational Potential (GP) effect arising from the Galaxy Number Counts (GNC) and the Lensing one arising from the Luminosity Distance (LD) perturbations.\n\nIn the first method, you should pass the two extreme Points (P1 and P2) and the intermediate integrand Point (IP) where to evaluate the function. In the second method (that internally recalls the first), you must provide the three corresponding comoving distances s1, s2, χ2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this integrand is the following:\n\nbeginsplit\n f^phi kappa (chi_2 s_1 s_2 y ) = \n D_1 \n mathfrakJ^phi kappa_alphaleft \n mathfrakJ^phi kappa_20 I_0^2 ( Delta chi_2 ) +\n rightnonumber \n leftqquad\n mathfrakJ^phi kappa_beta\n left(\n frac160 I_0^0 ( Delta chi_2 ) +\n frac142 I_2^0 ( Delta chi_2 ) +\n frac1140 I_4^0 ( Delta chi_2 ) \n right)\n right \nendsplit\n\nwith\n\nbeginsplit\n mathfrakJ^phi kappa_alpha = \n - fracmathcalH_0^2 Omega_mathrmM0 s_1 D(chi_2) a_1 s_2 a(chi_2)\n (chi_2 - s_2) \n times\n qquadqquad\n left\n 2 f_1 a_1 mathcalH_1^2 (mathitf_mathrmevo 1 - 3) + \n 3 mathcalH_0^2 Omega_mathrmM0 (f_1 + mathcalR_1 + 5 s_mathrmb 1 - 2)\n right nonumber\n \n \n mathfrakJ^phi kappa_beta =\n 2 y chi_2^2 - chi_2 s_1 (y^2 + 3) + 2 y s_1^2\n \n \n mathfrakJ^phi kappa_20 = frac12 y Deltachi_2^2 \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nmathfrakR_1 = mathfrakR(s_1), ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathfrakR(s) = 1 - frac1mathcalH(s) s \nb_1, s_mathrmb 1, mathitf_mathrmevo 1 (and b_2, s_mathrmb 2, mathitf_mathrmevo 2) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nThis function is used inside ξ_GNCxLD_Lensing_IntegratedGP with the trapz() from the Trapz Julia package.\n\nInputs\n\nIP::Point, P1::Point, P2::Point or χ2,s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nb1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:\nif not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;\nif you set one or more values, they will override the cosmo ones in this computation;\nthe two sets of values should be different only if you are interested in studing two galaxy species;\nonly the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities. \ns_lim=nothing : parameter used in order to avoid the divergence of the mathcalR and mathfrakR denominators: when 0 leq s leq s_mathrmlim the returned values are\nforall s in 0 s_mathrmlim quad \n mathfrakR(s) = 1 - frac1mathcalH_0 s_mathrmlim quad\n mathcalR(s) = 5 s_mathrmb + \n frac2 - 5 s_mathrmbmathcalH_0 s_mathrmlim + \n fracdotmathcalHmathcalH_0^2 - mathitf_mathrmevo \nIf nothing, the fault value stored in cosmo will be considered.\n\nSee also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole\n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations_2/#GaPSE.integrand_ξ_GNCxLD_Doppler_Lensing","page":"GNCxLD TPCFs","title":"GaPSE.integrand_ξ_GNCxLD_Doppler_Lensing","text":"integrand_ξ_GNCxLD_Doppler_Lensing(\n IP::Point, P1::Point, P2::Point, y, cosmo::Cosmology;\n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing,\n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing ) ::Float64\n\nintegrand_ξ_GNCxLD_Doppler_Lensing(\n χ2::Float64, s1::Float64, s2::Float64,\n y, cosmo::Cosmology; kwargs... ) ::Float64\n\nReturn the integrand of the Two-Point Correlation Function (TPCF) given by the cross correlation between the Doppler effect arising from the Galaxy Number Counts (GNC) and the Lensing one arising from the Luminosity Distance (LD) perturbations.\n\nIn the first method, you should pass the two extreme Points (P1 and P2) and the intermediate integrand Point (IP) where to evaluate the function. In the second method (that internally recalls the first), you must provide the three corresponding comoving distances s1, s2, χ2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this integrand is the following:\n\nbeginsplit\n f^v_parallelkappa (chi_2 s_1 s_2 y) =\n D_1 \n mathfrakJ^kappa v_parallel_alpha times \n left\n mathfrakJ^kappa v_parallel_00 I_0^0(Deltachi_2) + \n mathfrakJ^kappa v_parallel_02 I_2^0(Deltachi_2) + \n mathfrakJ^kappa v_parallel_04 I_4^0(Deltachi_2) + \n mathfrakJ^kappa v_parallel_20 I_0^2(Deltachi_2)\n right\nendsplit\n\nwith\n\nbeginsplit\n mathfrakJ^kappa v_parallel_alpha = \n - mathcalH_0^2 Omega_mathrmM0 f_1 mathcalH_1 mathcalR_1 \n fracD(chi_2) (chi_2 - s_2)a(chi_2) s_2\n \n \n mathfrakJ^kappa v_parallel_00 = \n frac115\n left\n chi_2^2 y + chi_2(4 y^2 - 3) s_1 - 2 y s_1^2\n right\n \n \n mathfrakJ^kappa v_parallel_02 = \n frac142 Deltachi_2^2\n left\n 4 chi_2^4 y + 4 chi_2^3 (2 y^2 - 3) s_1 +\n chi_2^2 y (11 - 23 y^2) s_1^2 +\n right\n leftqquadqquadqquad\n chi_2 (23 y^2 - 3) s_1^3 - 8 y s_1^4\n right nonumber\n \n \n mathfrakJ^kappa v_parallel_04 = \n frac170 Deltachi_2^2 \n left\n 2chi_2^4 y + 2 chi_2^3 (2 y^2 - 3) s_1 -\n chi_2^2 y (y^2 + 5) s_1^2 + \n right\n leftqquadqquadqquad\n chi_2 (y^2 + 9) s_1^3 - 4 y s_1^4\n right nonumber\n \n \n mathfrakJ^kappa v_parallel_20 = y Deltachi_2^2 \n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nmathfrakR_1 = mathfrakR(s_1), ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathfrakR(s) = 1 - frac1mathcalH(s) s \nb_1, s_mathrmb 1, mathitf_mathrmevo 1 (and b_2, s_mathrmb 2, mathitf_mathrmevo 2) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nThis function is used inside ξ_GNCxLD_Doppler_Lensing with the trapz() from the Trapz Julia package.\n\nInputs\n\nIP::Point, P1::Point, P2::Point or χ2,s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nb1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:\nif not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;\nif you set one or more values, they will override the cosmo ones in this computation;\nthe two sets of values should be different only if you are interested in studing two galaxy species;\nonly the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities. \ns_lim=nothing : parameter used in order to avoid the divergence of the mathcalR and mathfrakR denominators: when 0 leq s leq s_mathrmlim the returned values are\nforall s in 0 s_mathrmlim quad \n mathfrakR(s) = 1 - frac1mathcalH_0 s_mathrmlim quad\n mathcalR(s) = 5 s_mathrmb + \n frac2 - 5 s_mathrmbmathcalH_0 s_mathrmlim + \n fracdotmathcalHmathcalH_0^2 - mathitf_mathrmevo \nIf nothing, the fault value stored in cosmo will be considered.\n\nSee also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole\n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations_2/#GaPSE.integrand_ξ_GNCxLD_Lensing_Lensing","page":"GNCxLD TPCFs","title":"GaPSE.integrand_ξ_GNCxLD_Lensing_Lensing","text":"integrand_ξ_GNCxLD_Lensing_Lensing(\n IP1::Point, IP2::Point, P1::Point, P2::Point, y, cosmo::Cosmology;\n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing,\n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing ) ::Float64\n\nintegrand_ξ_GNCxLD_Lensing_Lensing(\n χ1::Float64, χ2::Float64,\n s1::Float64, s2::Float64,\n y, cosmo::Cosmology; kwargs... ) ::Float64\n\nReturn the integrand of the Two-Point Correlation Function (TPCF) given by the cross correlation between the Lensing effect arising from the Galaxy Number Counts (GNC) and the Lensing one arising from the Luminosity Distance (LD) perturbations.\n\nIn the first method, you should pass the two extreme Points (P1 and P2) and the two intermediate integrand Points (IP1 and IP2) where to evaluate the function. In the second method (that internally recalls the first), you must provide the three corresponding comoving distances s1, s2, χ1, χ2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this integrand is the following:\n\nbeginsplit\n f^kappakappa (chi_1 chi_2 s_1 s_2 y) = \n mathfrakJ^kappakappa_alpha\n left\n mathfrakJ^kappakappa_00 I_0^0(Deltachi) + \n mathfrakJ^kappakappa_02 I_2^0(Deltachi) +\n right\n left\n mathfrakJ^kappakappa_31 I_1^3(Deltachi) +\n mathfrakJ^kappakappa_22 I_2^2(Deltachi)\n right nonumber \nendsplit\n\nwith\n\nbeginsplit\n mathfrakJ^kappakappa_alpha = \n - frac\n mathcalH_0^4 Omega_mathrmM0^2 D(chi_1) D(chi_2) \n \n s_1 s_2 a(chi_1) a(chi_2)\n (chi_1 - s_1)(chi_2 - s_2)\n (5 s_mathrmb 2 - 1)\n \n \n mathfrakJ^kappakappa_00 = \n -frac 3 chi_1^2 chi_2^24 Deltachi^4 (y^2 - 1)\n left\n 8 y (chi_1^2 + chi_2^2) - 9chi_1chi_2y^2 - \n 7chi_1chi_2\n right \n \n \n mathfrakJ^kappakappa_02 = \n -frac 3 chi_1^2 chi_2^22 Deltachi^4(y^2 - 1)\n left\n 4 y (chi_1^2 + chi_2^2) - 3 chi_1 chi_2 y^2 -\n 5 chi_1 chi_2\n right \n \n \n mathfrakJ^kappakappa_31 = 9 y Deltachi^2 \n \n \n mathfrakJ^kappakappa_22 = \n frac9 chi_1 chi_24 Deltachi^4\n left\n 2(chi_1^4 + chi_2^4)(7 y^2 - 3) - \n 16 y chi_1 chi_2 (chi_1^2 + chi_2^2)(y^2 + 1) + \n right\n leftqquadqquadqquad\n chi_1^2 chi_2^2 (11y^4 + 14y^2 + 23) \n right \n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nmathfrakR_1 = mathfrakR(s_1), ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathfrakR(s) = 1 - frac1mathcalH(s) s \nb_1, s_mathrmb 1, mathitf_mathrmevo 1 (and b_2, s_mathrmb 2, mathitf_mathrmevo 2) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nThis function is used inside ξ_GNCxLD_Lensing_Lensing with the trapz() from the Trapz Julia package.\n\nInputs\n\nIP1::Point, IP2::Point, P1::Point, P2::Point or χ1,χ2,s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nb1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:\nif not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;\nif you set one or more values, they will override the cosmo ones in this computation;\nthe two sets of values should be different only if you are interested in studing two galaxy species;\nonly the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities. \ns_lim=nothing : parameter used in order to avoid the divergence of the mathcalR and mathfrakR denominators: when 0 leq s leq s_mathrmlim the returned values are\nforall s in 0 s_mathrmlim quad \n mathfrakR(s) = 1 - frac1mathcalH_0 s_mathrmlim quad\n mathcalR(s) = 5 s_mathrmb + \n frac2 - 5 s_mathrmbmathcalH_0 s_mathrmlim + \n fracdotmathcalHmathcalH_0^2 - mathitf_mathrmevo \nIf nothing, the fault value stored in cosmo will be considered.\n\nSee also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole\n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations_2/#GaPSE.integrand_ξ_GNCxLD_Lensing_Doppler","page":"GNCxLD TPCFs","title":"GaPSE.integrand_ξ_GNCxLD_Lensing_Doppler","text":"integrand_ξ_GNCxLD_Lensing_Doppler(\n IP::Point, P1::Point, P2::Point, y, cosmo::Cosmology;\n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing,\n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing ) ::Float64\n\nintegrand_ξ_GNCxLD_Lensing_Doppler(\n χ1::Float64, s1::Float64, s2::Float64, y, cosmo::Cosmology;\n kwargs... ) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) given by the cross correlation between the Lensing effect arising from the Galaxy Number Counts (GNC) and the Doppler one arising from the Luminosity Distance (LD) perturbations.\n\nIn the first method, you should pass the two extreme Points (P1 and P2) and the intermediate integrand Point (IP) where to evaluate the function. In the second method (that internally recalls the first), you must provide the three corresponding comoving distances s1, s2, χ2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this TPCF is the following:\n\nbeginsplit\n f^kappa v_parallel (chi_1 s_1 s_2 y) = \n D_2 \n mathfrakJ^kappa v_parallel_alpha times \n left\n mathfrakJ^kappa v_parallel_00 I_0^0(Deltachi_1) + \n mathfrakJ^kappa v_parallel_02 I_2^0(Deltachi_1) + \n mathfrakJ^kappa v_parallel_04 I_4^0(Deltachi_1) + \n mathfrakJ^kappa v_parallel_20 I_0^2(Deltachi_1)\n right\nendsplit\n\nwith\n\nbeginsplit\n mathfrakJ^kappa v_parallel_alpha = \n - mathcalH_0^2 Omega_mathrmM0 f_2 mathcalH_2 mathfrakR_2 \n fracD(chi_1) (chi_1 - s_1)a(chi_1) s_1\n (5 s_mathrmb 1 - 2 )\n \n \n mathfrakJ^kappa v_parallel_00 = \n frac115\n left\n chi_1^2 y + chi_1(4 y^2 - 3) s_2 - 2 y s_2^2\n right\n \n \n mathfrakJ^kappa v_parallel_02 = \n frac142 Deltachi_1^2\n left\n 4 chi_1^4 y + 4 chi_1^3 (2 y^2 - 3) s_2 +\n chi_1^2 y (11 - 23 y^2) s_2^2 +\n right\n leftqquadqquadqquad\n chi_1 (23 y^2 - 3) s_2^3 - 8 y s_2^4\n right nonumber\n \n \n mathfrakJ^kappa v_parallel_04 = \n frac170 Deltachi_1^2 \n left\n 2chi_1^4 y + 2 chi_1^3 (2 y^2 - 3) s_2 -\n chi_1^2 y (y^2 + 5) s_2^2 + \n right\n leftqquadqquadqquad\n chi_1(y^2 + 9) s_2^3 - 4 y s_2^4\n right nonumber\n \n \n mathfrakJ^kappa v_parallel_20 = y Deltachi_1^2 \n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nmathfrakR_1 = mathfrakR(s_1), ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathfrakR(s) = 1 - frac1mathcalH(s) s \nb_1, s_mathrmb 1, mathitf_mathrmevo 1 (and b_2, s_mathrmb 2, mathitf_mathrmevo 2) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nThis function is used inside ξ_GNCxLD_Lensing_Doppler with the trapz() from the Trapz Julia package.\n\nInputs\n\nIP::Point, P1::Point, P2::Point or χ1,s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nb1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:\nif not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;\nif you set one or more values, they will override the cosmo ones in this computation;\nthe two sets of values should be different only if you are interested in studing two galaxy species;\nonly the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities. \ns_lim=nothing : parameter used in order to avoid the divergence of the mathcalR and mathfrakR denominators: when 0 leq s leq s_mathrmlim the returned values are\nforall s in 0 s_mathrmlim quad \n mathfrakR(s) = 1 - frac1mathcalH_0 s_mathrmlim quad\n mathcalR(s) = 5 s_mathrmb + \n frac2 - 5 s_mathrmbmathcalH_0 s_mathrmlim + \n fracdotmathcalHmathcalH_0^2 - mathitf_mathrmevo \nIf nothing, the fault value stored in cosmo will be considered.\n\nSee also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole\n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations_2/#GaPSE.integrand_ξ_GNCxLD_Newtonian_IntegratedGP","page":"GNCxLD TPCFs","title":"GaPSE.integrand_ξ_GNCxLD_Newtonian_IntegratedGP","text":"integrand_ξ_GNCxLD_Newtonian_IntegratedGP(\n IP::Point, P1::Point, P2::Point, y, cosmo::Cosmology;\n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing,\n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing ) ::Float64\n\nintegrand_ξ_GNCxLD_Newtonian_IntegratedGP(\n χ2::Float64, s1::Float64, s2::Float64,\n y, cosmo::Cosmology; kwargs... ) ::Float64\n\nReturn the integrand of the Two-Point Correlation Function (TPCF) given by the cross correlation between the Newtonian effect arising from the Galaxy Number Counts (GNC) and the Integrated Gravitational Potential (GP) one arising from the Luminosity Distance (LD) perturbations.\n\nIn the first method, you should pass the two extreme Points (P1 and P2) and the intermediate integrand Point (IP) where to evaluate the function. In the second method (that internally recalls the first), you must provide the three corresponding comoving distances s1, s2, χ2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this integrand is the following:\n\nbeginsplit\n f^delta intphi(chi_2 s_1 s_2 y ) =\n D_1 \n mathfrakJ^delta intphi_alpha\n left \n mathfrakJ^delta intphi_20 I_0^2 ( Deltachi_2 ) +\n right \n left \n mathfrakJ^delta intphi_beta\n left(\n frac115 I_0^0 ( Deltachi_2 ) + \n frac121 I_2^0 ( Deltachi_2 ) +\n frac135 I_4^0 ( Deltachi_2 )\n right) \n right \nendsplit\n\nwith\n\nbeginsplit\n mathfrakJ^delta intphi_alpha =\n - fracmathcalH_0^2 Omega_mathrmM0 D(chi_2)3 a(chi_2) s_2 \n left \n s_2 mathfrakR_2 mathcalH(chi_2) ( f(chi_2) - 1) - 1\n right \n \n \n mathfrakJ^delta intphi_beta =\n f_1 left \n (3 y^2 - 1) chi_2^2 - 4 y s_1 chi_2 + 2 s_1^2\n right \n \n \n mathfrakJ^delta intphi_20 =\n - Deltachi_2^2 ( 3 b_1 + f_1)\n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nmathfrakR_1 = mathfrakR(s_1), ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathfrakR(s) = 1 - frac1mathcalH(s) s \nb_1, s_mathrmb 1, mathitf_mathrmevo 1 (and b_2, s_mathrmb 2, mathitf_mathrmevo 2) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nThis function is used inside ξ_GNCxLD_Newtonian_IntegratedGP with the trapz() from the Trapz Julia package.\n\nInputs\n\nIP::Point, P1::Point, P2::Point or χ2,s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nb1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:\nif not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;\nif you set one or more values, they will override the cosmo ones in this computation;\nthe two sets of values should be different only if you are interested in studing two galaxy species;\nonly the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities. \ns_lim=nothing : parameter used in order to avoid the divergence of the mathcalR and mathfrakR denominators: when 0 leq s leq s_mathrmlim the returned values are\nforall s in 0 s_mathrmlim quad \n mathfrakR(s) = 1 - frac1mathcalH_0 s_mathrmlim quad\n mathcalR(s) = 5 s_mathrmb + \n frac2 - 5 s_mathrmbmathcalH_0 s_mathrmlim + \n fracdotmathcalHmathcalH_0^2 - mathitf_mathrmevo \nIf nothing, the fault value stored in cosmo will be considered.\n\nSee also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole\n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations_2/#GaPSE.integrand_ξ_GNCxLD_Lensing_LocalGP","page":"GNCxLD TPCFs","title":"GaPSE.integrand_ξ_GNCxLD_Lensing_LocalGP","text":"integrand_ξ_GNCxLD_Lensing_LocalGP(\n\tIP::Point, P1::Point, P2::Point, y, cosmo::Cosmology;\n\tb1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing,\n\t𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing ) ::Float64\n\nintegrand_ξ_GNCxLD_Lensing_LocalGP(\n\tχ1::Float64, s1::Float64, s2::Float64, \n\ty, cosmo::Cosmology; kwargs... ) ::Float64\n\nReturn the integrand of the Two-Point Correlation Function (TPCF) given by the cross correlation between the Lensing effect arising from the Galaxy Number Counts (GNC) and the Local Gravitational Potential (GP) one arising from the Luminosity Distance (LD) perturbations.\n\nIn the first method, you should pass the two extreme Points (P1 and P2) and the intermediate integrand Point (IP) where to evaluate the function. In the second method (that internally recalls the first), you must provide the three corresponding comoving distances s1, s2, χ2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this integrand is the following:\n\nbeginsplit\n f^kappa phi (chi_1 s_1 s_2 y) = \n D_2 \n mathfrakJ^kappa phi_alpha left\n mathfrakJ^kappa phi_31 I_1^3(Deltachi_1) + \n mathfrakJ^kappa phi_22 I_2^2(Deltachi_1)\n right nonumber \nendsplit\n\nwith\n\nbeginsplit\n mathfrakJ^kappa phi_alpha =\n - frac\n 9 mathcalH_0^4 Omega_mathrmM0^2 s_2 D(chi_1)(s_1 - chi_1)\n \n 4 a_2 s_1a(chi_1)\n \n (1 + mathfrakR_2)\n (5 s_mathrmb 1 - 2)\n \n \n mathfrakJ^kappa phi_31 = -2 y Deltachi_1^2 \n \n \n mathfrakJ^kappa phi_22 = chi_1 s_2 (1 - y^2) \n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nmathfrakR_1 = mathfrakR(s_1), ... is computed by func_ℛ_LD in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathfrakR(s) = 1 - frac1mathcalH(s) s \nb_1, s_mathrmb 1, mathitf_mathrmevo 1 (and b_2, s_mathrmb 2, mathitf_mathrmevo 2) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nThis function is used inside ξ_GNCxLD_Lensing_LocalGP with the trapz() from the Trapz Julia package.\n\nInputs\n\nIP::Point, P1::Point, P2::Point or χ1,s1,s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nb1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:\nif not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;\nif you set one or more values, they will override the cosmo ones in this computation;\nthe two sets of values should be different only if you are interested in studing two galaxy species;\nonly the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities. \ns_lim=nothing : parameter used in order to avoid the divergence of the mathcalR and mathfrakR denominators: when 0 leq s leq s_mathrmlim the returned values are\nforall s in 0 s_mathrmlim quad \n mathfrakR(s) = 1 - frac1mathcalH_0 s_mathrmlim quad\n mathcalR(s) = 5 s_mathrmb + \n frac2 - 5 s_mathrmbmathcalH_0 s_mathrmlim + \n fracdotmathcalHmathcalH_0^2 - mathitf_mathrmevo \nIf nothing, the fault value stored in cosmo will be considered.\n\nSee also: Point, Cosmology, ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole\n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations_2/#Two-Point-Cross-Correlation-Function-multipoles","page":"GNCxLD TPCFs","title":"Two-Point Cross-Correlation Function multipoles","text":"","category":"section"},{"location":"GNCxLD_Correlations_2/","page":"GNCxLD TPCFs","title":"GNCxLD TPCFs","text":"GaPSE.integrand_ξ_GNCxLD_multipole\nGaPSE.ξ_GNCxLD_multipole\nGaPSE.map_ξ_GNCxLD_multipole\nGaPSE.print_map_ξ_GNCxLD_multipole","category":"page"},{"location":"GNCxLD_Correlations_2/#GaPSE.integrand_ξ_GNCxLD_multipole","page":"GNCxLD TPCFs","title":"GaPSE.integrand_ξ_GNCxLD_multipole","text":"integrand_ξ_GNCxLD_multipole(s1, s, μ, effect::Function, cosmo::Cosmology;\n L::Int = 0, use_windows::Bool = true, kwargs...)\n\nintegrand_ξ_GNCxLD_multipole(s1, s, μ, effect::String, cosmo::Cosmology; kwargs...)\n\nReturn the integrand on mu = hatmathbfs_1 cdot hatmathbfs of the chosen two-point cross correlation between a Galaxy Number Counts (GNC) effect and a perturbation of the Luminosity Distance (LD) term, i.e. the following function f(s_1 s mu):\n\n f_L(s_1 s mu) = xi left(s_1 s_2 yright) \n mathcalL_L(mu) times \n begincases \n frac1mathcalNmathcalF(s mu) quad mathrmuse_windows == true \n 1 quadquad mathrmuse_windows == false\n endcases\n\nwhere:\n\ns_2 = s_2(s_1 s mu) = sqrts_1^2 + s^2 + 2 s_1 s mu \ny = costheta = hatmathbfs_1 cdot hatmathbfs_2 = fracmu s + s_1s_2(s_1 s mu)\nxi is the corresponding GNCxLD TPCF effect\nmathcalL_L(mu) is the Legendre polynomial of order L\nmathcalF(s mu) is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)\nmathcalN is the integrated window function norm (check the documentation of WindowFIntegrated)\n\nIn the former method you have to pass as an input the GNCxLD effect function you want to integrate, while in the (recommended) latter one it's necessary to specify the name of the GNCxLD TPCF term among the following:\n\nnewton_doppler , newton_lensing , newton_localgp , newton_integratedgp , doppler_doppler , doppler_lensing , doppler_localgp , doppler_integratedgp , lensing_doppler , lensing_lensing , lensing_localgp , lensing_integratedgp , localgp_doppler , localgp_lensing , localgp_localgp , localgp_integratedgp , integratedgp_doppler , integratedgp_lensing , integratedgp_localgp , integratedgp_integratedgp ,\n\nto which correspond the following functions, respectively:\n\nξ_GNCxLD_Newtonian_Doppler , ξ_GNCxLD_Newtonian_Lensing , ξ_GNCxLD_Newtonian_LocalGP , ξ_GNCxLD_Newtonian_IntegratedGP , ξ_GNCxLD_Doppler_Doppler , ξ_GNCxLD_Doppler_Lensing , ξ_GNCxLD_Doppler_LocalGP , ξ_GNCxLD_Doppler_IntegratedGP , ξ_GNCxLD_Lensing_Doppler , ξ_GNCxLD_Lensing_Lensing , ξ_GNCxLD_Lensing_LocalGP , ξ_GNCxLD_Lensing_IntegratedGP , ξ_GNCxLD_LocalGP_Doppler , ξ_GNCxLD_LocalGP_Lensing , ξ_GNCxLD_LocalGP_LocalGP , ξ_GNCxLD_LocalGP_IntegratedGP , ξ_GNCxLD_IntegratedGP_Doppler , ξ_GNCxLD_IntegratedGP_Lensing , ξ_GNCxLD_IntegratedGP_LocalGP , ξ_GNCxLD_IntegratedGP_IntegratedGP ,\n\nInternally, the second method recall the first, so all the keyword arguments are in common.\n\nNote that these is an internal conversion of coordiate sistems from (s1, s, μ) to (s1, s2, y) thorugh the functions y and s2. The inverse relations are:\n\ns = s(s_1 s_2 y) = sqrts_1^2 + s_2^2 - 2 s_1 s_2 y\nmu = costheta = hatmathbfs_1 cdot hatmathbfs = fracy s_2 - s_1s(s_1 s_2 y).\n\nInputs\n\ns1: the comoving distance where must be evaluated the integral\ns: the comoving distance from s1 where must be evaluated the integral\nμ: the cosine between s1 and s where must be evaluated the integral\neffect::Function or effect::String : name/function you want to consider, among the ones inside GaPSE.GR_EFFECTS_GNCxLD/GaPSE.VEC_ξs_GNCxLD respectively.\ncosmo::Cosmology: cosmology to be used in this computation\n\nOptional arguments\n\nL::Int = 0: order of the Legendre polynomial to be used\nuse_windows::Bool = false: tells if the integrand must consider the two window function phi and mathcalF\nkwargs... : other keyword arguments that will be passed to the selected GR TPCF effect (ξ_GNCxLD_Doppler, ξ_GNCxLD_Lensing, ...)\n\nSee also: ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole, WindowFIntegrated, ϕ, Cosmology, y, s2, GR_EFFECTS_GNCxLD, GaPSE.VEC_ξs_GNCxLD\n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations_2/#GaPSE.ξ_GNCxLD_multipole","page":"GNCxLD TPCFs","title":"GaPSE.ξ_GNCxLD_multipole","text":"ξ_GNCxLD_multipole(\n s1, s, effect::Function, cosmo::Cosmology;\n L::Int = 0, alg::Symbol = :lobatto, \n use_windows::Bool = true, \n N_lob::Int = 100, N_trap::Int = 200, \n atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,\n enhancer::Float64 = 1e6, \n kwargs...) ::Float64\n\nξ_GNCxLD_multipole(s1, s, effect::String, cosmo::Cosmology; \n kwargs...) ::Float64\n\nEvaluate the multipole of order L of the chosen two-point cross correlation between a Galaxy Number Counts (GNC) effect and a perturbation of the Luminosity Distance (LD) term i.e. the following function xi_L(s_1 s):\n\n xi_L(s_1 s) = frac2 L + 12 int_-1^+1 mathrmdmu \n xi (s_1 s_2 costheta) mathcalL_L(mu) times\n begincases \n frac1mathcalNmathcalF(s mu) quad mathrmuse_windows == true \n 1 quadquad mathrmuse_windows == false\n endcases\n\nwhere:\n\ns_2 = s_2(s_1 s mu) = sqrts_1^2 + s^2 + 2 s_1 s mu \ny = costheta = hatmathbfs_1 cdot hatmathbfs_2 = fracmu s + s_1s_2(s_1 s mu)\nxi is the corresponding GNCxLD TPCF effect\nmathcalL_L(mu) is the Legendre polynomial of order L\nmathcalF(s mu) is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)\nmathcalN is the integrated window function norm (check the documentation of WindowFIntegrated) \n\nIn the former method you have to pass as an input the GNCxLD effect function you want to integrate, while in the (recommended) latter one it's necessary to specify the name of the GNCxLD TPCF term among the following:\n\nnewton_doppler , newton_lensing , newton_localgp , newton_integratedgp , doppler_doppler , doppler_lensing , doppler_localgp , doppler_integratedgp , lensing_doppler , lensing_lensing , lensing_localgp , lensing_integratedgp , localgp_doppler , localgp_lensing , localgp_localgp , localgp_integratedgp , integratedgp_doppler , integratedgp_lensing , integratedgp_localgp , integratedgp_integratedgp ,\n\nto which correspond the following functions:\n\nξ_GNCxLD_Newtonian_Doppler , ξ_GNCxLD_Newtonian_Lensing , ξ_GNCxLD_Newtonian_LocalGP , ξ_GNCxLD_Newtonian_IntegratedGP , ξ_GNCxLD_Doppler_Doppler , ξ_GNCxLD_Doppler_Lensing , ξ_GNCxLD_Doppler_LocalGP , ξ_GNCxLD_Doppler_IntegratedGP , ξ_GNCxLD_Lensing_Doppler , ξ_GNCxLD_Lensing_Lensing , ξ_GNCxLD_Lensing_LocalGP , ξ_GNCxLD_Lensing_IntegratedGP , ξ_GNCxLD_LocalGP_Doppler , ξ_GNCxLD_LocalGP_Lensing , ξ_GNCxLD_LocalGP_LocalGP , ξ_GNCxLD_LocalGP_IntegratedGP , ξ_GNCxLD_IntegratedGP_Doppler , ξ_GNCxLD_IntegratedGP_Lensing , ξ_GNCxLD_IntegratedGP_LocalGP , ξ_GNCxLD_IntegratedGP_IntegratedGP ,\n\nInternally, the second method recall the first, so all the keyword arguments are in common.\n\nNote that these is an internal conversion of coordiate sistems from (s1, s, μ) to (s1, s2, y) thorugh the functions y and s2. The inverse relations are:\n\ns = s(s_1 s_2 y) = sqrts_1^2 + s_2^2 - 2 s_1 s_2 y\nmu = costheta = hatmathbfs_1 cdot hatmathbfs = fracy s_2 - s_1s(s_1 s_2 y).\n\nInputs\n\ns1: the comoving distance where must be evaluated the integral\ns: the comoving distance from s1 where must be evaluated the integral\neffect::Function or effect::String : name/function you want to consider, among the ones inside GaPSE.GR_EFFECTS_GNCxLD/GaPSE.VEC_ξs_GNCxLD respectively.\ncosmo::Cosmology: cosmology to be used in this computation\n\nOptional arguments\n\nL::Int = 0: order of the Legendre polynomial to be used\nalg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):\n:quad -> the integration over mu will be preformed through the Julia function quadgk \nfrom the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n:trap -> the integration over mu will be preformed through the Julia function trapz \nfrom the Trapz.jl Julia package, that uses the simple trapezoidal rulae.\n:lobatto -> the integration over mu will be preformed through the Julia function gausslobatto \nfrom the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!\nuse_windows::Bool = false: tells if the integrand must consider the two window function phi and mathcalF\nN_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\nN_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\nkwargs... : other keyword arguments that will be passed to the selected GNCxLD TPCF effect (ξ_GNCxLD_Doppler, ξ_GNCxLD_Lensing, ...)\n\nSee also: integrand_ξ_GNCxLD_multipole, map_ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole WindowFIntegrated, Cosmology, y, s2, GR_EFFECTS_GNCxLD, VEC_ξs_GNCxLD\n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations_2/#GaPSE.map_ξ_GNCxLD_multipole","page":"GNCxLD TPCFs","title":"GaPSE.map_ξ_GNCxLD_multipole","text":"map_ξ_GNCxLD_multipole(cosmo::Cosmology,\n effect::Union{String,Function}, ss = nothing;\n s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,\n N_lob::Int = 100, N_trap::Int = 50,\n atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,\n enhancer::Float64=1e6, N_log::Int = 1000, \n pr::Bool = true,\n kwargs...) ::Tuple{Vector{Float64}, Vector{Float64}}\n\nEvaluate the multipole of order L of the chosen two-point cross correlation between a Galaxy Number Counts (GNC) effect and a perturbation of the Luminosity Distance (LD) term for all the comoving distance values stored inside ss. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). If s1 = nothing, it is set s1 = cosmo.s_eff.\n\nThe function evaluated is then the following xi_L(s_1 s):\n\n xi_L(s_1 s) = frac2 L + 12 int_-1^+1 mathrmdmu \n xi (s_1 s_2 costheta) mathcalL_L(mu) times\n begincases \n frac1mathcalNmathcalF(s mu) quad mathrmuse_windows == true \n 1 quadquad mathrmuse_windows == false\n endcases\n\nwhere:\n\ns_2 = s_2(s_1 s mu) = sqrts_1^2 + s^2 + 2 s_1 s mu \ny = costheta = hatmathbfs_1 cdot hatmathbfs_2 = fracmu s + s_1s_2(s_1 s mu)\nxi is the corresponding GNCxLD TPCF effect\nmathcalL_L(mu) is the Legendre polynomial of order L\nmathcalF(s mu) is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)\nmathcalN is the integrated window function norm (check the documentation of WindowFIntegrated) \n\nNote that these is an internal conversion of coordiate sistems from (s1, s, μ) to (s1, s2, y) thorugh the functions y and s2. The inverse relations are:\n\ns = s(s_1 s_2 y) = sqrts_1^2 + s_2^2 - 2 s_1 s_2 y\nmu = costheta = hatmathbfs_1 cdot hatmathbfs = fracy s_2 - s_1s(s_1 s_2 y).\n\nInputs\n\ncosmo::Cosmology : cosmology to be used in this computation\neffect::Union{String,Function} : the GR effect TPCF you want to consider; you may specify the name of the effect as one of the following strings (recommended):\nnewton_doppler , newton_lensing , newton_localgp , newton_integratedgp , doppler_doppler , doppler_lensing , doppler_localgp , doppler_integratedgp , lensing_doppler , lensing_lensing , lensing_localgp , lensing_integratedgp , localgp_doppler , localgp_lensing , localgp_localgp , localgp_integratedgp , integratedgp_doppler , integratedgp_lensing , integratedgp_localgp , integratedgp_integratedgp ,\nor directly the name of the function among the following: \nξ_GNCxLD_Newtonian_Doppler , ξ_GNCxLD_Newtonian_Lensing , ξ_GNCxLD_Newtonian_LocalGP , ξ_GNCxLD_Newtonian_IntegratedGP , ξ_GNCxLD_Doppler_Doppler , ξ_GNCxLD_Doppler_Lensing , ξ_GNCxLD_Doppler_LocalGP , ξ_GNCxLD_Doppler_IntegratedGP , ξ_GNCxLD_Lensing_Doppler , ξ_GNCxLD_Lensing_Lensing , ξ_GNCxLD_Lensing_LocalGP , ξ_GNCxLD_Lensing_IntegratedGP , ξ_GNCxLD_LocalGP_Doppler , ξ_GNCxLD_LocalGP_Lensing , ξ_GNCxLD_LocalGP_LocalGP , ξ_GNCxLD_LocalGP_IntegratedGP , ξ_GNCxLD_IntegratedGP_Doppler , ξ_GNCxLD_IntegratedGP_Lensing , ξ_GNCxLD_IntegratedGP_LocalGP , ξ_GNCxLD_IntegratedGP_IntegratedGP ,\nss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). This is why it is returned also the vector of the \"input\" values.\n\nOptional arguments\n\ns1 = nothing : comoving distance from the observer where the TPCF should be evaluated; if s1 = nothing, it is automatically set s1 = cosmo.s_eff from the given input cosmo::Cosmology.\nL::Int = 0: order of the Legendre polynomial to be used\nalg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):\n:quad -> the integration over mu will be preformed through the Julia function quadgk from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n:trap -> the integration over mu will be preformed through the Julia function trapz from the Trapz.jl Julia package, that uses the simple trapezoidal rulae.\n:lobatto -> the integration over mu will be preformed through the Julia function gausslobatto from the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!\nuse_windows::Bool = false: tells if the integrand must consider the two window function phi and mathcalF\nN_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\nN_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\nN_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing \npr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)\nkwargs... : other keyword arguments that will be passed to the selected GNCxLD TPCF effect (ξ_GNCxLD_Doppler, ξ_GNCxLD_Lensing, ...)\n\nReturns\n\nA Tuple{Vector{Float64}, Vector{Float64}}, which has as first element the ss vector and as second one the corresponding ξ value evaluated.\n\nSee also: integrand_ξ_GNCxLD_multipole, ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole, WindowFIntegrated, Cosmology, y, s2, GR_EFFECTS_GNCxLD, GaPSE.VEC_ξs_GNCxLD\n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations_2/#GaPSE.print_map_ξ_GNCxLD_multipole","page":"GNCxLD TPCFs","title":"GaPSE.print_map_ξ_GNCxLD_multipole","text":"print_map_ξ_GNCxLD_multipole(\n cosmo::Cosmology, out::String,\n effect::Union{String,Function},\n ss = nothing;\n s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,\n N_lob::Int = 100, N_trap::Int = 50,\n atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,\n enhancer::Float64=1e6, N_log::Int = 1000, \n pr::Bool = true,\n kwargs...)\n\nEvaluate the multipole of order L of the of the chosen two-point cross correlation between a Galaxy Number Counts (GNC) effect and a perturbation of the Luminosity Distance (LD) term for all the comoving distance values stored inside ss, and print the results (with all the options used) in a file named out. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). If s1 = nothing, it is set s1 = cosmo.s_eff.\n\nThe function evaluated is then the following xi_L(s_1 s):\n\n xi_L(s_1 s) = frac2 L + 12 int_-1^+1 mathrmdmu \n xi (s_1 s_2 costheta) mathcalL_L(mu) times\n begincases \n frac1mathcalNmathcalF(s mu) quad mathrmuse_windows == true \n 1 quadquad mathrmuse_windows == false\n endcases\n\nwhere:\n\ns_2 = s_2(s_1 s mu) = sqrts_1^2 + s^2 + 2 s_1 s mu \ny = costheta = hatmathbfs_1 cdot hatmathbfs_2 = fracmu s + s_1s_2(s_1 s mu)\nxi is the corresponding GNCxLD TPCF effect\nmathcalL_L(mu) is the Legendre polynomial of order L\nmathcalF(s mu) is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)\nmathcalN is the integrated window function norm (check the documentation of WindowFIntegrated) \n\nNote that these is an internal conversion of coordiate sistems from (s1, s, μ) to (s1, s2, y) thorugh the functions y and s2. The inverse relations are:\n\ns = s(s_1 s_2 y) = sqrts_1^2 + s_2^2 - 2 s_1 s_2 y\nmu = costheta = hatmathbfs_1 cdot hatmathbfs = fracy s_2 - s_1s(s_1 s_2 y).\n\nInputs\n\ncosmo::Cosmology : cosmology to be used in this computation\neffect::Union{String,Function} : the GR effect TPCF you want to consider; you may specify the name of the effect as one of the following strings (recommended):\nnewton_doppler , newton_lensing , newton_localgp , newton_integratedgp , doppler_doppler , doppler_lensing , doppler_localgp , doppler_integratedgp , lensing_doppler , lensing_lensing , lensing_localgp , lensing_integratedgp , localgp_doppler , localgp_lensing , localgp_localgp , localgp_integratedgp , integratedgp_doppler , integratedgp_lensing , integratedgp_localgp , integratedgp_integratedgp ,\nor directly the name of the function among the following: \nξ_GNCxLD_Newtonian_Doppler , ξ_GNCxLD_Newtonian_Lensing , ξ_GNCxLD_Newtonian_LocalGP , ξ_GNCxLD_Newtonian_IntegratedGP , ξ_GNCxLD_Doppler_Doppler , ξ_GNCxLD_Doppler_Lensing , ξ_GNCxLD_Doppler_LocalGP , ξ_GNCxLD_Doppler_IntegratedGP , ξ_GNCxLD_Lensing_Doppler , ξ_GNCxLD_Lensing_Lensing , ξ_GNCxLD_Lensing_LocalGP , ξ_GNCxLD_Lensing_IntegratedGP , ξ_GNCxLD_LocalGP_Doppler , ξ_GNCxLD_LocalGP_Lensing , ξ_GNCxLD_LocalGP_LocalGP , ξ_GNCxLD_LocalGP_IntegratedGP , ξ_GNCxLD_IntegratedGP_Doppler , ξ_GNCxLD_IntegratedGP_Lensing , ξ_GNCxLD_IntegratedGP_LocalGP , ξ_GNCxLD_IntegratedGP_IntegratedGP ,\nout::String : name of the file where the results must be stored.\nss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log).\n\nOptional arguments\n\nThis function recall internally map_ξ_GNCxLD_multipole, so the kwargs are the same; we report them for comfortness:\n\ns1 = nothing : comoving distance from the observer where the TPCF should be evaluated; if s1 = nothing, it is automatically set s1 = cosmo.s_eff from the given input cosmo::Cosmology.\nL::Int = 0: order of the Legendre polynomial to be used\nalg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):\n:quad -> the integration over mu will be preformed through the Julia function quadgk from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n:trap -> the integration over mu will be preformed through the Julia function trapz from the Trapz.jl Julia package, that uses the simple trapezoidal rulae.\n:lobatto -> the integration over mu will be preformed through the Julia function gausslobatto from the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!\nuse_windows::Bool = false: tells if the integrand must consider the two window function phi and mathcalF\nN_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\nN_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\nN_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing \npr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)\nkwargs... : other keyword arguments that will be passed to the selected GNCxLD TPCF effect (ξ_GNCxLD_Doppler, ξ_GNCxLD_Lensing, ...)\n\nSee also: integrand_ξ_GNCxLD_multipole, ξ_GNCxLD_multipole, print_map_ξ_GNCxLD_multipole, WindowFIntegrated, Cosmology, y, s2, GR_EFFECTS_GNCxLD, GaPSE.VEC_ξs_GNCxLD\n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations_2/#Two-Point-Cross-Correlation-Function-Sum-multipoles","page":"GNCxLD TPCFs","title":"Two-Point Cross-Correlation Function Sum multipoles","text":"","category":"section"},{"location":"GNCxLD_Correlations_2/","page":"GNCxLD TPCFs","title":"GNCxLD TPCFs","text":"GaPSE.sum_ξ_GNCxLD_multipole\nGaPSE.map_sum_ξ_GNCxLD_multipole\nGaPSE.print_map_sum_ξ_GNCxLD_multipole","category":"page"},{"location":"GNCxLD_Correlations_2/#GaPSE.sum_ξ_GNCxLD_multipole","page":"GNCxLD TPCFs","title":"GaPSE.sum_ξ_GNCxLD_multipole","text":"sum_ξ_GNCxLD_multipole(s1, s, cosmo::Cosmology;\n s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,\n N_lob::Int = 100, N_trap::Int = 50,\n atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,\n enhancer::Float64=1e6, N_log::Int = 1000, \n pr::Bool = true,\n kwargs...) ::Tuple{Float64, Vector{Float64}}\n\nEvaluate the multipole of order L of all the two-point cross correlation multipole between the Galaxy Number Counts (GNC) and the perturbations of the Luminosity Distance (LD) and their sum in the comoving distance s1 and a comoving distance s from it for the input cosmo::Cosmology. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThis function makes a for-loop on the GaPSE.GR_EFFECTS_GNCxLD strings, calling ξ_GNCxLD_multipole for each of them. To each string corresponds pretty intuitively one of the 20 GNCxLD effects. They are currently, in order:\n\nnewton_doppler , newton_lensing , newton_localgp , newton_integratedgp , doppler_doppler , doppler_lensing , doppler_localgp , doppler_integratedgp , lensing_doppler , lensing_lensing , lensing_localgp , lensing_integratedgp , localgp_doppler , localgp_lensing , localgp_localgp , localgp_integratedgp , integratedgp_doppler , integratedgp_lensing , integratedgp_localgp , integratedgp_integratedgp ,\n\nInputs\n\ns1: the comoving distance where must be evaluated the integral\ns: the comoving distance from s1 where must be evaluated the integral\ncosmo::Cosmology: cosmology to be used in this computation\n\nOptional arguments\n\nThis function recall internally ξ_GNCxLD_multipole, so the kwargs are the same; we report them for comfortness:\n\nL::Int = 0: order of the Legendre polynomial to be used\nalg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):\n:quad -> the integration over mu will be preformed through the Julia function quadgk from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n:trap -> the integration over mu will be preformed through the Julia function trapz from the Trapz.jl Julia package, that uses the simple trapezoidal rulae.\n:lobatto -> the integration over mu will be preformed through the Julia function gausslobatto from the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!\nuse_windows::Bool = false: tells if the integrand must consider the two window function phi and mathcalF\nN_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\nN_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\nkwargs... : other keyword arguments that will be passed to ALL the GNCxLD TPCF effect (ξ_GNCxLD_Doppler, ξ_GNCxLD_Lensing, ...); if one of them has that keyword argument, it will use the given value, otherwise it will be unaffected.\n\nReturns\n\nA tuple containing:\n\nthe sum of all the ξ multipoles as first element\na Vector{Float64} with all the values of each ξ; they are ordered following GR_EFFECTS_GNCxLD\n\nSee also: integrand_ξ_GNCxLD_multipole, ξ_GNCxLD_multipole, map_sum_ξ_GNCxLD_multipole, print_map_sum_ξ_GNCxLD_multipole, Cosmology, GR_EFFECTS_GNCxLD\n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations_2/#GaPSE.map_sum_ξ_GNCxLD_multipole","page":"GNCxLD TPCFs","title":"GaPSE.map_sum_ξ_GNCxLD_multipole","text":"map_sum_ξ_GNCxLD_multipole(\n effect::Union{String,Function}, ss = nothing;\n s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,\n N_lob::Int = 100, N_trap::Int = 50,\n atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,\n enhancer::Float64=1e6, N_log::Int = 1000, \n pr::Bool = true,\n kwargs...) ::Tuple{Vector{Float64}, Vector{Float64}, Vector{Vector{Float64}}}\n\nEvaluate the multipole of order L of all the two-point cross correlation multipole between the Galaxy Number Counts (GNC) and the perturbations of the Luminosity Distance (LD) and their sum in the comoving distance s1, for all the comoving distances stored inside ss (representing the comoving distance from s1) for the input cosmo::Cosmology. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). If s1 = nothing, it is set s1 = cosmo.s_eff. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThis function makes a for-loop on the GaPSE.GR_EFFECTS_GNCxLD strings, calling map_ξ_GNCxLD_multipole for each of them. To each string corresponds pretty intuitively one of the 20 GNCxLD effects. They are currently, in order:\n\nnewton_doppler , newton_lensing , newton_localgp , newton_integratedgp , doppler_doppler , doppler_lensing , doppler_localgp , doppler_integratedgp , lensing_doppler , lensing_lensing , lensing_localgp , lensing_integratedgp , localgp_doppler , localgp_lensing , localgp_localgp , localgp_integratedgp , integratedgp_doppler , integratedgp_lensing , integratedgp_localgp , integratedgp_integratedgp ,\n\nInputs\n\ncosmo::Cosmology : cosmology to be used in this computation\nss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). This is why it is returned also the vector of the \"input\" values.\n\nOptional arguments\n\nThis function recall internally map_ξ_GNCxLD_multipole, so the kwargs are the same; we report them for comfortness:\n\ns1 = nothing : comoving distance from the observer where the TPCF should be evaluated; if s1 = nothing, it is automatically set s1 = cosmo.s_eff from the given input cosmo::Cosmology.\nL::Int = 0: order of the Legendre polynomial to be used\nalg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):\n:quad -> the integration over mu will be preformed through the Julia function quadgk from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n:trap -> the integration over mu will be preformed through the Julia function trapz from the Trapz.jl Julia package, that uses the simple trapezoidal rulae.\n:lobatto -> the integration over mu will be preformed through the Julia function gausslobatto from the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!\nuse_windows::Bool = false: tells if the integrand must consider the two window function phi and mathcalF\n\nN_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\nN_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\nN_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing \npr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)\nkwargs... : other keyword arguments that will be passed to ALL the GNCxLD TPCF effect (ξ_GNCxLD_Doppler, ξ_GNCxLD_Lensing, ...); if one of them has that keyword argument, it will use the given value, otherwise it will be unaffected.\n\nReturns\n\nA tuple containing:\n\nas first element, the vector ss itself;\nas second one, the Vector{Float64} of the sum of all the ξ multipoles;\nas third one, a Vector{Vector{Float64}} with all the values of each ξ; they are ordered following GR_EFFECTS_GNCxLD\n\nSee also: map_ξ_GNCxLD_multipole, sum_ξ_GNCxLD_multipole, print_map_sum_ξ_GNCxLD_multipole, Cosmology, GR_EFFECTS_GNCxLD\n\n\n\n\n\n","category":"function"},{"location":"GNCxLD_Correlations_2/#GaPSE.print_map_sum_ξ_GNCxLD_multipole","page":"GNCxLD TPCFs","title":"GaPSE.print_map_sum_ξ_GNCxLD_multipole","text":"print_map_sum_ξ_GNCxLD_multipole(\n cosmo::Cosmology, out::String, ss = nothing;\n s1 = nothing, L::Int = 0, alg::Symbol = :lobatto,\n N_lob::Int = 100, N_trap::Int = 50,\n atol_quad::Float64 = 0.0, rtol_quad::Float64 = 1e-2,\n enhancer::Float64=1e6, N_log::Int = 1000, \n pr::Bool = true,\n single::Bool = true,\n kwargs...)\n\nEvaluate the multipole of order L of all the two-point cross correlation multipole between the Galaxy Number Counts (GNC) and the perturbations of the Luminosity Distance (LD) and their sum in the comoving distance s1, for all the comoving distances stored inside ss (representing the comoving distance from s1) for the input cosmo::Cosmology; finally, it saves the results inside the file out. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). If s1 = nothing, it is set s1 = cosmo.s_eff. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThis function makes a for-loop on the GaPSE.GR_EFFECTS_GNCxLD strings, calling map_ξ_GNCxLD_multipole for each of them. To each string corresponds pretty intuitively one of the 20 GNCxLD effects. They are currently, in order:\n\nnewton_doppler , newton_lensing , newton_localgp , newton_integratedgp , doppler_doppler , doppler_lensing , doppler_localgp , doppler_integratedgp , lensing_doppler , lensing_lensing , lensing_localgp , lensing_integratedgp , localgp_doppler , localgp_lensing , localgp_localgp , localgp_integratedgp , integratedgp_doppler , integratedgp_lensing , integratedgp_localgp , integratedgp_integratedgp ,\n\nInputs\n\ncosmo::Cosmology : cosmology to be used in this computation\nout::String : name of the file where the results must be stored.\nss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log).\n\nOptional arguments\n\nThis function recall internally map_ξ_GNCxLD_multipole, so the kwargs are the same; we report them for comfortness:\n\ns1 = nothing : comoving distance from the observer where the TPCF should be evaluated; if s1 = nothing, it is automatically set s1 = cosmo.s_eff from the given input cosmo::Cosmology.\nL::Int = 0: order of the Legendre polynomial to be used\nalg::Symbol = :trap : algorithm to be used for the integration; the valid options are (other values will lead to AssertionError):\n:quad -> the integration over mu will be preformed through the Julia function quadgk from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n:trap -> the integration over mu will be preformed through the Julia function trapz from the Trapz.jl Julia package, that uses the simple trapezoidal rulae.\n:lobatto -> the integration over mu will be preformed through the Julia function gausslobatto from the FastGaussQuadrature.jl Julia package, that uses the Gauss-Lobatto quadrature. WE RECOMMEND TO USE :quad FOR MONOPOLES AND :lobatto FOR HIGHER ORDER MULTIPOLES!\nuse_windows::Bool = false: tells if the integrand must consider the two window function phi and mathcalF\n\nN_lob::Int = 100 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\nN_trap::Int = 200 : number of points to be used in the sampling made by the function trapz. Note that these options will have an effect only if you se alg = :quad.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly. Note that these options will have an effect only if you se alg = :quad.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\nN_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing \npr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)\nsingle::Bool = true : if true, all the CFs are printed inside the file of the sum, in a table with 18 columns (first one for ss, second for their sum an the next 20 for each effect). Otherwise, a new directory \"allstandalonesCFs\" is created (in the same path given in out) and they are separately saved in files there placed.\nkwargs... : other keyword arguments that will be passed to ALL the GNCxLD TPCF effect (ξ_GNCxLD_Doppler, ξ_GNCxLD_Lensing, ...); if one of them has that keyword argument, it will use the given value, otherwise it will be unaffected.\n\nSee also: map_ξ_GNCxLD_multipole, sum_ξ_GNCxLD_multipole, map_sum_ξ_GNCxLD_multipole, Cosmology, GR_EFFECTS_GNCxLD\n\n\n\n\n\n","category":"function"},{"location":"PowerSpectra/","page":"Calculating Power Spectra","title":"Calculating Power Spectra","text":"DocTestSetup = quote\n using GaPSE\nend","category":"page"},{"location":"PowerSpectra/#Fast-Fourier-Transforms-and-Power-Spectra","page":"Calculating Power Spectra","title":"Fast Fourier Transforms and Power Spectra","text":"","category":"section"},{"location":"PowerSpectra/#The-FFTLog-package","page":"Calculating Power Spectra","title":"The FFTLog package","text":"","category":"section"},{"location":"PowerSpectra/","page":"Calculating Power Spectra","title":"Calculating Power Spectra","text":"GaPSE.FFTLog.AbstractPlan\nGaPSE.FFTLog._c_window\nGaPSE.FFTLog._logextrap\nGaPSE.FFTLog._zeropad\nGaPSE.FFTLog._eval_cm!\nGaPSE.FFTLog._eval_ηm!\n\nGaPSE.FFTLog.SingleBesselPlan\nGaPSE.FFTLog.HankelPlan\nGaPSE.FFTLog._eval_gl\nGaPSE.FFTLog._eval_y!\nGaPSE.FFTLog._eval_gl_hm!\nGaPSE.FFTLog.prepare_FFTLog!\nGaPSE.FFTLog.prepare_Hankel!\nGaPSE.FFTLog.get_y\nGaPSE.FFTLog.evaluate_FFTLog\nGaPSE.FFTLog.evaluate_Hankel\nGaPSE.FFTLog.evaluate_Hankel!","category":"page"},{"location":"PowerSpectra/#GaPSE.FFTLog.AbstractPlan","page":"Calculating Power Spectra","title":"GaPSE.FFTLog.AbstractPlan","text":"abstract type AbstractPlan end\n\nThe abstract type of all the Plan to be used in the code. At the moment, they are:\n\nSingleBesselPlan\nHankelPlan\n\n\n\n\n\n","category":"type"},{"location":"PowerSpectra/#GaPSE.FFTLog._c_window","page":"Calculating Power Spectra","title":"GaPSE.FFTLog._c_window","text":"_c_window(N::AbstractArray, NCut::Int)\n\nReturns the smoothing window function W(x N_mathrmcut) as defined in Eq. (C.1) of McEwen et al. (2016):\n\nW(x) = begincases\n displaystyle\n fracx - x_mathrmminx_mathrmleft - x_mathrmmin - frac12pisinleft( 2pi fracx - x_mathrmminx_mathrmleft - x_mathrmminright) quadquad\n x x_mathrmleft12pt\n displaystyle\n 1 quadquadquadquadquadquadquadquad \n quadquadquadquadquadquadquad \n x_mathrmleft leq x leq x_mathrmright8pt\n displaystyle\n fracx_mathrmmax - xx_mathrmmax - x_mathrmright -\n frac12pisinleft(\n 2pi fracx_mathrmmax - xx_mathrmmax - x_mathrmright\n right) quad x x_mathrmright\nendcases\n\n\n\n\n\n","category":"function"},{"location":"PowerSpectra/#GaPSE.FFTLog._logextrap","page":"Calculating Power Spectra","title":"GaPSE.FFTLog._logextrap","text":"_logextrap(x::Vector, \n n_extrap_low::Int, n_extrap_high::Int) ::Vector\n\nGiven an input LOGARITHMICALLY SPACED vector of values x, expands that vector adding n_extrap_low point on the left and n_extrap_high on the right. Consequently, for an input x of N values, it returns a vector X with length N + n_extrap_low + n_extrap_right.\n\nIt is not assumed that the spacing is the same in the two edges of the data.\n\n\n\n\n\n","category":"function"},{"location":"PowerSpectra/#GaPSE.FFTLog._zeropad","page":"Calculating Power Spectra","title":"GaPSE.FFTLog._zeropad","text":"_zeropad(x::Vector, n_pad::Int)::Vector\n\nConcatenates n_pad zeros both on the left and on the right of the input vector x. Consequently, for an input x of N values, it returns a vector X with length N + 2 * n_pad.\n\n\n\n\n\n","category":"function"},{"location":"PowerSpectra/#GaPSE.FFTLog._eval_cm!","page":"Calculating Power Spectra","title":"GaPSE.FFTLog._eval_cm!","text":"_eval_cm!(plan::AbstractPlan, fx)\n\nGiven a plan::AbstractPlan, compute the power-law expansion coefficients c_m of the input data vector fx. It is assumed that fx contains the y-axis values corresponding to the x-axis ones plan.x, and consequently their length must be the same. The computed cm vector is stored in plan.cm, and nothing is returned.\n\nFor a function f evaluated the N x-axis values x, the c_m coefficients are\n\nc_m = W_m sum_q=0^N-1 fracf(x_q)x_q^nu e^-frac2piNi m q\n\nwhere W_m is the smoothing window function computed via _c_window and nu is the bias parameter stored in plan.ν\n\nSee also: _c_window, AbstractPlan\n\n\n\n\n\n","category":"function"},{"location":"PowerSpectra/#GaPSE.FFTLog._eval_ηm!","page":"Calculating Power Spectra","title":"GaPSE.FFTLog._eval_ηm!","text":"_eval_ηm!(plan::AbstractPlan)\n\nGiven an input plan::AbstractPlan, compute all the eta_m coefficients, defined as follows:\n\neta_m = frac2 pi mN Delta_ln x \n\nwhere N, Delta_ln x and the m vector are respectively plan.N, plan.d_ln_x and plan.m.\n\nThe computed ηm vector is stored in plan.cm, and nothing is returned.\n\nSee also: AbstractPlan\n\n\n\n\n\n","category":"function"},{"location":"PowerSpectra/#GaPSE.FFTLog.SingleBesselPlan","page":"Calculating Power Spectra","title":"GaPSE.FFTLog.SingleBesselPlan","text":"mutable struct SingleBesselPlan{T,C} <: AbstractPlan\n\nThis struct contains all the elements necessary to evaluate the integral with one Bessel function. All the arguments of this struct are keyword arguments. Here we show the compelte list and their default values:\n\nx::Vector{T} : the LOGARITHMICALLY SPACED vector of x-axis values. You need always to provide this vector.\ny::Matrix{T} = zeros(10, 10) : the logarithmically spaced vector of the values where the transformed function will be evaluated. It has the same length of x\nfy::Matrix{T} = zeros(10, 10) : the y-axis of the transformed function; it is a vector if only one Bessel function order is provided in the functions\nhm::Matrix{C} = zeros(ComplexF64, 10, 10) : matrix of the coefficients h_m = c_m h_m mathrmcorr g_ell, where c_ms, h_m mathrmcorrs and g_ell are respectively stored in plan.cm, plan.hm_corr and plan.gl. Each column contains all the h_ms for a given spherical Bessel order ell. \nhm_corr::Matrix{C} = zeros(ComplexF64, 10, 10) : matrix of the coefficients h_m mathrmcorr = (x_0 y_0)^- i eta_m, where eta_m = frac2 pi mN Delta_ln x and x_0 and y_0 are the smallest values of plan.x and plan.y, respectively. Each column contains all the h_m mathrmcorrs for a given spherical Bessel order ell. \nd_ln_x::T = log(x[2] / x[1]) : the spacing between the x elements.\nfy_corr::Matrix{T} = zeros(10, 10) : matrix of the coefficients K(y) = fracsqrtpi4 y^nu, where nu is the bias paremeter stored in plan.ν. Each column contains all the h_m mathrmcorrs for a given spherical Bessel order ell. \n\noriginal_length::Int = length(x) : the original inpout length of the x vector; it is stored because, for numerical stability purposes, during the computation this vector is expanded at the edged, and so the input function ones. \ngl::Matrix{C} = zeros(ComplexF64, 100, 100) : vector with the g_ell values for all the input spherical Bessel order.\nν::T = 1.01 : bias parameter.\nn_extrap_low::Int = 0 : number of points to concatenate on the left of x, logarithmically distributed with the same ratio of the left-edge elements of x\nn_extrap_high::Int = 0 : number of points to concatenate on the right of x, logarithmically distributed with the same ratio of the right-edge elements of x\nc_window_width::T = 0.25 : position where the tapering by the window function begins; by default c_window_width= 0.25, so is begins when m = pm 075 times N2, where N is the size of the input array.\nn_pad::Int = 0 : number of zeros to be concatenated both on the left and on the right of the input function.\nn::Int = 0 : the derivative order for the spherical Bessel function.\nN::Int = original_length + n_extrap_low + n_extrap_high + 2 * n_pad : number of points where the input function is known; are considered both the \"true values\" and the fake ones, added for a more numerically stable fft. \nm::Vector{T} = zeros(N) : vector with all the indexes that will be used for the power-law expansion of the input function\ncm::Vector{C} = zeros(ComplexF64, N) : vector containing all the input function power-law exapnsion c_m coefficients.\nηm::Vector{T} = zeros(N) : vector of all the eta_m = frac2 pi mN Delta_ln x coefficients.\nplan_rfft::FFTW.rFFTWPlan = plan_rfft(randn(1024)) : a random initialized fft plan of FFTW\nplan_irfft = plan_irfft( randn(Complex{Float64}, 2, Int(floor((original_length + n_extrap_low + n_extrap_high + 2 * n_pad)) / 2) + 1), original_length + n_extrap_low + n_extrap_high + 2 * n_pad, 2 ) : \n\nSee also: AbstractPlan\n\n\n\n\n\n","category":"type"},{"location":"PowerSpectra/#GaPSE.FFTLog.HankelPlan","page":"Calculating Power Spectra","title":"GaPSE.FFTLog.HankelPlan","text":"mutable struct HankelPlan{T,C} <: AbstractPlan\n\nA specific type of FFTLogPlan designed for the Hankel transform. Its arguments are the same of SingleBesselPlan, checks its documentation for more information.\n\nSee also: SingleBesselPlan, AbstractPlan\n\n\n\n\n\n","category":"type"},{"location":"PowerSpectra/#GaPSE.FFTLog._eval_gl","page":"Calculating Power Spectra","title":"GaPSE.FFTLog._eval_gl","text":"_eval_gl(ell, z::Vector, n::Int )::Vector\n\nEvaluate the g_ell coefficients, defined as\n\ng_ell^(n)(z) = (-1)^n 2^z-n frac\n Gammaleft(fracell + z - n2right)\n \n Gammaleft(frac3 + ell + n - z2right)\n \n\n\n\n\n\n","category":"function"},{"location":"PowerSpectra/#GaPSE.FFTLog._eval_y!","page":"Calculating Power Spectra","title":"GaPSE.FFTLog._eval_y!","text":"_eval_y!(plan::Union{SingleBesselPlan, HankelPlan}, ell::Vector)\n\nGiven an input plan::Union{SingleBesselPlan, HankelPlan}, compute the y values where the output function will be evaluated and the coefficient K(y) outside the IFFT. They are, respectively:\n\ny = fracell + 1x quadquad K(y) = fracsqrtpi4 y^nu\n\nThe vector of their values are stored respectively in plan.y and plan.fy_corr, and nothing is returned.\n\nSee also: SingleBesselPlan, HankelPlan\n\n\n\n\n\n","category":"function"},{"location":"PowerSpectra/#GaPSE.FFTLog._eval_gl_hm!","page":"Calculating Power Spectra","title":"GaPSE.FFTLog._eval_gl_hm!","text":"_eval_gl_hm!(plan::Union{SingleBesselPlan, HankelPlan}, ell::Vector)\n\nGiven an input plan::Union{SingleBesselPlan, HankelPlan}, compute the g_ell values and the h_m mathrmcorr coefficents inside the IFFT. They are, respectively:\n\ng_ell^(n)(z) = (-1)^n 2^z-n frac\n Gammaleft(fracell + z - n2right)\n \n Gammaleft(frac3 + ell + n - z2right)\n quadquad \nh_m mathrmcorr = (x_0 y_0)^- i eta_m\n\nwhere eta_m = frac2 pi mN Delta_ln x, and x_0 y_0 are the smallest values of plan.x and plan.y, respectively. \n\nThe vector of their values are stored in plan.gl and plan.hy_corr, and nothing is returned.\n\nSee also: SingleBesselPlan, HankelPlan\n\n\n\n\n\n","category":"function"},{"location":"PowerSpectra/#GaPSE.FFTLog.prepare_FFTLog!","page":"Calculating Power Spectra","title":"GaPSE.FFTLog.prepare_FFTLog!","text":"prepare_FFTLog!(plan::Union{SingleBesselPlan, HankelPlan}, ell::Vector)\n\nGiven an input plan::Union{SingleBesselPlan, HankelPlan}, pre-plan an optimized real-input FFT for all the Bessel function orders stored in the vector ell. In other words, it computes:\n\nthe y vector of values where the transformed will be evaluated (stored in plan.y).\nthe corresponding gl vector of g_ell values (stored in plan.gl).\nthe m vector of indexes for the c_m coefficents (stored in plan.m).\nthe corresponding ηm and hm_corr vector of eta_m and h_m mathrmcorr values (stored in plan.ηm and plan.hm_corr).\n\nSee also: SingleBesselPlan, HankelPlan\n\n\n\n\n\n","category":"function"},{"location":"PowerSpectra/#GaPSE.FFTLog.prepare_Hankel!","page":"Calculating Power Spectra","title":"GaPSE.FFTLog.prepare_Hankel!","text":"prepare_Hankel!(plan::HankelPlan, ell::Vector)\n\nGiven an input plan::HankelPlan, pre-plan an optimized real-input FFT for all the Bessel function orders stored in the vector ell concerning an Hankel transform. Same as prepare_FFTLog, checks its documentation for more information.\n\nSee also: HankelPlan, prepare_FFTLog!\n\n\n\n\n\n","category":"function"},{"location":"PowerSpectra/#GaPSE.FFTLog.get_y","page":"Calculating Power Spectra","title":"GaPSE.FFTLog.get_y","text":"get_y(plan::Union{SingleBesselPlan, HankelPlan})::Vector\n\nReturn the computed y vector, containing the values where the transformed function will be evaluated.\n\nSee also: SingleBesselPlan, HankelPlan\n\n\n\n\n\n","category":"function"},{"location":"PowerSpectra/#GaPSE.FFTLog.evaluate_FFTLog","page":"Calculating Power Spectra","title":"GaPSE.FFTLog.evaluate_FFTLog","text":"evaluate_FFTLog(plan::AbstractPlan, fx)::Union{Vector, Matrix}\n\nGiven an input plan::AbstractPlan, evaluate the FFT fy of the fx y-axis data on the basis of the parameters stored in plan. The result is both stored in plan.fy and retuned as output.\n\nSee also: AbstractPlan\n\n\n\n\n\nevaluate_FFTLog(plan::Union{SingleBesselPlan, HankelPlan}, fx)::Union{Vector, Matrix}\n\nGiven an input plan::Union{SingleBesselPlan, HankelPlan}, evaluate the FFT fy of the fx y-axis data on the basis of the parameters stored in plan. The result is both stored in plan.fy and retuned as output.\n\nSee also: SingleBesselPlan,HankelPlan \n\n\n\n\n\n","category":"function"},{"location":"PowerSpectra/#GaPSE.FFTLog.evaluate_Hankel","page":"Calculating Power Spectra","title":"GaPSE.FFTLog.evaluate_Hankel","text":"evaluate_Hankel(plan::HankelPlan, fx)::Union{Vector, Matrix}\n\nGiven an input plan::HankelPlan, evaluate the FFT fy of the fx y-axis data on the basis of the parameters stored in plan for an Hankel transform. The result is both stored in plan.fy and retuned as output.\n\nSee also: HankelPlan\n\n\n\n\n\n","category":"function"},{"location":"PowerSpectra/#GaPSE.FFTLog.evaluate_Hankel!","page":"Calculating Power Spectra","title":"GaPSE.FFTLog.evaluate_Hankel!","text":"evaluate_Hankel!(fy, plan::HankelPlan, fx)\n\nGiven an input plan::HankelPlan, evaluate the FFT fy of the fx y-axis data on the basis of the parameters stored in plan for an Hankel transform. The result is stored both in plan.fy and in the input fy.\n\nSee also: HankelPlan\n\n\n\n\n\n","category":"function"},{"location":"PowerSpectra/#The-Power-Spectrum-with-FFTLog","page":"Calculating Power Spectra","title":"The Power Spectrum with FFTLog","text":"","category":"section"},{"location":"PowerSpectra/","page":"Calculating Power Spectra","title":"Calculating Power Spectra","text":"GaPSE.FFTLog_PS_multipole\nGaPSE.FFTLog_all_PS_multipole","category":"page"},{"location":"PowerSpectra/#GaPSE.FFTLog_PS_multipole","page":"Calculating Power Spectra","title":"GaPSE.FFTLog_PS_multipole","text":"FFTLog_PS_multipole(ss, xis;\n pr::Bool=true,\n L::Int=0, ν::Union{Float64,Nothing}=nothing,\n n_extrap_low::Int=500,\n n_extrap_high::Int=500, n_pad::Int=500,\n )\n\nComputes the Power Spectrum through the FFTLog algorithm. More precisely, it computes the L-order PS multipole through the following Fast Fourier Transform and the effective redshift approximation\n\nP_L(k) = frac2 L + 1A^ (-i)^L phi(s_mathrmeff) int_0^infty \n mathrmd s s^2 j_L(ks) f_mathrmin(s) \n quad A^ = frac14pi\n\nwhere f_mathrmin is the function samples by ss and xis.\n\nOptional arguments\n\npr::Bool=true : want to print the automatic messages to the screen?\nL::Int=0 : which multipole order should I use for this computation? IT MUST MATCH THE MULTIPOLE ORDER OF THE INPUT TPCF!\nν::Union{Float64,Nothing} = nothing : bias parameter, i.e. exponent used to \"balance\" the curve; if nothing, will be set automatically to 1.5\nn_extrap_low::Int = 500 and n_extrap_high::Int = 500 : number of points to concatenate on the left/right of the input x-axis ss vector, logarithmically distributed with the same ratio of the left/right-edge elements of ss.\nn_pad::Int = 500 : number of zeros to be concatenated both on the left and on the right of the input function. They stabilize a lot the algorithm.\n\nSee also: PS_multipole\n\n\n\n\n\n","category":"function"},{"location":"PowerSpectra/#GaPSE.FFTLog_all_PS_multipole","page":"Calculating Power Spectra","title":"GaPSE.FFTLog_all_PS_multipole","text":"FFTLog_all_PS_multipole(input::String,\n group::String=VALID_GROUPS[end];\n L::Int=0, pr::Bool=true,\n ν::Union{Float64,Nothing,Vector{Float64}}=nothing,\n n_extrap_low::Int=500,\n n_extrap_high::Int=500, n_pad::Int=500\n)\n\nComputes the Power Spectrum through the FFTLog algorithm for a set of TPCFs. More precisely, it read the input file input, taking the first column as the x-axis ss vector and the following columns as the y-axis ones, and computes the L-order PS multipole through the following Fast Fourier Transform and the effective redshift approximation\n\nP_L(k) = frac2 L + 1A^ (-i)^L phi(s_mathrmeff) int_0^infty \n mathrmd s s^2 j_L(ks) f_mathrmin(s) \n quad A^ = frac14pi\n\nwhere f_mathrmin is the function samples by ss and each y-axis xis.\n\nThe group::String=VALID_GROUPS[end] argument allow you to specify the group of the input TPCF, if they were computed through GAPSE. The allowed values for this argument are: LD , GNC , GNCxLD , LDxGNC , generic ,\n\nIf you choose a group pay attention that the number of input TPCF must match the group number (16, 25, 20 and 20 respectively). The last group name (which is also the default value) is used in case the input xis do not belog to a specific group (and so no predefined number is expected).\n\nOptional arguments\n\nL::Int=0 : which multipole order should I use for this computation? IT MUST MATCH THE MULTIPOLE ORDER OF THE INPUT TPCF!\npr::Bool=true : want to print the automatic messages to the screen?\nν::Union{Float64,Nothing} = nothing : bias parameter, i.e. exponent used to \"balance\" the curve; if nothing, will be set automatically to 1.5\nn_extrap_low::Int = 500 and n_extrap_high::Int = 500 : number of points to concatenate on the left/right of the input x-axis ss vector, logarithmically distributed with the same ratio of the left/right-edge elements of ss.\nn_pad::Int = 500 : number of zeros to be concatenated both on the left and on the right of the input function. They stabilize a lot the algorithm.\ncut_first_n::Int=0 and cut_last_n::Int=0 : you can cout the first and/or last n elements of the input data, if they are highly irregular.\n\nSee also: FFTLog_PS_multipole, PS_multipole\n\n\n\n\n\n","category":"function"},{"location":"PowerSpectra/#The-Power-Spectrum-with-TwoFAST","page":"Calculating Power Spectra","title":"The Power Spectrum with TwoFAST","text":"","category":"section"},{"location":"PowerSpectra/","page":"Calculating Power Spectra","title":"Calculating Power Spectra","text":"GaPSE.TwoFAST_PS_multipole\nGaPSE.TwoFAST_all_PS_multipole","category":"page"},{"location":"PowerSpectra/#GaPSE.TwoFAST_PS_multipole","page":"Calculating Power Spectra","title":"GaPSE.TwoFAST_PS_multipole","text":"TwoFAST_PS_multipole(f_in;\n int_s_min::Float64 = 1e-1, int_s_max::Float64 = 1e3,\n L::Int = 0, N::Int = 1024, pr::Bool = true,\n k0::Union{Nothing,Float64} = nothing,\n right::Union{Float64,Nothing} = nothing\n) ::Tuple{Vector{Float64}, Vector{Float64}}\n\nComputes the Power Spectrum from the input spline f_in through the TwoFAST xicalc function of the TwoFAST Julia package. More precisely, it computes the L-order PS multipole through the following Fast Fourier Transform and the effective redshift approximation\n\nP_L(k) = frac2 L + 1A^ (-i)^L phi(s_mathrmeff) int_0^infty \n mathrmd s s^2 j_L(ks) f_mathrmin(s) \n quad A^ = frac14pi\n\nwhere f_mathrmin is the inpunt spline.\n\nOptional arguments\n\npr::Bool=true : want to print the automatic messages to the screen?\nL::Int=0 : which multipole order should I use for this computation? IT MUST MATCH THE MULTIPOLE ORDER OF THE INPUT TPCF!\nN::Int = 1024 : number of points to be used in Fourier transform \nint_s_min::Float64 = 1e-1 and int_s_max::Float64 = 1e3: extremes of integration\nk0::Union{Nothing,Float64} = nothing : starting point for the xicalc function; if nothing, it will be set k0 = 1.0 / int_s_max\nright::Union{Float64,Nothing} = nothing : do you want to cut the output elements with ks .> right? if set to nothing, no cut will be done.\n\nSee also: PS_multipole\n\n\n\n\n\nTwoFAST_PS_multipole(ss, fs;\n int_s_min::Float64 = 1e-1, int_s_max::Float64 = 1e3,\n epl::Bool = true, pr::Bool = true, L::Int = 0,\n N_left::Int = 12, N_right::Int = 12,\n p0_left = [-2.0, 1.0], p0_right = [-2.0, 1.0],\n k0::Union{Nothing,Float64} = nothing\n) ::Tuple{Vector{Float64}, Vector{Float64}}\n\nTakes the input data vector ss and fs and creates a spline from them, passing it as input tho the other TwoFAST_PS_multipole method. Depending on the options, it may create also a power law epansions on the edges.\n\nOptional arguments\n\npr::Bool=true : want to print the automatic messages to the screen?\nL::Int=0 : which multipole order should I use for this computation? IT MUST MATCH THE MULTIPOLE ORDER OF THE INPUT TPCF!\nepl::Bool=true : do you want to extend the edges of the input vectors using two fitted power-laws (obtained from EPLs)\nN_left::Int = 12 and N_right::Int = 12 : number of points from left right edges to be used for the power law fitting in EPLs. They matters only if in the given input file ξ is not defined until the extremes of integration int_s_min and int_s_max.\nint_s_min::Float64 = 1e-1 and int_s_max::Float64 = 1e3: extremes of integration; if epl is set to false, their values will be automatically set to min(ss...) and max(ss...) respectively. Their values do matter only if epl=true. \np0_left=[-2.0, 1.0] and p0_right=[-2.0, 1.0]: vectors with the initial values for the left/right power-law fitting of EPLs; the power-law is in the form y = f(x) = b * x^s, so the first vector value is the initial value of s (and of course the second is the one of b).\nk0::Union{Nothing,Float64} = nothing : starting point for the xicalc function; if nothing, it will be set k0 = 1.0 / max(ss...)\nright::Union{Float64,Nothing} = nothing : do you want to cut the output elements with ks .> right? if set to nothing, no cut will be done.\nN::Int = 1024 : number of points to be used in Fourier transform \ncut_first_n::Int=0 and cut_last_n::Int=0 : you can cout the first and/or last n elements of the input data, if they are highly irregular.\n\nSee also: PS_multipole\n\n\n\n\n\n","category":"function"},{"location":"PowerSpectra/#GaPSE.TwoFAST_all_PS_multipole","page":"Calculating Power Spectra","title":"GaPSE.TwoFAST_all_PS_multipole","text":"TwoFAST_all_PS_multipole(input::String,\n group::String=VALID_GROUPS[end];\n L::Int = 0, pr::Bool = true, \n kwargs...)\n\nComputes the Power Spectrum through the TwoFAST xicalc function of the TwoFAST Julia package for a set of TPCFs. More precisely, it read the input file input, taking the first column as the x-axis ss vector and the following columns as the y-axis ones, and computes the L-order PS multipole through the following Fast Fourier Transform and the effective redshift approximation\n\nP_L(k) = frac2 L + 1A^ (-i)^L phi(s_mathrmeff) int_0^infty \n mathrmd s s^2 j_L(ks) f_mathrmin(s) \n quad A^ = frac14pi\n\nwhere f_mathrmin is the function samples by ss and each y-axis xis.\n\nThe group::String=VALID_GROUPS[end] argument allow you to specify the group of the input TPCF, if they were computed through GAPSE. The allowed values for this argument are: LD , GNC , GNCxLD , LDxGNC , generic ,\n\nIf you choose a group pay attention that the number of input TPCF must match the group number (16, 25, 20 and 20 respectively). The last group name (which is also the default value) is used in case the input xis do not belog to a specific group (and so no predefined number is expected).\n\nOptional arguments\n\npr::Bool=true : want to print the automatic messages to the screen?\nL::Int=0 : which multipole order should I use for this computation? IT MUST MATCH THE MULTIPOLE ORDER OF THE INPUT TPCF!\nepl::Bool=true : do you want to extend the edges of the input vectors using two fitted power-laws (obtained from EPLs)\nN_left::Int = 12 and N_right::Int = 12 : number of points from left right edges to be used for the power law fitting in EPLs. They matters only if in the given input file ξ is not defined until the extremes of integration int_s_min and int_s_max.\nint_s_min::Float64 = 1e-1 and int_s_max::Float64 = 1e3: extremes of integration; if epl is set to false, their values will be automatically set to min(ss...) and max(ss...) respectively. Their values do matter only if epl=true. \np0_left=[-2.0, 1.0] and p0_right=[-2.0, 1.0]: vectors with the initial values for the left/right power-law fitting of EPLs; the power-law is in the form y = f(x) = b * x^s, so the first vector value is the initial value of s (and of course the second is the one of b).\nk0::Union{Nothing,Float64} = nothing : starting point for the xicalc function; if nothing, it will be set k0 = 1.0 / max(ss...)\nright::Union{Float64,Nothing} = nothing : do you want to cut the output elements with ks .> right? if set to nothing, no cut will be done.\nN::Int = 1024 : number of points to be used in Fourier transform \ncut_first_n::Int=0 and cut_last_n::Int=0 : you can cout the first and/or last n elements of the input data, if they are highly irregular.\n\nSee also: TwoFAST_PS_multipole, PS_multipole\n\n\n\n\n\n","category":"function"},{"location":"PowerSpectra/#The-Power-Spectrum-multipole-computation","page":"Calculating Power Spectra","title":"The Power Spectrum multipole computation","text":"","category":"section"},{"location":"PowerSpectra/","page":"Calculating Power Spectra","title":"Calculating Power Spectra","text":"GaPSE.PS_multipole\nGaPSE.print_PS_multipole\nGaPSE.all_PS_multipole\nGaPSE.print_all_PS_multipole","category":"page"},{"location":"PowerSpectra/#GaPSE.PS_multipole","page":"Calculating Power Spectra","title":"GaPSE.PS_multipole","text":"PS_multipole(ss, fs; \n pr::Bool = true, L::Int = 0, \n alg::Symbol = :fftlog, \n cut_first_n::Int = 0, cut_last_n::Int = 0, \n kwargs...\n ) ::Tuple{Vector{Float64}, Vector{Float64}}\n\nPS_multipole(input::String; \n kwargs...)\n\nReturn the L-order PS multipole through the following Fast Fourier Transform and the effective redshift approximation:\n\nP_L(k) = frac2 L + 1A^ (-i)^L phi(s_mathrmeff) int_0^infty \n mathrmd s s^2 j_L(ks) f_mathrmin(s) \n quad A^ = frac14pi\n\nThe second method reads the input file, takes the first column as ss and the second as fs and recalls the first method.\n\nCurrenlty, there are two algorithms you can choose in order to perform the computation; you can choose which one to use through the keyword value alg:\n\nalg = :fftlog (default and recommended option) will employ the FFTLog algorithm.\nalg = :twofast will employ the TwoFAST xicalc function of the TwoFAST Julia package. Note that in the computation the integration range 0leq s leq infty is reduced to int_s_min ≤ s ≤ int_s_max. This alogrithm is not the ideal choise, because TwoFAST is conceived for the direction PS -> TPCF, while is not 100% trustworthy for the other way round.\n\nIMPORTANT: no matter which algorithm you choose, you will need to give the input data in a LOGARITHMICALLY DISTRIBUTED scale. A linear distribution does not fit for the algorithms to apply.\n\nOptional arguments\n\nDepending on the algorithm you choose, the options would change. The options in common are:\n\npr::Bool=true : want to print the automatic messages to the screen?\nL::Int=0 : which multipole order should I use for this computation? IT MUST MATCH THE MULTIPOLE ORDER OF THE INPUT TPCF!\ncut_first_n::Int=0 and cut_last_n::Int=0 : you can cout the first and/or last n elements of the input data, if they are highly irregular.\n\nThe specific ones for alg = :fftlog are:\n\nν::Union{Float64,Nothing} = nothing : bias parameter, i.e. exponent used to \"balance\" the curve; if nothing, will be set automatically to 1.5\nn_extrap_low::Int = 500 and n_extrap_high::Int = 500 : number of points to concatenate on the left/right of the input x-axis ss vector, logarithmically distributed with the same ratio of the left/right-edge elements of ss.\nn_pad::Int = 500 : number of zeros to be concatenated both on the left and on the right of the input function. They stabilize a lot the algorithm.\n\nThe specific ones for alg = :twofast are:\n\nepl::Bool=true : do you want to extend the edges of the input vectors using two fitted power-laws (obtained from EPLs)\nN_left::Int = 12 and N_right::Int = 12 : number of points from left right edges to be used for the power law fitting in EPLs. They matters only if in the given input file ξ is not defined until the extremes of integration int_s_min and int_s_max.\nint_s_min::Float64 = 1e-1 and int_s_max::Float64 = 1e3: extremes of integration; if epl is set to false, their values will be automatically set to min(ss...) and max(ss...) respectively. Their values do matter only if epl=true. \np0_left=[-2.0, 1.0] and p0_right=[-2.0, 1.0]: vectors with the initial values for the left/right power-law fitting of EPLs; the power-law is in the form y = f(x) = b * x^s, so the first vector value is the initial value of s (and of course the second is the one of b).\nk0::Union{Nothing,Float64} = nothing : starting point for the xicalc function; if nothing, it will be set k0 = 1.0 / max(ss...)\nright::Union{Float64,Nothing} = nothing : do you want to cut the output elements with ks .> right? if set to nothing, no cut will be done.\nN::Int = 1024 : number of points to be used in Fourier transform \n\nAnalytical derivation\n\nThe analytical expression previously showed can be easily obtained from the standard one:\n\nbeginsplit\n P_L(k) = frac2 L + 1A (-i)^L \n int_0^infty mathrmd s_1 s_1^2 \n int_0^infty mathrmd s s^2 \n int_-1^+1 mathrmd mu \n j_L(ks) xi(s_1 s mu) phi(s_1) phi(s_2) \n mathcalL_L(mu) Fleft(fracss_1 mu right) \n mathrmwith s_2 = s_2(s_1 s μ) = sqrts_1^2 + s^2 + 2s_1smu\n \n quad A(s_mathrmmax s_mathrmmin theta_mathrmmax) \n frac\n V(s_mathrmmax s_mathrmmin theta_mathrmmax)\n 4 pi^2\nendsplit\n\nwith the definition\n\nf_mathrmin(s_1 s) = int_-1^+1 mathrmd mu \n xi(s_1 s mu) phi(s_2) \n mathcalL_L(mu) Fleft(fracss_1 mu right)\n\nand the application of the effective redshift approximation.\n\nReturns\n\nA Tuple{Vector{Float64}, Vector{Float64}} with:\n\nthe k values vector as first element;\nthe correspoding PS pk values vector as second one.\n\nSee also: V_survey, A, A_prime, EPLs, print_PS_multipole\n\n\n\n\n\n","category":"function"},{"location":"PowerSpectra/#GaPSE.print_PS_multipole","page":"Calculating Power Spectra","title":"GaPSE.print_PS_multipole","text":"print_PS_multipole(ss, fs, out::String;\n L::Int=0, pr::Bool=true, alg::Symbol=:fftlog, kwargs...)\nprint_PS_multipole(input::String, out::String;\n kwargs...)\n\nTakes in input a filename input where is stored a TPCF multipole, calculate the L-order PS multipole through the following Fast Fourier Transform and the effective redshift approximation\n\nP_L(k) = frac2 L + 1A^ (-i)^L phi(s_mathrmeff) int_0^infty \n mathrmd s s^2 j_L(ks) f_mathrmin(s) \n quad A^ = frac14pi\n\nwhere f_mathrmin is the function samples by ss and xis, and save it in the file out, together with the options used for the computation.\n\nThe second method reads the input file, takes the first column as ss and the second as fs and recalls the first method.\n\nOptional arguments\n\nDepending on the algorithm you choose, the options would change. The options in common are:\n\npr::Bool=true : want to print the automatic messages to the screen?\nL::Int=0 : which multipole order should I use for this computation? IT MUST MATCH THE MULTIPOLE ORDER OF THE INPUT TPCF!\ncut_first_n::Int=0 and cut_last_n::Int=0 : you can cout the first and/or last n elements of the input data, if they are highly irregular.\nalg::Symbol = :fftlog : algorithm to be used for the computation. Currenlty, there are two algorithms you can coose in order to perform the computation:\nalg = :fftlog (default and recommended option) will employ the FFTLog algorithm.\nalg = :twofast will employ the TwoFAST xicalc function of the TwoFAST Julia package. Note that in the computation the integration range 0leq s leq infty is reduced to int_s_min ≤ s ≤ int_s_max. This alogrithm is not the ideal choise, because TwoFAST is conceived for the direction PS -> TPCF, while is not 100% trustworthy for the other way round.\n\nThe specific ones for alg = :fftlog are:\n\nν::Union{Float64,Nothing} = nothing : bias parameter, i.e. exponent used to \"balance\" the curve; if nothing, will be set automatically to 1.5\nn_extrap_low::Int = 500 and n_extrap_high::Int = 500 : number of points to concatenate on the left/right of the input x-axis ss vector, logarithmically distributed with the same ratio of the left/right-edge elements of ss.\nn_pad::Int = 500 : number of zeros to be concatenated both on the left and on the right of the input function. They stabilize a lot the algorithm.\n\nThe specific ones for alg = :twofast are:\n\nepl::Bool=true : do you want to extend the edges of the input vectors using two fitted power-laws (obtained from EPLs)\nN_left::Int = 12 and N_right::Int = 12 : number of points from left right edges to be used for the power law fitting in EPLs. They matters only if in the given input file ξ is not defined until the extremes of integration int_s_min and int_s_max.\nint_s_min::Float64 = 1e-1 and int_s_max::Float64 = 1e3: extremes of integration; if epl is set to false, their values will be automatically set to min(ss...) and max(ss...) respectively. Their values do matter only if epl=true. \np0_left=[-2.0, 1.0] and p0_right=[-2.0, 1.0]: vectors with the initial values for the left/right power-law fitting of EPLs; the power-law is in the form y = f(x) = b * x^s, so the first vector value is the initial value of s (and of course the second is the one of b).\nk0::Union{Nothing,Float64} = nothing : starting point for the xicalc function; if nothing, it will be set k0 = 1.0 / max(ss...)\nright::Union{Float64,Nothing} = nothing : do you want to cut the output elements with ks .> right? if set to nothing, no cut will be done.\nN::Int = 1024 : number of points to be used in Fourier transform \n\nSee also: V_survey, A, A_prime, EPLs, PS_multipole\n\n\n\n\n\n","category":"function"},{"location":"PowerSpectra/#GaPSE.all_PS_multipole","page":"Calculating Power Spectra","title":"GaPSE.all_PS_multipole","text":"function all_PS_multipole(input::String,\n group::String=VALID_GROUPS[end];\n L::Int = 0, pr::Bool = true, \n alg::Symbol=:fftlog, kwargs...\n ) ::Tuple{Vector{Float64}, Vector{Vector{Float64}}}\n\nGiven an input file where the first column is the x-axis data one and all the following columns are the corresponding y-data ones, this function computes all the Power Spectra of each y-data column and return a Tuple containing\n\nas first element, the ks values, common to all the PS\nas second element, a vector where in each position there is the Power Spectra corresponding to the associated inputy y-data. \n\nThe group::String=VALID_GROUPS[end] argument allow you to specify the group of the input TPCF, if they were computed through GAPSE. The allowed values for this argument are: LD , GNC , GNCxLD , LDxGNC , generic ,\n\nIf you choose a group pay attention that the number of input TPCF must match the group number (16, 25, 20 and 20 respectively). The last group name (which is also the default value) is used in case the input xis do not belog to a specific group (and so no predefined number is expected).\n\nOptional arguments\n\nDepending on the algorithm you choose, the options would change. The options in common are:\n\npr::Bool=true : want to print the automatic messages to the screen?\nL::Int=0 : which multipole order should I use for this computation? IT MUST MATCH THE MULTIPOLE ORDER OF THE INPUT TPCF!\ncut_first_n::Int=0 and cut_last_n::Int=0 : you can cout the first and/or last n elements of the input data, if they are highly irregular.\nalg::Symbol = :fftlog : algorithm to be used for the computation. Currenlty, there are two algorithms you can coose in order to perform the computation:\nalg = :fftlog (default and recommended option) will employ the FFTLog algorithm.\nalg = :twofast will employ the TwoFAST xicalc function of the TwoFAST Julia package. Note that in the computation the integration range 0leq s leq infty is reduced to int_s_min ≤ s ≤ int_s_max. This alogrithm is not the ideal choise, because TwoFAST is conceived for the direction PS -> TPCF, while is not 100% trustworthy for the other way round.\n\nThe specific ones for alg = :fftlog are:\n\nν::Union{Float64,Nothing} = nothing : bias parameter, i.e. exponent used to \"balance\" the curve; if nothing, will be set automatically to 1.5\nn_extrap_low::Int = 500 and n_extrap_high::Int = 500 : number of points to concatenate on the left/right of the input x-axis ss vector, logarithmically distributed with the same ratio of the left/right-edge elements of ss.\nn_pad::Int = 500 : number of zeros to be concatenated both on the left and on the right of the input function. They stabilize a lot the algorithm.\n\nThe specific ones for alg = :twofast are:\n\nepl::Bool=true : do you want to extend the edges of the input vectors using two fitted power-laws (obtained from EPLs)\nN_left::Int = 12 and N_right::Int = 12 : number of points from left right edges to be used for the power law fitting in EPLs. They matters only if in the given input file ξ is not defined until the extremes of integration int_s_min and int_s_max.\nint_s_min::Float64 = 1e-1 and int_s_max::Float64 = 1e3: extremes of integration; if epl is set to false, their values will be automatically set to min(ss...) and max(ss...) respectively. Their values do matter only if epl=true. \np0_left=[-2.0, 1.0] and p0_right=[-2.0, 1.0]: vectors with the initial values for the left/right power-law fitting of EPLs; the power-law is in the form y = f(x) = b * x^s, so the first vector value is the initial value of s (and of course the second is the one of b).\nk0::Union{Nothing,Float64} = nothing : starting point for the xicalc function; if nothing, it will be set k0 = 1.0 / max(ss...)\nright::Union{Float64,Nothing} = nothing : do you want to cut the output elements with ks .> right? if set to nothing, no cut will be done.\nN::Int = 1024 : number of points to be used in Fourier transform \n\nSee also: EPLs, PS_multipole\n\n\n\n\n\n","category":"function"},{"location":"PowerSpectra/#GaPSE.print_all_PS_multipole","page":"Calculating Power Spectra","title":"GaPSE.print_all_PS_multipole","text":"print_all_PS_multipole(input::String, out::String,\n group::String = VALID_GROUPS[end]; \n L::Int = 0, pr::Bool = true, \n alg::Symbol = :fftlog,\n kwargs...)\n\nGiven an inputfile where the first column is the x-axis data one and all the following columns are the corresponding y-data ones, this function computes all the Power Spectra of each y-data column and print in a file namedout` \n\nas first column, the ks values, common to all the PS\nas folowing columns, a vector where in each position there is the Power Spectra corresponding to the associated inputy y-data. \n\nThe group::String=VALID_GROUPS[end] argument allow you to specify the group of the input TPCF, if they were computed through GAPSE. The allowed values for this argument are: LD , GNC , GNCxLD , LDxGNC , generic ,\n\nIf you choose a group pay attention that the number of input TPCF must match the group number (16, 25, 20 and 20 respectively). The last group name (which is also the default value) is used in case the input xis do not belog to a specific group (and so no predefined number is expected).\n\nOptional arguments\n\nDepending on the algorithm you choose, the options would change. The options in common are:\n\npr::Bool=true : want to print the automatic messages to the screen?\nL::Int=0 : which multipole order should I use for this computation? IT MUST MATCH THE MULTIPOLE ORDER OF THE INPUT TPCF!\ncut_first_n::Int=0 and cut_last_n::Int=0 : you can cout the first and/or last n elements of the input data, if they are highly irregular.\nalg::Symbol = :fftlog : algorithm to be used for the computation. Currenlty, there are two algorithms you can coose in order to perform the computation:\nalg = :fftlog (default and recommended option) will employ the FFTLog algorithm.\nalg = :twofast will employ the TwoFAST xicalc function of the TwoFAST Julia package. Note that in the computation the integration range 0leq s leq infty is reduced to int_s_min ≤ s ≤ int_s_max. This alogrithm is not the ideal choise, because TwoFAST is conceived for the direction PS -> TPCF, while is not 100% trustworthy for the other way round.\n\nThe specific ones for alg = :fftlog are:\n\nν::Union{Float64,Nothing} = nothing : bias parameter, i.e. exponent used to \"balance\" the curve; if nothing, will be set automatically to 1.5\nn_extrap_low::Int = 500 and n_extrap_high::Int = 500 : number of points to concatenate on the left/right of the input x-axis ss vector, logarithmically distributed with the same ratio of the left/right-edge elements of ss.\nn_pad::Int = 500 : number of zeros to be concatenated both on the left and on the right of the input function. They stabilize a lot the algorithm.\n\nThe specific ones for alg = :twofast are:\n\nepl::Bool=true : do you want to extend the edges of the input vectors using two fitted power-laws (obtained from EPLs)\nN_left::Int = 12 and N_right::Int = 12 : number of points from left right edges to be used for the power law fitting in EPLs. They matters only if in the given input file ξ is not defined until the extremes of integration int_s_min and int_s_max.\nint_s_min::Float64 = 1e-1 and int_s_max::Float64 = 1e3: extremes of integration; if epl is set to false, their values will be automatically set to min(ss...) and max(ss...) respectively. Their values do matter only if epl=true. \np0_left=[-2.0, 1.0] and p0_right=[-2.0, 1.0]: vectors with the initial values for the left/right power-law fitting of EPLs; the power-law is in the form y = f(x) = b * x^s, so the first vector value is the initial value of s (and of course the second is the one of b).\nk0::Union{Nothing,Float64} = nothing : starting point for the xicalc function; if nothing, it will be set k0 = 1.0 / max(ss...)\nright::Union{Float64,Nothing} = nothing : do you want to cut the output elements with ks .> right? if set to nothing, no cut will be done.\nN::Int = 1024 : number of points to be used in Fourier transform \n\nSee also: EPLs, PS_multipole\n\n\n\n\n\n","category":"function"},{"location":"OtherUtils/","page":"Other Utilities","title":"Other Utilities","text":"DocTestSetup = quote\n using GaPSE\nend","category":"page"},{"location":"OtherUtils/#Other-utilities","page":"Other Utilities","title":"Other utilities","text":"","category":"section"},{"location":"OtherUtils/","page":"Other Utilities","title":"Other Utilities","text":"GaPSE.parameters_used\nGaPSE.check_compatible_dicts\nGaPSE.my_println_vec\nGaPSE.my_println_dict\nGaPSE.parent_directory\nGaPSE.check_parent_directory\nGaPSE.return_namefile\nGaPSE.check_namefile\nGaPSE.check_group\nGaPSE.check_fileisingroup\nGaPSE.number_to_string\nGaPSE.vecstring_to_vecnumbers\nGaPSE.readxy\nGaPSE.readxall\nGaPSE.readxyall\nGaPSE.readchoosen\nGaPSE.readxchoosey\nGaPSE.sample_subdivision_begin\nGaPSE.sample_subdivision_middle","category":"page"},{"location":"OtherUtils/#GaPSE.parameters_used","page":"Other Utilities","title":"GaPSE.parameters_used","text":"parameters_used(io::IO, cosmo::Cosmology; logo::Union{Bool,String} = true)\nparameters_used(cosmo::Cosmology; kwargs...) = parameters_used(stdout, cosmo; kwargs...)\n\nWrites in the io stream all the information concerning the input Cosmology cosmo. There are currently three options for logo: true, \"simple\" and false. With true, the logo that is printed to io is the following:\n\n###################################\n# ____ ____ ____ _____ #\n# / ___| __ _| _ \\/ ___|| ____| #\n# | | _ / _` | |_) \\___ \\| _| #\n# | |_| | (_| | __/ ___) | |___ # \n# \\____|\\__,_|_| |____/|_____| #\n###################################\n# \n\nWith false, the logo that is printed to io is instead the following:\n\n###############\n# GaPSE #\n############### \n#\n\nFinally, with false, not logo is printed.\n\nSee also: Cosmology\n\n\n\n\n\n","category":"function"},{"location":"OtherUtils/#GaPSE.check_compatible_dicts","page":"Other Utilities","title":"GaPSE.check_compatible_dicts","text":"check_compatible_dicts(ref::Dict, b::Dict, name::String = \"NO-NAME\")\n\nCompare the field of two Dict and check if the second one (b) is \"compatible\" with the first one (ref), i.e.:\n\nchecks if each of the key in b is also a key of ref;\nfor each key of b:\nif typeof(ref[key]) <: Real and !(typeof(ref[k]) <: Union{Bool, Int}), checks that typeof(b[k]) <: Real && typeof(b[k]) ≠ Bool\notherwise, checks that typeof(b[k]) == typeof(ref[k])\n\nIf someone of the check mentioned is false, raise an AssertionError, otherwise return nothing. The string name is only used inside the AssertionError messages for the correct name of the input b dictionary.\n\n\n\n\n\n","category":"function"},{"location":"OtherUtils/#GaPSE.my_println_vec","page":"Other Utilities","title":"GaPSE.my_println_vec","text":"my_println_vec(io::IO, vec::Vector{T}, name::String; N::Int=5) where {T}\nmy_println_vec(vec::Vector{T}, name::String; N::Int=5) where {T}\n my_println_vec(stdout, vec, name; N=N)\n\nPrint the input vec::Vector{T} as follows:\n\n> vec = [x for x in 1:0.1:4]\n> my_println_vec(vec, \"vector\"; N=8)\nvector = [\n1.0 , 1.1 , 1.2 , 1.3 , 1.4 , 1.5 , 1.6 , 1.7 , \n1.8 , 1.9 , 2.0 , 2.1 , 2.2 , 2.3 , 2.4 , 2.5 , \n2.6 , 2.7 , 2.8 , 2.9 , 3.0 , 3.1 , 3.2 , 3.3 , \n3.4 , 3.5 , 3.6 , 3.7 , 3.8 , 3.9 , 4.0 , \n];\n\n> my_println_vec(vec, \"vector\"; N=3)\nvector = [\n1.0 , 1.1 , 1.2 , \n1.3 , 1.4 , 1.5 , \n1.6 , 1.7 , 1.8 , \n1.9 , 2.0 , 2.1 , \n2.2 , 2.3 , 2.4 , \n2.5 , 2.6 , 2.7 , \n2.8 , 2.9 , 3.0 , \n3.1 , 3.2 , 3.3 , \n3.4 , 3.5 , 3.6 , \n3.7 , 3.8 , 3.9 , \n4.0 , \n];\n\t\n\nSee also: my_println_dict\n\n\n\n\n\n","category":"function"},{"location":"OtherUtils/#GaPSE.my_println_dict","page":"Other Utilities","title":"GaPSE.my_println_dict","text":"my_println_dict(io::IO, dict::Dict; pref::String=\"\", N::Int=3)\nmy_println_dict(dict::Dict; pref::String=\"\", N::Int=3) = \n my_println_dict(stdout, dict; pref=pref, N=N)\n\nPrint the input dict::Dict as follows:\n\n> my_println_dict(io, cosmo.params.IPS; pref=\"#\t \", N=2)\n#\t fit_left_min = 1.0e-6 \t fit_right_min = 10.0 \t \n#\t fit_left_max = 3.0e-6 \t fit_right_max = 20.0 \t\n\nSee also: my_println_vec\n\n\n\n\n\n","category":"function"},{"location":"OtherUtils/#GaPSE.parent_directory","page":"Other Utilities","title":"GaPSE.parent_directory","text":"parent_directory(s::String)::String\n\nReturn the name of the parent directory of the input filename s::String. Some examples of use:\n\ns = \"/Users/username/Downloads/file.txt\" => \"/Users/username/Downloads/\"\ns = \"/Users/username/Downloads/\" => \"/Users/username/\"\ns = \"/Users/username/Downloads\" => \"/Users/username/\"\ns = \"/Users/username/\" => \"/Users/\"\ns = \"/Users/username\" => \"/Users/\"\ns = \"/Users/\" => \"/\"\ns = \"/Users\" => \"/\"\ns = \"username/Downloads/file.txt\" => \"username/Downloads/\"\ns = \"username/Downloads/\" => \"username/\"\ns = \"username/Downloads\" => \"username/\"\ns = \"username/\" => \"./\"\ns = \"username\" => \"./\"\ns = \"file.txt\" => \"./\"\n\nIt's used inside the function check_parent_directory.\n\nSee also: check_parent_directory, return_namefile check_namefile \n\n\n\n\n\n","category":"function"},{"location":"OtherUtils/#GaPSE.check_parent_directory","page":"Other Utilities","title":"GaPSE.check_parent_directory","text":"check_parent_directory(s::String)\n\nChecks if the input namefile s::String is placed in an existing directory (whose name is obtained from s through the function parent_directory); if not, it raises an AssertionError. Some examples of the directory which are checked:\n\ns = \"/Users/username/Downloads/file.txt\" => \"/Users/username/Downloads/\"\ns = \"/Users/username/Downloads/\" => \"/Users/username/\"\ns = \"/Users/username/Downloads\" => \"/Users/username/\"\ns = \"/Users/username/\" => \"/Users/\"\ns = \"/Users/username\" => \"/Users/\"\ns = \"/Users/\" => \"/\"\ns = \"/Users\" => \"/\"\ns = \"username/Downloads/file.txt\" => \"username/Downloads/\"\ns = \"username/Downloads/\" => \"username/\"\ns = \"username/Downloads\" => \"username/\"\ns = \"username/\" => \"./\"\ns = \"username\" => \"./\"\ns = \"file.txt\" => \"./\"\n\nSee also: parent_directory, return_namefile check_namefile \n\n\n\n\n\n","category":"function"},{"location":"OtherUtils/#GaPSE.return_namefile","page":"Other Utilities","title":"GaPSE.return_namefile","text":"return_namefile(s::String)::String\n\nReturn the namefile of the input s::String, i.e. it removes the path from the name. Internally it uses the function parent_directory. Some examples of use:\n\ns = \"/Users/matteofoglieni/Downloads/\" => raises an AssertionError\ns = \"Downloads/\" => raises an AssertionError\ns = \"./Downloads/\" => raises an AssertionError\ns = \"file\" => \"file\"\ns = \"file.boh\" => \"file.boh\"\ns = \"/Users/matteo.foglieni/ciao.file\" => \"ciao.file\"\ns = \"matteo.foglieni/ciao.file.boh\" => \"ciao.file.boh\"\ns = \"/Users/matteofoglieni/Downloads/file.txt\" => \"file.txt\"\ns = \"./file.txt\" => \"file.txt\"\ns = \"./file.dat\" => \"file.dat\"\ns = \"file.txt\" => \"file.txt\"\ns = \"file.dat\" => \"file.dat\"\n\nSee also: parent_directory check_parent_directory check_namefile \n\n\n\n\n\n","category":"function"},{"location":"OtherUtils/#GaPSE.check_namefile","page":"Other Utilities","title":"GaPSE.check_namefile","text":"check_namefile(s::String)\n\nCheck if the input namefile s::String is a valid name for a file. Internally it uses the function return_namefile. Some examples of use:\n\ns = \"/Users/matteofoglieni/Downloads/\" => raises an AssertionError\ns = \"Downloads/\" => raises an AssertionError\ns = \"./Downloads/\" => raises an AssertionError\ns = \"file\" => no raises\ns = \"file.boh\" => no raises\ns = \"/Users/matteo.foglieni/ciao.file\" => no raises\ns = \"matteo.foglieni/ciao.file.boh\" => no raises\ns = \"/Users/matteofoglieni/Downloads/file.txt\" => no raises\ns = \"./file.txt\" => no raises\ns = \"./file.dat\" => no raises\ns = \"file.txt\" => no raises\ns = \"file.dat\" => no raises\n\nSee also: parent_directory, check_parent_directory, return_namefile \n\n\n\n\n\n","category":"function"},{"location":"OtherUtils/#GaPSE.check_group","page":"Other Utilities","title":"GaPSE.check_group","text":"check_group(s::String; valid_groups::Vector{String}=VALID_GROUPS)\n\nCheck if the input s::String belongs to valid groups; if not, it raises an AssertionError. The default VALID_GROUPS is made by the following strings: LD , GNC , GNCxLD , LDxGNC , generic ,\n\nSee also: check_fileisingroup\n\n\n\n\n\n","category":"function"},{"location":"OtherUtils/#GaPSE.check_fileisingroup","page":"Other Utilities","title":"GaPSE.check_fileisingroup","text":"check_fileisingroup(input::String, group::String;\n valid_groups::Vector{String}=VALID_GROUPS, comments::Bool=true)\n\nCheck if the filename input::String constains a set of data that are \"compatible\" with the input group::String. The default VALID_GROUPS is made by the following strings: LD , GNC , GNCxLD , LDxGNC , generic , If the file start with comments (lines starting with #), set comments = true.\n\nInternally it recalls the function check_group.\n\nSee also: check_group\n\n\n\n\n\n","category":"function"},{"location":"OtherUtils/#GaPSE.number_to_string","page":"Other Utilities","title":"GaPSE.number_to_string","text":"number_to_string(x::Number) ::String\n\nConvert a x::Number into a String with the following conventions:\n\nx = 3 -> \"3\"\nx = -2.15 -> \"-2.15\"\nx = 2.15 * im -> \"2.15im\"\nx = 0.0 + 2.15 * im -> \"2.15im\"\nx = - 0.0 - 2.15 * im -> \"-2.15im\"\nx = -3.1415 - 2.15 * im -> \"-3.1415-2.15im\"\nx = 3.1415 + 2.15 * im -> \"3.1415+2.15im\"\n\n\n\n\n\n","category":"function"},{"location":"OtherUtils/#GaPSE.vecstring_to_vecnumbers","page":"Other Utilities","title":"GaPSE.vecstring_to_vecnumbers","text":"vecstring_to_vecnumbers(v; \n dt::DataType = Float64 ) ::Vector{dt}\n\nTry to convert a vector of String into a Vector of data type dt. If that raises an Exception, it uses parse elementwise.\n\n\n\n\n\n","category":"function"},{"location":"OtherUtils/#GaPSE.readxy","page":"Other Utilities","title":"GaPSE.readxy","text":"readxy(input::String; comments::Bool=true, \n xdt::DataType = Float64, ydt::DataType = Float64\n ) ::Tuple{Vector{xdt},Vector{ydt}}\n\nRead the file input and return the two data colums with the input types xdt and ydt. If the file start with comments (lines starting with #), set comments = true.\n\nSee also: readxall, readxyall, readxchoosey\n\n\n\n\n\n","category":"function"},{"location":"OtherUtils/#GaPSE.readxall","page":"Other Utilities","title":"GaPSE.readxall","text":"readxall(input::String; comments::Bool=true, \n xdt::DataType = Float64, ydt::DataType = Float64\n ) ::Tuple{Vector{xdt},Vector{Vector{ydt}}}\n\nRead the file input and return a tuple having\n\nas first element the data in the first column (with the input type xdt)\nas second element a vector that contains all the following columns (with the input type ydt)\n\nIf the file start with comments (lines starting with #), set comments = true.\n\nSee also: readxy, readxyall, readxchoosey\n\n\n\n\n\n","category":"function"},{"location":"OtherUtils/#GaPSE.readxyall","page":"Other Utilities","title":"GaPSE.readxyall","text":"readxyall(input::String; comments::Bool=true, \n xdt::DataType = Float64, ydt::DataType = Float64,\n zdt::DataType=Float64\n ) ::Tuple{Vector{xdt},Vector{ydt},Vector{Vector{zdt}}}\n\nRead the file input and return a tuple having\n\nas first element the data in the first column (with the input type xdt)\nas second element the data in the second column (with the input type ydt)\nas third element a vector that contains all the following columns (with the input type zdt)\n\nIf the file start with comments (lines starting with #), set comments = true.\n\nSee also: readxy, readxall, readxchoosey\n\n\n\n\n\n","category":"function"},{"location":"OtherUtils/#GaPSE.readchoosen","page":"Other Utilities","title":"GaPSE.readchoosen","text":"readchoosen(\n input::String, n::Int; \n comments::Bool = true, dt::DataType = Float64, \n ) ::Tuple{Vector{xdt},Vector{ydt}}\n\nRead the file input and return the data (with the input type ydt) stored in the column number n.\n\nIf the file start with comments (lines starting with #), set comments = true.\n\nSee also: readxy, readxall, readxyall, readxchoosey\n\n\n\n\n\n","category":"function"},{"location":"OtherUtils/#GaPSE.readxchoosey","page":"Other Utilities","title":"GaPSE.readxchoosey","text":"readxchoosey(\n input::String, n::Int; \n comments::Bool = true, xdt::DataType = Float64, ydt::DataType = Float64,\n ) ::Tuple{Vector{xdt},Vector{ydt}}\n\nreadxchoosey(\n input::String, effect::String, group::String = VALID_GROUPS[begin+1]; \n comments::Bool = true, xdt::DataType = Float64, ydt::DataType = Float64,\n ) ::Tuple{Vector{xdt},Vector{ydt}}\n\nRead the file input and return a tuple having\n\nas first element the data in the first column (with the input type xdt)\nas second element the data (with the input type ydt)\nstored in the column number n (first method) \nin the position corresponding to the input effect for the given group (note: also \"sum\" is valid as effect here, and gives the sum column, i.e. the second one)\n\nIf the file start with comments (lines starting with #), set comments = true.\n\nSee also: readxy, readxall, readxyall,readchoosen\n\n\n\n\n\n","category":"function"},{"location":"OtherUtils/#GaPSE.sample_subdivision_begin","page":"Other Utilities","title":"GaPSE.sample_subdivision_begin","text":"sample_subdivision_begin(x_min, x_stop, x_end; \n frac_begin::Float64 = 0.5, N::Int = 100, ass::Bool = true)\n\nReturn a vector of N+2 points inside the interval x_min ≤ x ≤ x_max linearly distributed with two different sampling:\n\nin x_min ≤ x ≤ x_stop there are around frac_begin * N points;\nin x_stop ≤ x ≤ x_max there are around (1.0 - frac_begin) * N points.\n\nfrac_begin is then the fraction of the N points that is inside the LEFT INTERVAL. If ass::Bool is set to false the assert checks on the input data will not be performed. \n\n\n\n\n\n","category":"function"},{"location":"OtherUtils/#GaPSE.sample_subdivision_middle","page":"Other Utilities","title":"GaPSE.sample_subdivision_middle","text":"sample_subdivision_middle(x_min, x_start, x_stop, x_max; \n frac_middle::Float64 = 0.5, rel_frac_begin::Union{Float64, Nothing} = nothing, \n N::Int = 100, ass::Bool = true)\n\nReturn a vector of N+3 points inside the interval x_min ≤ x ≤ x_max linearly distributed with three different sampling, depending on the values of frac_middle and rel_frac_begin.\n\nIf rel_frac_begin == nothing, defining the relative size of the segment x_min ≤ x ≤ x_start compared to the \"masked one\" x_min ≤ x ≤ x_start || x_stop ≤ x ≤ x_max as rel_prop_begin = (x_start - x_min) / (x_max - x_min - x_stop + x_start):\n\nin x_min ≤ x ≤ x_start there are around (1.0 - frac_middle) * rel_prop_begin * N points;\nin x_start ≤ x ≤ x_stop there are around frac_middle * N points;\nin x_stop ≤ x ≤ x_max there are around (1.0 - frac_middle) * (1.0 - rel_prop_begin) * N points.\n\nIf rel_frac_begin is instead a float inside the interval 0.0 < rel_frac_begin < 1.0: \n\nin x_min ≤ x ≤ x_start there are around (1.0 - frac_middle) * rel_frac_begin * N points;\nin x_start ≤ x ≤ x_stop there are around frac_middle * N points;\nin x_stop ≤ x ≤ x_max there are around (1.0 - frac_middle) * (1.0 - rel_frac_begin) * N points.\n\nfrac_middle is then the fraction of the N points that is inside the MIDDLE INTERVAL, while rel_frac_begin is the one inside the LEFT INTERVAL COMPARED TO THE MASKED TOTAL ONE. If ass::Bool is set to false the assert checks on the input data will not be performed. \n\n\n\n\n\n","category":"function"},{"location":"WindowFIntegrated/","page":"Integrated Window F","title":"Integrated Window F","text":"DocTestSetup = quote\n using GaPSE\nend","category":"page"},{"location":"WindowFIntegrated/#The-Integrated-Window-Function","page":"Integrated Window F","title":"The Integrated Window Function","text":"","category":"section"},{"location":"WindowFIntegrated/","page":"Integrated Window F","title":"Integrated Window F","text":"GaPSE.integrated_F_quadgk\nGaPSE.integrated_F_trapz\nGaPSE.print_map_IntegratedF\nGaPSE.WindowFIntegrated\nGaPSE.spline_integrF","category":"page"},{"location":"WindowFIntegrated/#GaPSE.integrated_F_quadgk","page":"Integrated Window F","title":"GaPSE.integrated_F_quadgk","text":"integrated_F_quadgk(s, μ, s_min, s_max, windowF::WindowF;\n llim=0.0, rlim=Inf, rtol=1e-2, atol=0.0)\n\nComputes the Integrated Window Function fron the input Window Function windowF, through the quadgk function of the QuadGK Julia pagkage, in the point (s,μ) (where s is the comoving distance and μ the angle cosine). s_min and s_max are the min and max value for the radial part of the survey window function.\n\nThe analytical expression of the Integrated window function is the following:\n\nmathcalF(s mu) = \n int_0^infty mathrmds_1 phi(s_1) \n phileft(sqrts_1^2 + s^2 + 2 s_1 s muright) \n Fleft(fracss_1 mu right)\n\nwhere s is the comoving distance, mu the cosine angle, phi is the angular part of the survey window function and F(x μ) is the window function. Check the documentation of WindowF for its definition. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nOptional arguments\n\nllim=nothing and rlim=nothing : integration limits for quadgk; if llim=nothing it will be set to 0.95 * s_min; if rlim=nothing, it will be set to 1.05*s_max, while if rlim=Inf it will be set to 3 * s_max\nrtol=1e-2 and atol=0.0 : relative and absoute tolerance for quadgk\n\nSee also: [WindowF], ϕ\n\n\n\n\n\n","category":"function"},{"location":"WindowFIntegrated/#GaPSE.integrated_F_trapz","page":"Integrated Window F","title":"GaPSE.integrated_F_trapz","text":"integrated_F_trapz(s, μ, s_min, s_max, windowF::WindowF;\n llim=nothing, rlim=nothing, N::Int=1000)\n\nComputes the Integrated Window Function fron the input Window Function windowF, through the trapz function of the Trapz Julia pagkage, in the point (s,μ) (where s is the comoving distance and μ the angle cosine). s_min and s_max are the min and max value for the radial part of the survey window function.\n\nThe analytical expression of the Integrated window function is the following:\n\nmathcalF(s mu) = \n int_0^infty mathrmds_1 phi(s_1) \n phileft(sqrts_1^2 + s^2 + 2 s_1 s muright) \n Fleft(fracss_1 mu right)\n\nwhere s is the comoving distance, mu the cosine angle, phi is the angular part of the survey window function and F(x μ) is the window function. Check the documentation of WindowF for its definition. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nOptional arguments\n\nllim=nothing and rlim=nothing : limits of the sampling interval to be used for trapz; if llim=nothing it will be set to 0.95 * s_min; if rlim=nothing, it will be set to 1.05*s_max, while if rlim=Inf it will be set to 3 * s_max\nN::Int = 1000 : number of points to be used for the sampling\n\nSee also: [WindowF], ϕ\n\n\n\n\n\n","category":"function"},{"location":"WindowFIntegrated/#GaPSE.print_map_IntegratedF","page":"Integrated Window F","title":"GaPSE.print_map_IntegratedF","text":"print_map_IntegratedF(\n s_min, s_max, \n ss::Vector{Float64}, μs::Vector{Float64}, \n windowF::Union{String,WindowF}, out::String;\n alg::Symbol=:trap, llim=nothing, rlim=nothing,\n rtol=1e-2, atol=0.0, N::Int=1000, pr::Bool=true)\n\nprint_map_IntegratedF(\n z_min, z_max, \n zs::Vector{Float64}, μs::Vector{Float64}, \n windowF::Union{String,WindowF}, out::String,\n file_data::String; \n names_bg = NAMES_BACKGROUND, h_0 = 0.7, kwargs...)\n\nprint_map_IntegratedF(\n z_min, z_max,\n μs::Vector{Float64}, \n windowF::Union{String,WindowF}, out::String,\n file_data::String;\n names_bg = NAMES_BACKGROUND, h_0 = 0.7, N_ss::Int = 100, \n m::Float64 = 2.1, kwargs...)\n\nEvaluate the integrated window function mathcalF(smu) in a rectangual grid of mu and s values, and print the results in the out file.\n\nThe first method takes as input:\n\ns_min and s_max : min and max comoving distance of the survey; their values will be internally used by the radial function ϕ\nss::Vector{Float64} and μs::Vector{Float64} : the vector of s and μ points where to sample the integrated window function mathcalF. They must be a float vector of increasing values; more precisely:\nss must be a float vector of increasing comoving distance values (so each element must be ≥ 0); the first and last values ARE NOT RELATED to s_min and s_max.\nμs must be a float vector of increasing cosine values (so each element x must be -1 ≤ x ≤ 1).\nwindowF::Union{String,WindowF}, i.e. the window function itself; it can be passed as the namefile where the window is stored in (that will be opened with WindowF) or as a WindowF struct directly.\nout::String : the name of the output file\n\nThe second method takes as input the min and max redshifts of the survey (z_minand z_max), the vector of redshifts zs::Vector{Float64} for the integrated window function sampling, μs and windowF as before and the file_data where can be found the association z rightarrow s(z). Such file must have the structure of the background data produced by the CLASS (link: https://github.com/lesgourg/class_public) code. Note that also zs musyt be a float vector of increasing redshift values (so each element must be ≥ 0). This method internally recalls the first one, so the other kwargs... are in common.\n\nThe third method takes as input the min and max redshifts of the survey (z_minand z_max) and the same input as the second method (μs, widnowF, out and file_data) but NOT THE REDSHIFT SAMPLING VECTOR zs. The sampling will be internally made linearly from s = 0 to s = m s_mathrmmax, where s_max is the comoving distance associated to z_max (for the data stored in file_data) and m::Float64 = 2.1 a coefficient that we suggest to set equals to 2 < m < 3. N_ss::Int = 100 is the number of s values used for the sampling in the interval 0 m s_mathrmmax. This method internally recalls the first one, so the other kwargs... are in common.\n\nThe analytical expression for the integrated window function is the following:\n\nmathcalF(s mu) = \n int_0^infty mathrmds_1 phi(s_1) \n phileft(sqrts_1^2 + s^2 + 2 s_1 s muright) \n Fleft(fracss_1 mu right)\n\nwhere s is the comoving distance, mu the cosine angle, phi is the angular part of the survey window function and F(x μ) is the window function. Check the documentation of WindowF for its definition. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nOptional arguments\n\nAs optional arguments of the first method:\n\nalg::Symbol = :trap : algorithm to be used for the integration; the valid options are :quad (that will recall integrated_F_quadgk) and :trap (that will recall integrated_F_trapz); other values will lead to AssertionError\nllim=nothing and rlim=nothing : integration limits for quad/trap; if llim=nothing it will be set to 0.95 * s_min; if rlim=nothing, it will be set to 1.05*s_max, while if rlim=Inf it will be set to 3 * s_max.\nN::Int = 1000 : number of points to be used for the sampling of trapz; it's useless if you set alg = :quad;\nrtol=1e-2 and atol=0.0 : relative and absoute tolerance for quadgk; they are useless if you set alg = :trap;\npr::Bool = true : do you want to see the progress-bar of the computation?\n\nThe optional arguments given to the second method will be directly given to the first one. The only two exceptions are options relative to the background data, managed internally by the struct BackgroundData:\n\nnames = NAMES_BACKGROUND : the column names of the file_data. If the colum order change from the default one NAMES_BACKGROUND, you must set as input the vector of string with the correct one, with the SAME names. They are, with the default order:\n[\"z\", \"proper time [Gyr]\", \"conf. time [Mpc]\", \"H [1/Mpc]\", \"comov. dist.\", \"ang.diam.dist.\", \"lum. dist.\", \"comov.snd.hrz.\", \"(.)rhog\", \"(.)rhob\", \"(.)rhocdm\", \"(.)rholambda\", \"(.)rhour\", \"(.)rhocrit\", \"gr.fac. D\", \"gr.fac. f\"]\nh = 0.7 : the adimensional hubble constant. By default, CLASS background data are measured with it numerically expressed (so distances are measured in Mpc, for example), while this code works with h in the unit of measure (so distances are measured in Mpc/h, for example). Change this value to 1.0 if the input data do not have this issue, or to your value of interest (0.67, 0.5, ...).\n\nThe optional arguments given to the third method will be directly given to the first one again. The only two exceptions are:\n\nnames_bg=GaPSE.NAMES_BACKGROUND and h_0=0.7 : same as for the second method\nN_ss::Int=100 : number of points to be used in the liearly spaced comoving distance vector\nst::Float64=0.0 : starting comoving distance of the vector\nm:Float64 = 2.1 : coefficient that set the maximum comoving distance of the vector, equals to m * s_max, where s_max is the comoving distance associated to the redhsift z_max\n\nSee also: integrated_F_quadgk, integrated_F_trapz, ϕ, WindowF, WindowFIntegrated, BackgroundData\n\n\n\n\n\n","category":"function"},{"location":"WindowFIntegrated/#GaPSE.WindowFIntegrated","page":"Integrated Window F","title":"GaPSE.WindowFIntegrated","text":"WindowFIntegrated(\n ss::Vector{Float64}\n μs::Vector{Float64}\n IFs::Matrix{Float64}\n )\n\nStruct containing ss, μs and IFs values of the integrated window function mathcalF(s μ). ss and μs are 1D vectors containing each value only once, while IFs values are contained in a matrix of size (length(ss), length(μs)), so:\n\nalong a fixed column the changing value is s\nalong a fixed row the changing value is μ\n\nThe analytical expression for the integrated window function is the following:\n\nmathcalF(s mu) = \n int_0^infty mathrmds_1 phi(s_1) \n phileft(sqrts_1^2 + s^2 + 2 s_1 s muright) \n Fleft(fracss_1 mu right)\n\nwhere s is the comoving distance, mu the cosine angle, phi is the angular part of the survey window function and F(x μ) is the window function. Check the documentation of WindowF for its definition. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nConstructors\n\n WindowFIntegrated(file::String)\n\nRead the IF map from the file file. Such a file might be produced by print_map_IntegratedF, check its docstring. \n\nIt does not matter if the pattern is\n\n# ss μs IFs\n0.0 -1.0 ...\n0.0 -0.9 ...\n0.0 -0.8 ...\n... ... ...\n\nor \n\n# ss μs IFs\n0.0 -1.0 ...\n0.1 -1.0 ...\n0.2 -1.0 ...\n... ... ...\n\nbecause the constructor will recognise it. What does matter is the columns order: ss first, then μs and finally IFs.\n\nSee also: integrated_F_trapz, integrated_F_quadgk, spline_integrF, WindowF, ϕ, print_map_IntegratedF\n\n\n\n\n\n","category":"type"},{"location":"WindowFIntegrated/#GaPSE.spline_integrF","page":"Integrated Window F","title":"GaPSE.spline_integrF","text":"spline_integrF(s, μ, str::WindowFIntegrated)::Float64\n\nReturn the 2-dim spline value of mathcalF in the given (s,μ), where mathcalF is defined in the input WindowFIntegrated. The spline is obtained through the interpolate function of the GridInterpolations Julia package.\n\nSee also: WindowFIntegrated\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations_1/","page":"GNC TPCFs","title":"GNC TPCFs","text":"DocTestSetup = quote\n using GaPSE\nend","category":"page"},{"location":"GNC_Correlations_1/#GNC-TPCFs","page":"GNC TPCFs","title":"GNC TPCFs","text":"","category":"section"},{"location":"GNC_Correlations_1/#Two-Point-Auto-Correlation-Functions","page":"GNC TPCFs","title":"Two-Point Auto-Correlation Functions","text":"","category":"section"},{"location":"GNC_Correlations_1/","page":"GNC TPCFs","title":"GNC TPCFs","text":"GaPSE.ξ_GNC_Newtonian\nGaPSE.ξ_GNC_Doppler\nGaPSE.ξ_GNC_Lensing\nGaPSE.ξ_GNC_LocalGP\nGaPSE.ξ_GNC_IntegratedGP","category":"page"},{"location":"GNC_Correlations_1/#GaPSE.ξ_GNC_Newtonian","page":"GNC TPCFs","title":"GaPSE.ξ_GNC_Newtonian","text":"ξ_GNC_Newtonian(P1::Point, P2::Point, y, cosmo::Cosmology; \n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, \n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,\n obs::Union{Bool, Symbol} = :noobsvel) ::Float64\n\nξ_GNC_Newtonian(s1, s2, y, cosmo::Cosmology; \n kwargs...) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) of the Newtonian auto-correlation effect arising from the Galaxy Number Counts (GNC).\n\nIn the first method, you should pass the two Point (P1 and P2) where to evaluate the function, while in the second method (that internally recalls the first) you must provide the two corresponding comoving distances s1 and s2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this TPCF is the following:\n\nbeginsplit\n xi^deltadelta ( s_1 s_2 y ) = D_1 D_2 \n left \n J_00^deltadelta I_0^0 (s) + \n J_02^deltadelta I_2^0 (s) + \n J_04^deltadelta I_4^0 (s) \n right \nendsplit\n\nwith\n\nbeginsplit\n J_00^deltadelta = frac115 \n left\n 15 b_1 b_2 + 5 b_1 f_2 + 5 b_2 f_1 +\n (2 y^2 + 1) f_1 f_2\n right\n \n \n J_02^deltadelta = - frac121 s^2\n left\n s_1^2 left\n 14 b_2 f_1 + \n 7 b_1 f_2 (3 y^2 - 1) + \n (11 y^2 + 1) f_1 f_2 \n right right \n leftqquad qquad \n + s_2^2 left\n 14 b_1 f_2 + \n 7 b_2 f_1 (3 y^2 - 1) + \n (11 y^2 + 1) f_1 f_2 \n right right \n left qquad qquad \n - 4 y s_1 s_2 left\n 7 b_2 f_1 + 7 b_1 f_2 +\n (y^2 + 5) f_1 f_2\n right\n right\n \n \n J_04^deltadelta = fracf_1 f_235 s^4\n left\n 4 (3 y^2 - 1) (s_1^4 + s_2^4) +\n 3 (3 + y^2)^2 s_1^2 s_2^2 - \n 8 y s_1 s_2 (s_1^2 + s_2^2) (3 + y^2)\n right\n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nb_1, s_mathrmb 1, mathitf_mathrmevo 1 (and b_2, s_mathrmb 2, mathitf_mathrmevo 2) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nIn this TPCF there are no observer terms. The obs keyword is inserted only for compatibility with the other GNC TPCFs.\n\nInputs\n\nP1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nb1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:\nif not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;\nif you set one or more values, they will override the cosmo ones in this computation;\nthe two sets of values should be different only if you are interested in studing two galaxy species;\nonly the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities. \ns_lim=nothing : parameter used in order to avoid the divergence of the mathcalR and mathfrakR denominators: when 0 leq s leq s_mathrmlim the returned values are\nforall s in 0 s_mathrmlim quad \n mathfrakR(s) = 1 - frac1mathcalH_0 s_mathrmlim quad\n mathcalR(s) = 5 s_mathrmb + \n frac2 - 5 s_mathrmbmathcalH_0 s_mathrmlim + \n fracdotmathcalHmathcalH_0^2 - mathitf_mathrmevo \nIf nothing, the default value stored in cosmo will be considered.\nobs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?\n:yes or true -> all the observer effects will be considered\n:no or false -> no observer term will be taken into account\n:noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations_1/#GaPSE.ξ_GNC_Doppler","page":"GNC TPCFs","title":"GaPSE.ξ_GNC_Doppler","text":"ξ_GNC_Doppler(P1::Point, P2::Point, y, cosmo::Cosmology;\n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, \n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,\n obs::Union{Bool, Symbol} = :noobsvel) ::Float64\n\nξ_GNC_Doppler(s1, s2, y, cosmo::Cosmology; \n kwargs...) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) of the Doppler auto-correlation effect arising from the Galaxy Number Counts (GNC).\n\nIn the first method, you should pass the two Point (P1 and P2) where to evaluate the function, while in the second method (that internally recalls the first) you must provide the two corresponding comoving distances s1 and s2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this TPCF is the following:\n\nbeginsplit\n xi^v_parallel v_parallel( s_1 s_2 y ) =\n D_1 D_2 J_alpha^v_parallel v_parallel\n left \n J_beta^v_parallel v_parallel\n left( \n frac145 I_0^0(s) +\n frac263 I_2^0 (s) + \n frac1105 I_4^0(s)\n right) +\n J^v_parallel v_parallel_20 I_0^2 (s)\n right \n \n + D_1 left \n J^v_parallel v_parallel_31 ( s_1 s_2) I_1^3 (s_1) + \n J^v_parallel v_parallel_11 ( s_1 s_2) I_1^1 (s_1) + \n J^v_parallel v_parallel_13 ( s_1 s_2) I_3^1 (s_1) \n right \n \n + D_2 left\n J^v_parallel v_parallel_31 ( s_2 s_1) I_1^3 (s_2) + \n J^v_parallel v_parallel_11 ( s_2 s_1) I_1^1 (s_2) +\n J^v_parallel v_parallel_13 ( s_2 s_1) I_3^1 (s_2) \n right\n \n + J^v_parallel v_parallel_sigma2 sigma_2 \nendsplit\n\nwith\n\nbeginsplit\n J_alpha^v_parallel v_parallel = \n f_1 f_2mathcalH_1 mathcalH_2 mathcalR_1 mathcalR_2\n \n \n J_beta^v_parallel v_parallel = \n y^2 s_1 s_2 - 2 y (s_1^2 + s_2^2) + 3 s_1 s_2\n \n \n J_20^v_parallel v_parallel =\n frac13 y s^2\n \n \n J_31^v_parallel v_parallel (s_1 s_2) =\n -y f_0 mathcalH_0 s_1^2 f_1 mathcalR_1 (mathcalR_2 - 5 s_mathrmb 2 + 2)\n \n \n J_11^v_parallel v_parallel (s_1 s_2) =\n frac15 y f_0 mathcalH_0 s_1^2 f_1 mathcalH_1 mathcalR_1 \n (mathcalR_2 - 5 s_mathrmb 2 + 2)\n \n \n J_13^v_parallel v_parallel (s_1 s_2) =\n frac15 y f_0 mathcalH_0 s_1^2 f_1 mathcalH_1 mathcalR_1 \n (mathcalR_2 - 5 s_mathrmb 2 + 2)\n \n \n J_sigma2^v_parallel v_parallel =\n frac13 y f_0^2 mathcalH_0^2 (mathcalR_1 - 5 s_mathrmb 1 + 2) \n (mathcalR_2 - 5 s_mathrmb 2 + 2) \n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nb_1, s_mathrmb 1, mathitf_mathrmevo 1 (and b_2, s_mathrmb 2, mathitf_mathrmevo 2) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nIn this TPCF, the only non-observer term is the first one (i.e. the bracket proportional to D(s_1) D(s_2)). The other three ones are all observer terms related to the observer velocity, so if you set obs = :no, obs = false or even obs = :noobsvel they will not be computed.\n\nInputs\n\nP1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nb1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:\nif not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;\nif you set one or more values, they will override the cosmo ones in this computation;\nthe two sets of values should be different only if you are interested in studing two galaxy species;\nonly the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities. \ns_lim=nothing : parameter used in order to avoid the divergence of the mathcalR and mathfrakR denominators: when 0 leq s leq s_mathrmlim the returned values are\nforall s in 0 s_mathrmlim quad \n mathfrakR(s) = 1 - frac1mathcalH_0 s_mathrmlim quad\n mathcalR(s) = 5 s_mathrmb + \n frac2 - 5 s_mathrmbmathcalH_0 s_mathrmlim + \n fracdotmathcalHmathcalH_0^2 - mathitf_mathrmevo \nIf nothing, the default value stored in cosmo will be considered.\nobs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?\n:yes or true -> all the observer effects will be considered\n:no or false -> no observer term will be taken into account\n:noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations_1/#GaPSE.ξ_GNC_Lensing","page":"GNC TPCFs","title":"GaPSE.ξ_GNC_Lensing","text":"ξ_GNC_Lensing(P1::Point, P2::Point, y, cosmo::Cosmology;\n en::Float64 = 1e6, Δχ_min::Float64 = 1e-1,\n N_χs_2::Int = 100,\n s_b1=nothing, s_b2=nothing, 𝑓_evo1=nothing, 𝑓_evo2=nothing,\n s_lim=nothing, obs::Union{Bool,Symbol}=:noobsvel,\n suit_sampling::Bool=true ) ::Float64\n\nξ_GNC_Lensing(s1, s2, y, cosmo::Cosmology; \n kwargs...) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) of the Lensing auto-correlation effect arising from the Galaxy Number Counts (GNC).\n\nIn the first method, you should pass the two Point (P1 and P2) where to evaluate the function, while in the second method (that internally recalls the first) you must provide the two corresponding comoving distances s1 and s2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this TPCF is the following:\n\nbeginsplit\n xi^kappakappa (s_1 s_2 y) = \n int_0^s_1 mathrmdchi_1 int_0^s_2 mathrmdchi_2 \n J^kappakappa_alpha\n left\n J^kappakappa_00 I_0^0(Deltachi) + \n J^kappakappa_02 I_2^0(Deltachi) +\n right\n left\n J^kappakappa_31 I_1^3(Deltachi) +\n J^kappakappa_22 I_2^2(Deltachi)\n right \nendsplit\n\nwith\n\nbeginsplit\n J^kappakappa_alpha = \n frac\n mathcalH_0^4 Omega_mathrmM0^2 D(chi_1) D(chi_2) \n \n s_1 s_2 a(chi_1) a(chi_2)\n (chi_1 - s_1)(chi_2 - s_2)\n (5 s_mathrmb 1 - 2)(5 s_mathrmb 2 - 2) \n \n \n J^kappakappa_00 = \n -frac 3 chi_1^2 chi_2^24 Deltachi^4 (y^2 - 1)\n left\n 8 y (chi_1^2 + chi_2^2) - 9chi_1chi_2y^2 - \n 7chi_1chi_2\n right \n \n \n J^kappakappa_02 = \n -frac 3 chi_1^2 chi_2^22 Deltachi^4(y^2 - 1)\n left\n 4 y (chi_1^2 + chi_2^2) - 3 chi_1 chi_2 y^2 -\n 5 chi_1 chi_2\n right \n \n \n J^kappakappa_31 = 9 y Deltachi^2 \n \n \n J^kappakappa_22 = \n frac9 chi_1 chi_24 Deltachi^4\n left\n 2(chi_1^4 + chi_2^4)(7 y^2 - 3) - \n 16 y chi_1 chi_2 (chi_1^2 + chi_2^2)(y^2 + 1) + \n right\n leftqquadqquadqquad\n chi_1^2 chi_2^2 (11y^4 + 14y^2 + 23) \n right \n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nb_1, s_mathrmb 1, mathitf_mathrmevo 1 (and b_2, s_mathrmb 2, mathitf_mathrmevo 2) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nIn this TPCF there are no observer terms. The obs keyword is inserted only for compatibility with the other GNC TPCFs.\n\nThis function is computed integrating integrand_ξ_GNC_Lensing with trapz() from the Trapz Julia package.\n\nInputs\n\nP1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nb1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:\nif not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;\nif you set one or more values, they will override the cosmo ones in this computation;\nthe two sets of values should be different only if you are interested in studing two galaxy species;\nonly the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities. \ns_lim=nothing : parameter used in order to avoid the divergence of the mathcalR and mathfrakR denominators: when 0 leq s leq s_mathrmlim the returned values are\nforall s in 0 s_mathrmlim quad \n mathfrakR(s) = 1 - frac1mathcalH_0 s_mathrmlim quad\n mathcalR(s) = 5 s_mathrmb + \n frac2 - 5 s_mathrmbmathcalH_0 s_mathrmlim + \n fracdotmathcalHmathcalH_0^2 - mathitf_mathrmevo \nIf nothing, the default value stored in cosmo will be considered.\nobs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?\n:yes or true -> all the observer effects will be considered\n:no or false -> no observer term will be taken into account\n:noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account\nen::Float64 = 1e6: just a float number used in order to deal better with small numbers;\nΔχ_min::Float64 = 1e-4 : when Deltachi = sqrtchi_1^2 + chi_2^2 - 2 chi_1 chi_2 y to 0^+, some I_ell^n term diverges, but the overall parenthesis has a known limit:\n lim_Deltachi to 0^+ left(\n J_00^kappakappa I^0_0(Deltachi) + \n J_02^kappakappa I^0_2(Deltachi) + \n J_31^kappakappa I^3_1(Deltachi) + \n J_22^kappakappa I^2_2(Deltachi)\n right) = \n 3 sigma_2 + frac65 chi_2^2 sigma_0\nSo, when it happens that Deltachi Deltachi_mathrmmin, the function considers this limit as the result of the parenthesis instead of calculating it in the normal way; it prevents computational divergences.\nN_χs_2::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ1) and (0, s2) (for χ2); it has been checked that with N_χs_2 ≥ 50 the result is stable.\nsuit_sampling::Bool = true : this bool keyword can be found in all the TPCFs which have at least one χ integral; it is conceived to enable a sampling of the χ integral(s) suited for the given TPCF; however, it actually have an effect only in the TPCFs that have such a sampling implemented in the code. Currently, only ξ_GNC_Newtonian_Lensing (and its simmetryc TPCF) has it.\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, integrand_ξ_GNC_Lensing\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations_1/#GaPSE.ξ_GNC_LocalGP","page":"GNC TPCFs","title":"GaPSE.ξ_GNC_LocalGP","text":" ξ_GNC_LocalGP(P1::Point, P2::Point, y, cosmo::Cosmology; \n obs::Union{Bool, Symbol} = :noobsvel) ::Float64\n\n ξ_GNC_LocalGP(s1, s2, y, cosmo::Cosmology; \n kwargs...) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) of the Local Gravitational Potential (GP) auto-correlation effect arising from the Galaxy Number Counts (GNC).\n\nIn the first method, you should pass the two Point (P1 and P2) where to evaluate the function, while in the second method (that internally recalls the first) you must provide the two corresponding comoving distances s1 and s2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this TPCF is the following:\n\nbeginsplit\n xi^phiphi( s_1 s_2 y ) = \n D_1 D_2 J_40^phiphi( s_1 s_2 ) tildeI_0^4 (s) \n + D_2 J_40^phi_0 phi(s_1s_2) tildeI_0^4 (s_2)\n \n + D_1 J_40^phi_0 phi(s_2s_1) tildeI_0^4 (s_1)\n + J_sigma4^phiphi (s_1 s_2) sigma_4 \nendsplit\n\nwith\n\nbeginsplit\n J_40^phiphi (s_1 s_2) = \n fracs^44 a_1 a_2\n left\n 2 a_2 f_2 (mathitf_mathrmevo 2 - 3) mathcalH_2^2 + \n 3 mathcalH_0^2 Omega_mathrmM0 (f_2 + mathcalR_2 + 5 s_mathrmb 2 - 2)\n right times\n \n qquadqquad\n left\n 2 a_1 f_1(mathitf_mathrmevo 1-3) mathcalH_1^2 + \n 3 mathcalH_0^2 Omega_mathrmM0 (f_1 + mathcalR_1 + 5 s_mathrmb 1 - 2)\n right \n \n\n J_40^phi_0 phi(s_1 s_2) = \n fracmathcalH_0 s_2^44 s_1 a_2 \n left\n mathcalH_0 s_1 (2 f_0-3 Omega_mathrmM0) mathcalR_1 + \n 2 f_0 (5 s_mathrmb 1-2) \n right times\n \n qquadqquadleft\n 2 a_2 f_2 (mathitf_mathrmevo 2 - 3) mathcalH_2^2 + \n 3 mathcalH_0^2 Omega_mathrmM0 (f_2 + mathcalR_2 + 5 s_mathrmb 2 - 2)\n right\n \n\n J_sigma 4(s_1 s_2)= \n fracmathcalH_0^2 4 s_1 s_2\n left\n mathcalH_0 s_1 (2 f_0-3 Omega_mathrmM0) mathcalR_1 + \n 2 f_0(5 s_mathrmb 1-2)\n right times\n \n qquadqquadleft\n 3 Omega_mathrmM0 mathcalH_0 s_2 mathcalR_2 + \n 2 f_0 (mathcalH_0 s_2 mathcalR_2 + 5 s_mathrmb 2 - 2)\n right\n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nb_1, s_mathrmb 1, mathitf_mathrmevo 1 (and b_2, s_mathrmb 2, mathitf_mathrmevo 2) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nIn this TPCF, the only non-observer term is the first one (i.e. the bracket proportional to D(s_1) D(s_2)), so if you set obs = :no or obs = false that is the only one computed. The other three terms are all observer terms, but not related to the observer velocity, so if you set obs = :noobsvel they will still be computed.\n\nInputs\n\nP1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nb1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:\nif not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;\nif you set one or more values, they will override the cosmo ones in this computation;\nthe two sets of values should be different only if you are interested in studing two galaxy species;\nonly the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities. \ns_lim=nothing : parameter used in order to avoid the divergence of the mathcalR and mathfrakR denominators: when 0 leq s leq s_mathrmlim the returned values are\nforall s in 0 s_mathrmlim quad \n mathfrakR(s) = 1 - frac1mathcalH_0 s_mathrmlim quad\n mathcalR(s) = 5 s_mathrmb + \n frac2 - 5 s_mathrmbmathcalH_0 s_mathrmlim + \n fracdotmathcalHmathcalH_0^2 - mathitf_mathrmevo \nIf nothing, the default value stored in cosmo will be considered.\nobs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?\n:yes or true -> all the observer effects will be considered\n:no or false -> no observer term will be taken into account\n:noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations_1/#GaPSE.ξ_GNC_IntegratedGP","page":"GNC TPCFs","title":"GaPSE.ξ_GNC_IntegratedGP","text":"ξ_GNC_IntegratedGP(\n P1::Point, P2::Point, y, cosmo::Cosmology;\n en::Float64=1e10, N_χs_2::Int=100, \n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, \n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,\n obs::Union{Bool,Symbol}=:noobsvel,\n suit_sampling::Bool=true\n ) ::Float64\n\nξ_GNC_IntegratedGP(s1, s2, y, cosmo::Cosmology; \n kwargs...) ::Float64\n\nReturn the Two-Point Correlation Function (TPCF) of the Integrated Gravitational Potential (GP) auto-correlation effect arising from the Galaxy Number Counts (GNC).\n\nIn the first method, you should pass the two Point (P1 and P2) where to evaluate the function, while in the second method (that internally recalls the first) you must provide the two corresponding comoving distances s1 and s2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this TPCF is the following:\n\nbeginsplit\n xi^intphi int phi ( s_1 s_2 y ) = \n int_0^s_1mathrmd chi_1 int_0^s_2mathrmd chi_2 \n J^int phi int phi_40 \n tildeI_0^4 ( Deltachi) \nendsplit\n\nwith\n\nbeginsplit\n J^int phiint phi_40 =\n frac\n 9 Deltachi ^4 mathcalH_0^4 Omega_mathrmM 0^2 D(chi_1) D(chi_2)\n \n a(chi_1) a(chi_2) s_1 s_2\n \n left\n s_1 (f(chi_1) - 1) mathcalH(chi_1) mathcalR_1 - 5 s_mathrmb 1 + 2\n right times\n nonumber \n left\n s_2 (f(chi_2) - 1) mathcalH(chi_2) mathcalR_2 - 5 s_mathrmb 2 + 2\n right\n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nb_1, s_mathrmb 1, mathitf_mathrmevo 1 (and b_2, s_mathrmb 2, mathitf_mathrmevo 2) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nIn this TPCF there are no observer terms. The obs keyword is inserted only for compatibility with the other GNC TPCFs.\n\nThis function is computed integrating integrand_ξ_GNC_IntegratedGP with trapz() from the Trapz Julia package.\n\nInputs\n\nP1::Point and P2::Point, or s1 and s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nb1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:\nif not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;\nif you set one or more values, they will override the cosmo ones in this computation;\nthe two sets of values should be different only if you are interested in studing two galaxy species;\nonly the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities. \ns_lim=nothing : parameter used in order to avoid the divergence of the mathcalR and mathfrakR denominators: when 0 leq s leq s_mathrmlim the returned values are\nforall s in 0 s_mathrmlim quad \n mathfrakR(s) = 1 - frac1mathcalH_0 s_mathrmlim quad\n mathcalR(s) = 5 s_mathrmb + \n frac2 - 5 s_mathrmbmathcalH_0 s_mathrmlim + \n fracdotmathcalHmathcalH_0^2 - mathitf_mathrmevo \nIf nothing, the default value stored in cosmo will be considered.\nobs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?\n:yes or true -> all the observer effects will be considered\n:no or false -> no observer term will be taken into account\n:noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account\nen::Float64 = 1e6: just a float number used in order to deal better with small numbers;\nN_χs_2::Int = 100: number of points to be used for sampling the integral along the ranges (0, s1) (for χ1) and (0, s2) (for χ2); it has been checked that with N_χs_2 ≥ 50 the result is stable.\nsuit_sampling::Bool = true : this bool keyword can be found in all the TPCFs which have at least one χ integral; it is conceived to enable a sampling of the χ integral(s) suited for the given TPCF; however, it actually have an effect only in the TPCFs that have such a sampling implemented in the code. Currently, only ξ_GNC_Newtonian_Lensing (and its simmetryc TPCF) has it.\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, integrand_ξ_GNC_IntegratedGP\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations_1/#Two-Point-Auto-Correlation-Functions-integrands","page":"GNC TPCFs","title":"Two-Point Auto-Correlation Functions integrands","text":"","category":"section"},{"location":"GNC_Correlations_1/","page":"GNC TPCFs","title":"GNC TPCFs","text":"GaPSE.integrand_ξ_GNC_Lensing\nGaPSE.integrand_ξ_GNC_IntegratedGP","category":"page"},{"location":"GNC_Correlations_1/#GaPSE.integrand_ξ_GNC_Lensing","page":"GNC TPCFs","title":"GaPSE.integrand_ξ_GNC_Lensing","text":"integrand_ξ_GNC_Lensing(\n IP1::Point, IP2::Point,\n P1::Point, P2::Point,\n y, cosmo::Cosmology;\n Δχ_min::Float64=1e-1, b1=nothing, b2=nothing, \n s_b1=nothing, s_b2=nothing, 𝑓_evo1=nothing, 𝑓_evo2=nothing,\n s_lim=nothing, obs::Union{Bool,Symbol}=:noobsvel\n ) ::Float64\n\nintegrand_ξ_GNC_Lensing(\n χ1::Float64, χ2::Float64,\n s1::Float64, s2::Float64,\n y, cosmo::Cosmology;\n kwargs... )::Float64\n\nReturn the integrand of the Two-Point Correlation Function (TPCF) of the Lensing auto-correlation effect arising from the Galaxy Number Counts (GNC).\n\nIn the first method, you should pass the two extreme Points (P1 and P2) and the two intermediate integrand Points (IP1 and IP2) where to evaluate the function. In the second method (that internally recalls the first), you must provide the four corresponding comoving distances s1, s2, χ1, χ2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this integrand is the following:\n\nbeginequation\n f^kappakappa (chi_1 chi_2 s_1 s_2 y) = \n J^kappakappa_alpha\n left\n J^kappakappa_00 I_0^0(Deltachi) + \n J^kappakappa_02 I_2^0(Deltachi) +\n J^kappakappa_31 I_1^3(Deltachi) +\n J^kappakappa_22 I_2^2(Deltachi)\n right \nendequation\n\nwith\n\nbeginsplit\n J^kappakappa_alpha = \n frac\n mathcalH_0^4 Omega_mathrmM0^2 D(chi_1) D(chi_2) \n \n s_1 s_2 a(chi_1) a(chi_2)\n (chi_1 - s_1)(chi_2 - s_2)\n (5 s_mathrmb 1 - 2)(5 s_mathrmb 2 - 2) \n \n \n J^kappakappa_00 = \n -frac 3 chi_1^2 chi_2^24 Deltachi^4 (y^2 - 1)\n left\n 8 y (chi_1^2 + chi_2^2) - 9chi_1chi_2y^2 - \n 7chi_1chi_2\n right \n \n \n J^kappakappa_02 = \n -frac 3 chi_1^2 chi_2^22 Deltachi^4(y^2 - 1)\n left\n 4 y (chi_1^2 + chi_2^2) - 3 chi_1 chi_2 y^2 -\n 5 chi_1 chi_2\n right \n \n \n J^kappakappa_31 = 9 y Deltachi^2 \n \n \n J^kappakappa_22 = \n frac9 chi_1 chi_24 Deltachi^4\n left\n 2(chi_1^4 + chi_2^4)(7 y^2 - 3) - \n 16 y chi_1 chi_2 (chi_1^2 + chi_2^2)(y^2 + 1) + \n right\n leftqquadqquadqquad\n chi_1^2 chi_2^2 (11y^4 + 14y^2 + 23) \n right \n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nb_1, s_mathrmb 1, mathitf_mathrmevo 1 (and b_2, s_mathrmb 2, mathitf_mathrmevo 2) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nIn this TPCF there are no observer terms. The obs keyword is inserted only for compatibility with the other GNC TPCFs.\n\nThis function is used inside ξ_GNC_Lensing with trapz() from the Trapz Julia package.\n\nInputs\n\nIP1::Point, IP2::Point, P1::Point, P2::Point or χ1, χ2, s1, s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nb1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:\nif not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;\nif you set one or more values, they will override the cosmo ones in this computation;\nthe two sets of values should be different only if you are interested in studing two galaxy species;\nonly the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities. \ns_lim=nothing : parameter used in order to avoid the divergence of the mathcalR and mathfrakR denominators: when 0 leq s leq s_mathrmlim the returned values are\nforall s in 0 s_mathrmlim quad \n mathfrakR(s) = 1 - frac1mathcalH_0 s_mathrmlim quad\n mathcalR(s) = 5 s_mathrmb + \n frac2 - 5 s_mathrmbmathcalH_0 s_mathrmlim + \n fracdotmathcalHmathcalH_0^2 - mathitf_mathrmevo \nIf nothing, the default value stored in cosmo will be considered.\nobs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?\n:yes or true -> all the observer effects will be considered\n:no or false -> no observer term will be taken into account\n:noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account\nΔχ_min::Float64 = 1e-4 : when Deltachi = sqrtchi_1^2 + chi_2^2 - 2 chi_1 chi_2 y to 0^+, some I_ell^n term diverges, but the overall parenthesis has a known limit:\n lim_Deltachi to 0^+ left(\n J_00^kappakappa I^0_0(Deltachi) + \n J_02^kappakappa I^0_2(Deltachi) + \n J_31^kappakappa I^3_1(Deltachi) + \n J_22^kappakappa I^2_2(Deltachi)\n right) = \n 3 sigma_2 + frac65 chi_2^2 sigma_0\nSo, when it happens that Deltachi Deltachi_mathrmmin, the function considers this limit as the result of the parenthesis instead of calculating it in the normal way; it prevents computational divergences.\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_Lensing\n\n\n\n\n\n","category":"function"},{"location":"GNC_Correlations_1/#GaPSE.integrand_ξ_GNC_IntegratedGP","page":"GNC TPCFs","title":"GaPSE.integrand_ξ_GNC_IntegratedGP","text":"integrand_ξ_GNC_IntegratedGP(\n IP1::Point, IP2::Point,\n P1::Point, P2::Point,\n y, cosmo::Cosmology; \n b1=nothing, b2=nothing, s_b1=nothing, s_b2=nothing, \n 𝑓_evo1=nothing, 𝑓_evo2=nothing, s_lim=nothing,\n obs::Union{Bool,Symbol}=:noobsvel\n ) ::Float64\n\nintegrand_ξ_GNC_IntegratedGP(\n χ1::Float64, χ2::Float64,\n s1::Float64, s2::Float64,\n y, cosmo::Cosmology;\n kwargs...) ::Float64\n\nReturn the integrand of the Two-Point Correlation Function (TPCF) of the Integrated Gravitational Potential (GP) auto-correlation effect arising from the Galaxy Number Counts (GNC).\n\nIn the first method, you should pass the two extreme Points (P1 and P2) and the two intermediate integrand Points (IP1 and IP2) where to evaluate the function. In the second method (that internally recalls the first), you must provide the four corresponding comoving distances s1, s2, χ1, χ2. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of this integrand is the following:\n\nbeginequation\n f^int phiint phi (chi_1 chi_2 s_1 s_2 y) = \n J^int phi int phi_40 \n tildeI_0^4 ( Deltachi) \nendequation\n\nwith\n\nbeginsplit\n J^int phiint phi_40 =\n frac\n 9 Deltachi ^4 mathcalH_0^4 Omega_mathrmM0^2 D(chi_1) D(chi_2)\n \n a(chi_1) a(chi_2) s_1 s_2\n \n left\n s_1 (f(chi_1) - 1) mathcalH(chi_1) mathcalR_1 - 5 s_mathrmb 1 + 2\n right times\n nonumber \n left\n s_2 (f(chi_2) - 1) mathcalH(chi_2) mathcalR_2 - 5 s_mathrmb 2 + 2\n right\n \nendsplit\n\nwhere:\n\ns_1 and s_2 are comoving distances;\nD_1 = D(s_1), ... is the linear growth factor (evaluated in s_1);\na_1 = a(s_1), ... is the scale factor (evaluated in s_1);\nf_1 = f(s_1), ... is the linear growth rate (evaluated in s_1);\nmathcalH_1 = mathcalH(s_1), ... is the comoving Hubble distances (evaluated in s_1);\ny = costheta = hatmathbfs_1 cdot hatmathbfs_2;\nmathcalR_1 = mathcalR(s_1), ... is computed by func_ℛ_GNC in cosmo::Cosmology (and evaluated in s_1 ); the definition of mathcalR(s) is the following:\nmathcalR(s) = 5 s_mathrmb(s) + frac2 - 5 s_mathrmb(s)mathcalH(s) s + \nfracdotmathcalH(s)mathcalH(s)^2 - mathitf_mathrmevo quad \nb_1, s_mathrmb 1, mathitf_mathrmevo 1 (and b_2, s_mathrmb 2, mathitf_mathrmevo 2) : galaxy bias, magnification bias (i.e. the slope of the luminosity function at the luminosity threshold), and evolution bias for the first (second) effect;\nOmega_mathrmM0 = Omega_mathrmcdm + Omega_mathrmb is the sum of cold-dark-matter and barionic density parameters (again, stored in cosmo);\nI_ell^n and sigma_i are defined as\nI_ell^n(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_ell(qs)(qs)^n quad \nquad sigma_i = int_0^+infty fracmathrmdq2pi^2 \n q^2-i P(q)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\ntildeI_0^4 is defined as\ntildeI_0^4 = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) fracj_0(qs) - 1(qs)^4\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo) and j_ell as spherical Bessel function of order ell;\nmathcalH_0, f_0 and so on are evaluated at the observer position (i.e. at present day);\nDeltachi_1 = sqrtchi_1^2 + s_2^2-2chi_1s_2y and Deltachi_2 = sqrts_1^2 + chi_2^2-2s_1chi_2y;\ns=sqrts_1^2 + s_2^2 - 2 s_1 s_2 y and Deltachi = sqrtchi_1^2 + chi_2^2-2chi_1chi_2y.\n\nIn this TPCF there are no observer terms. The obs keyword is inserted only for compatibility with the other GNC TPCFs.\n\nThis function is used inside ξ_GNC_IntegratedGP with trapz() from the Trapz Julia package.\n\nInputs\n\nIP1::Point, IP2::Point, P1::Point, P2::Point or χ1, χ2, s1, s2: Point/comoving distances where the TPCF has to be calculated; they contain all the data of interest needed for this calculus (comoving distance, growth factor and so on).\ny: the cosine of the angle between the two points P1 and P2 wrt the observer\ncosmo::Cosmology: cosmology to be used in this computation; it contains all the splines used for the conversion s -> Point, and all the cosmological parameters b, ...\n\nKeyword Arguments\n\nb1=nothing, s_b1=nothing, 𝑓_evo1=nothing and b2=nothing, s_b2=nothing, 𝑓_evo2=nothing: galaxy, magnification and evolutionary biases respectively for the first and the second effect computed in this TPCF:\nif not set (i.e. if you leave the default value nothing) the values stored in the input cosmo will be considered;\nif you set one or more values, they will override the cosmo ones in this computation;\nthe two sets of values should be different only if you are interested in studing two galaxy species;\nonly the required parameters for the chosen TPCF will be used, depending on its analytical expression; all the others will have no effect, we still inserted them for pragmatical code compatibilities. \ns_lim=nothing : parameter used in order to avoid the divergence of the mathcalR and mathfrakR denominators: when 0 leq s leq s_mathrmlim the returned values are\nforall s in 0 s_mathrmlim quad \n mathfrakR(s) = 1 - frac1mathcalH_0 s_mathrmlim quad\n mathcalR(s) = 5 s_mathrmb + \n frac2 - 5 s_mathrmbmathcalH_0 s_mathrmlim + \n fracdotmathcalHmathcalH_0^2 - mathitf_mathrmevo \nIf nothing, the default value stored in cosmo will be considered.\nobs::Union{Bool,Symbol} = :noobsvel : do you want to consider the observer terms in the computation of the chosen GNC TPCF effect?\n:yes or true -> all the observer effects will be considered\n:no or false -> no observer term will be taken into account\n:noobsvel -> the observer terms related to the observer velocity (that you can find in the CF concerning Doppler) will be neglected, the other ones will be taken into account\n\nSee also: Point, Cosmology, ξ_GNC_multipole, map_ξ_GNC_multipole, print_map_ξ_GNC_multipole, ξ_GNC_IntegratedGP\n\n\n\n\n\n","category":"function"},{"location":"","page":"Introduction","title":"Introduction","text":"DocTestSetup = quote\n using GaPSE\nend","category":"page"},{"location":"#GaPSE.jl-:-a-Galaxy-Power-Spectrum-Estimator","page":"Introduction","title":"GaPSE.jl : a Galaxy Power Spectrum Estimator","text":"","category":"section"},{"location":"","page":"Introduction","title":"Introduction","text":"This is the documentation of GaPSE.jl package, an implementation of a Galaxy Power Spectrum Estimator written in Julia.","category":"page"},{"location":"#Documentation","page":"Introduction","title":"Documentation","text":"","category":"section"},{"location":"","page":"Introduction","title":"Introduction","text":"The documentation was built using Documenter.jl.","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"using Dates # hide\nprintln(\"Documentation built on $(now()) using Julia $(VERSION).\") # hide","category":"page"},{"location":"#Brief-description","page":"Introduction","title":"Brief description","text":"","category":"section"},{"location":"","page":"Introduction","title":"Introduction","text":"Measurements of the clustering of galaxies in Fourier space, at low wavenumbers, offer a window into the early Universe via the possible presence of scale dependent bias generated by Primordial Non Gaussianities [1] [2]. On such large scales, a Newtonian treatment of density of density perturbations might not be sufficient to describe the measurements, and a fully relativistic calculation should be employed.","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"Given the matter Power Spectrum (PS) at redshift z=0 and the background quantities for the Universe considered (both read from CLASS outputs), this program can compute:","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"all the 16 TPCFs arising from the Luminosity Distance (LD) perturbations (see Eq.(2.48) of [4]) for an arbitrary multipole order.\nall the 25 TPCFs concerning the relativistic Galaxy Number Counts (GNC) (see Eq.(2.52) of [4]) for an arbitrary multipole order.\nall the 20 cross correlations between GNC and LD (and their 20 counterparts LD cross GNC) for an arbitrary multipole order.\nthe PS multipoles of all of them (based on the Yamamoto estimator).\nthe Doppler and matter TPCFs in the plane-parallel approximation.","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"All these calculations can be performed both with and without a survey window function. The code implements also a toy-survey with azymuthal symmetry.","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"This project, and the analytical expressions used for the TPCFs, are based on the article of Emanuele Castorina and Enea Di Dio [3]. ","category":"page"},{"location":"#Installation-and-Usage","page":"Introduction","title":"Installation and Usage","text":"","category":"section"},{"location":"","page":"Introduction","title":"Introduction","text":"Currently, this package is not in the Julia package registries. There are two main ways to install and use GaPSE on your local machine:","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"the traditional way: you clone this gitrepo locally and you install the librarires that GaPSE needs in a suited Julia enviroment; it requires a compatible Julia version ≥1.8;\nusing a Docker container (experimental): you pull and run the GaPSE container; it requires a Docker installation.","category":"page"},{"location":"#traditional-way:-Installation","page":"Introduction","title":"traditional way: Installation","text":"","category":"section"},{"location":"","page":"Introduction","title":"Introduction","text":"Assuming that you have already installed a coompatible Julia version, the simplest way to install this software is then the following:","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"in the terminal, go to the directory where you want to install this package;\nclone this repository with Git\n$ git clone https://github.com/foglienimatteo/GaPSE.jl\nor manually download the source code from the url https://github.com/foglienimatteo/GaPSE.jl (Code > Download Zip)\ngo inside the directory of GaPSE ($ cd GaPSE.jl in the shell) ","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"Inside the directory, there is a file called install_gapse.jl, which is a Julia script conceived for downloading and installing all the dependencies of GaPSE. You can run it by typing in the terminal:","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":" $ julia install_gapse.jl","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"If there are no error messages at the end of the installations, than GaPSE is corretly configured and you can start to use it!","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"NOTE: the packages that this script will install are the ones strictly required for GaPSE. The ipynbs we provide need however some more, as Plots, LaTeXStrings and PyPlot (which in turn requires a python kernel with Matplotlib installed); in case you don't have them, run with a terminal in this directory:","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"$ pip3 install matplotlib\n$ julia --activate=. --eval 'using Pkg; for p in [\"Plots\", \"LaTeXStrings\", \"PyPlot\"]; Pkg.add(p); end; Pkg.resolve()'","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"NOTE: instead of using the install_gapse.jl script, you can also do the same in a more interactive way, if you prefer:","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"open a Julia REPL session and activate the project; you can achieve that opening the REPL with \n$ julia --activate=.\nor directy inside the REPL entering the Pkg mode (]) and running activate .\nenter the Pkg mode (if you haven't done in the previous step) typing ] and run instantiate; this command will automatically detect and install all the package dependecies (listed in Project.toml)\ndone! You can exit from the package mode (press the Backspace key on an empty line) and start to use GaPSE","category":"page"},{"location":"#traditional-way:-Usage","page":"Introduction","title":"traditional way: Usage","text":"","category":"section"},{"location":"","page":"Introduction","title":"Introduction","text":"There are three ways in order to use this code:","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"you can write whatever instruction inside the file GaPSE-exe.jl and then run in the command line\n $ julia GaPSE-exe.jl\nyou can open a Julia REPL session, include the code with\n include(\"/src/GaPSE.jl\")\nand then use interactively the GaPSE functions\nyou can run the same include(\"/src/GaPSE.jl\") command in a Jupyter Notebook, and use the code functions inside it. This is by far the most confortable way.","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"Some .ipynbs are already provided in the directory ipynbs :","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"we encourage you to follow the ipynbs/TUTORIAL.ipynb file first. The basic structure of the code and the most important functions are there presented\nipynbs/Computations_b1p5-sb0-fevo0.ipynb explains the analytical Primordial Non-Gaussianities model we use here, compute its contribution in the redshift bin 10 leq z leq 15 and compare it with the GNC effects, all using our toy-model window function with angular opening theta_rm max = pi2\nipynbs/Generic_Window.ipynb explains how to use GaPSE with a generic Window Function of your choice\nthe ipynbs/Computations_b1p5-sb0-fevo0.jl Julia file its the translation into script of ipynbs/Computations_b1p5-sb0-fevo0.ipynb; you can easily run it from the command line with:\n $ julia Computations_b1p5-sb0-fevo0.jl","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"The code is well tested and documented: almost each struct/function has a docstring that you can easily access in Julia with ?, and there is an acitive GitHub Pages website with the latest stable documentation.","category":"page"},{"location":"#Docker-container:-Installation-and-Usage","page":"Introduction","title":"Docker container: Installation and Usage","text":"","category":"section"},{"location":"","page":"Introduction","title":"Introduction","text":"The Dockerfile we provide in this directory is the one we used to create the container image corresponding to this GaPSE version.","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"The images are saved in https://hub.docker.com/repository/docker/matteofoglieni/gapse/general and the tag is the same as the GaPSE version the container refers to + a latin letter (alphabetically orderer), to take into account different version of the Dockerfile which refer to the same GaPSE one. The latest container name is then gapse:0.8.0a.","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"These containers have already installed all the Julia packages that GaPSE needs (i.e. the ones listed in Project.toml) + come others for the ipynbs (check the Dockerfile itself).","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"Supposing that you have already installed Docker, so as to use GaPSE as a container:","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"download the image: \n$ sudo docker pull matteofoglieni/gapse:0.8.0a\nchoose a free port where to access the JupyterLab of the container; we will use 10000;\nrun the container with that port:\n$ sudo docker run -d -p 10000:8888 matteofoglieni/gapse:0.8.0a\nget the logs of the container and copy the Jupyter token (in the following output is 531vbeb08567581944e486d47e1tee15683757086205da68):\n$ sudo docker logs $(sudo docker ps -ql)\n...\n[I 2023-09-13 12:51:47.960 ServerApp] Jupyter Server 2.7.0 is running at:\n[I 2023-09-13 12:51:47.960 ServerApp] http://7b1ca9747263:8888/lab?token=531vbeb08567581944e486d47e1tee15683757086205da68\n[I 2023-09-13 12:51:47.960 ServerApp] http://127.0.0.1:8888/lab?token=531vbeb08567581944e486d47e1tee15683757086205da68\n[I 2023-09-13 12:51:47.960 ServerApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).\n[C 2023-09-13 12:51:47.962 ServerApp] \n \n To access the server, open this file in a browser:\n file:///home/jovyan/.local/share/jupyter/runtime/jpserver-7-open.html\n Or copy and paste one of these URLs:\n http://7f1ca9847263:8888/lab?token=531vbeb08567581944e486d47e1tee15683757086205da68\n http://127.0.0.1:8888/lab?token=531vbeb08567581944e486d47e1tee15683757086205da68\n[I 2023-09-13 12:51:48.653 ServerApp] Skipped non-installed server(s): bash-language-server, dockerfile-language-server-nodejs, javascript-typescript-langserver, jedi-language-server, julia-language-server, pyright, python-language-server, python-lsp-server, r-languageserver, sql-language-server, texlab, typescript-language-server, unified-language-server, vscode-css-languageserver-bin, vscode-html-languageserver-bin, vscode-json-languageserver-bin, yaml-language-server\n...\nopen a browser of your choice on your local machine and paste as URL http://127.0.0.1:10000/lab?token=531vbeb08567581944e486d47e1tee15683757086205da68 (essentially, you just have to substitute the port 8888 with the one you choose in the URL showed in the previous logs).\nnow you should see a JupyterLab page containing the GaPSE files.","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"Now you can use GaPSE inside the Jupyter interface as normally!","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"Quick summary of Docker commands, in case you don't know them:","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"sudo docker ps [-a] : list running containers (all with -a);\nsudo docker logs : get the logs of a container;\nsudo docker start/stop : start a stopped container/stop a running container;\nsudo docker rm : delete a container;\nsudo docker pull : download a container image;\nsudo docker run : create a running container from an image;\nsudo docker image list : list all the local images;\nsudo docker image rm : delete an image.","category":"page"},{"location":"#Dependencies","page":"Introduction","title":"Dependencies","text":"","category":"section"},{"location":"","page":"Introduction","title":"Introduction","text":"GaPSE.jl makes extensive use of the following packages:","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"TwoFAST[5], FFTLog and FFTW in order to perform Fast Fourier Transforms on integrals containing Spherical Bessel functions j_ell(x)\nDierckx and GridInterpolations for 1D and 2D Splines respectively\nLsqFit for basic least-squares fitting\nQuadGK, Trapz and FastGaussQuadrature for preforming 1D integrations, and HCubature for the 2D ones\nArbNumerics, AssociatedLegendrePolynomials, LegendrePolynomials and SpecialFunctions for mathematical function evaluations, especially for the Legendre Polinomials mathcalL_ell(x) and the Gamma function $ \\Gamma(x) $\nother native Julia packages: DelimitedFiles, Documenter, IJulia, LinearAlgebra, NPZ, Printf, ProgressMeter, Suppressor, Test","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"Furthermore, the notebooks we provide in ipynbs use:","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"Plots for the pure julian plots;\nLaTeXStrings for the labels in LaTeX;\nPyPlot for the julian plots in the python style; this package is based on the Matplotlib Python package, and it requires it in order to run properly.","category":"page"},{"location":"#How-to-report-bugs,-suggest-improvements-and/or-contribute","page":"Introduction","title":"How to report bugs, suggest improvements and/or contribute","text":"","category":"section"},{"location":"","page":"Introduction","title":"Introduction","text":"As already mentioned above, this is a WIP project used mostly by the authors themselves, and so bugs are behind the corner. If you discover one of them, or if you would like to make a suggestion about a possible new feature that the code might implement, do not hesitate to contact the authors via email () or fork the repository and open a pull request like follows:","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"fork the project: on the top of the GaPSE.jl Github page, go to Fork > Create a new Fork\ndownload your forked repository from your GitHub profile\ncreate your branch: in the terminal, run $ git checkout -b feature/\nmake the changes/improvements you want in that branch\ncommit your changes in that branch: in the terminal, run $ git commit -m 'added the feature '\npush: in the terminal, run $ git push origin feature/\nopen a Pull Request for that branch","category":"page"},{"location":"#Using-this-code","page":"Introduction","title":"Using this code","text":"","category":"section"},{"location":"","page":"Introduction","title":"Introduction","text":"If you use GaPSE to compute the galaxy power spectrum/correlation function please refer to the two following papers:","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"Castorina, Di Dio, The observed galaxy power spectrum in General Relativity (2022), Journal of Cosmology and Astroparticle Physics, DOI: 10.1088/1475-7516/2022/01/061 (arXiv 2106.08857)\nFoglieni, Pantiri, Di Dio, Castorina, The large scale limit of the observed galaxy power spectrum (2023), Physical Review Letters, DOI: 10.1103/PhysRevLett.131.111201 (arXiv 2303.03142)","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"If you also use the code to compute the perturbations in the luminosity distance, please refer also to","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"Pantiri, Foglieni, Di Dio, Castorina, The power spectrum of luminosity distance fluctuations in General Relativity (2023) [in preparation]","category":"page"},{"location":"#Licence","page":"Introduction","title":"Licence","text":"","category":"section"},{"location":"","page":"Introduction","title":"Introduction","text":"This software is under the GNU 3.0 General Public Licence. See the file LICENCE.md in the repository.","category":"page"},{"location":"#References","page":"Introduction","title":"References","text":"","category":"section"},{"location":"","page":"Introduction","title":"Introduction","text":"[1] Dalal, Doré et al., Imprints of primordial non-Gaussianities on large-scale structure (2008), American Physical Society, DOI: 10.1103/PhysRevD.77.123514, url: https://journals.aps.org/prd/abstract/10.1103/PhysRevD.77.123514","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"[2] Slosar, Hirata et al., Constraints on local primordial non-Gaussianity from large scale structure (2008), Journal of Cosmology and Astroparticle Physics, DOI: 10.1088/1475-7516/2008/08/031, url: https://doi.org/10.1088/1475-7516/2008/08/031","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"[3] Castorina, Di Dio, The observed galaxy power spectrum in General Relativity (2022), Journal of Cosmology and Astroparticle Physics, DOI: 10.1088/1475-7516/2022/01/061, url: https://doi.org/10.1088/1475-7516/2022/01/061","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"[4] Paul Dierckx, Curve and Surface Fitting with Splines (1993), Oxford University Press","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"[5] Gebhardt, Jeong et al, Fast and accurate computation of projected two-point functions (2018), American Physical Society, DOI: 10.1103/PhysRevD.97.023504, url: https://link.aps.org/doi/10.1103/PhysRevD.97.023504","category":"page"},{"location":"#Contents","page":"Introduction","title":"Contents","text":"","category":"section"},{"location":"","page":"Introduction","title":"Introduction","text":"","category":"page"},{"location":"#Index","page":"Introduction","title":"Index","text":"","category":"section"},{"location":"","page":"Introduction","title":"Introduction","text":"","category":"page"},{"location":"PNG/","page":"implication on PNG","title":"implication on PNG","text":"DocTestSetup = quote\n using GaPSE\nend","category":"page"},{"location":"PNG/#The-implications-on-the-local-Primordial-Non-Gaussianities","page":"implication on PNG","title":"The implications on the local Primordial Non-Gaussianities","text":"","category":"section"},{"location":"PNG/","page":"implication on PNG","title":"implication on PNG","text":"GaPSE.TF\nGaPSE.α_bias\nGaPSE.IntegralIPSalpha\nGaPSE.CosmoPNGParams\nGaPSE.CosmoPNG\nGaPSE.ξ_S_L0\nGaPSE.ξ_S_L2\nGaPSE.ξ_S\nGaPSE.integrand_ξ_S_multipole\nGaPSE.ξ_S_multipole\nGaPSE.map_ξ_S_multipole\nGaPSE.print_map_ξ_S_multipole","category":"page"},{"location":"PNG/#GaPSE.TF","page":"implication on PNG","title":"GaPSE.TF","text":"TF(\n left_value::Float64\n left::Float64\n\n spline::Dierckx.Spline1D\n\n r_si::Float64\n r_b::Float64\n r_a::Float64\n right::Float64\n )\n\nContains all the information useful in order to return the Transfer Function value from:\n\na spline inside the interval left ≤ x ≤ right\nthe associated power law for x > right (with \"right\" coefficients r_si, r_b and r_a)\nthe associated constant left value left_value for x < left\n\nArguments\n\nleft_value::Float64 : the constant value that must be returned in case x < left.\nleft::Float64 : the break between the left power-law (for x right is given, the returned one is obtained from power_law with this coefficients ( where, of course, r_si is the exponent, r_bthe coefficient andr_athe spurious adding constant). NOTE: for numerical issues, the \"pure\" power-lawy = f(x) = b + x^s` should be used. \n\nConstructors\n\nTF(ks, Tks) : from a set of (ks, Tks) pairs, take the mean of the first 10 as left value and fit with power_law_from_data the last 15.\n\nSee also: power_law_from_data\n\n\n\n\n\n","category":"type"},{"location":"PNG/#GaPSE.α_bias","page":"implication on PNG","title":"GaPSE.α_bias","text":"α_bias(k, tf::TF; bf=1.0, D=1.0, Ω_M0=0.29992)\n\nReturn the coefficient alpha_rm bias that relates the Non-Gaussian density fluctiations delta_rm NG and the Non-Gaussian gravitational potential Phi_rm NG in Fourier space:\n\ndelta_rm NG(k) = alpha(k z) Phi_rm NG(k) quad\nalpha(k z) = frac23 frack^2 T_m(k) D(z)Omega_mathrmM0 left(fraccH_0right)^2 \n quad alpha_rm bias = fracb_phi f_rm NLalpha(k z) \n\nbf=1.0 : value of the degenerate product b_phi f_rm NL.\nD = 1.0 : value of the linear growth factor D at present day; inside this function, it is multiplied for a constant q = 0779017 in order to normalize D(z) to 1/(1+z) in matter domination, i.e. such that q D(z) (1+z) = 1 at z=20 \n\nSee also: TF\n\n\n\n\n\n","category":"function"},{"location":"PNG/#GaPSE.IntegralIPSalpha","page":"implication on PNG","title":"GaPSE.IntegralIPSalpha","text":"IntegralIPSalpha(\n l_si::Float64\n l_b::Float64\n l_a::Float64\n left::Float64\n\n spline::Dierckx.Spline1D\n\n r_si::Float64\n r_b::Float64\n r_a::Float64\n right::Float64\n)\n\nContains all the information useful in order to return the value of the integral of the Input Power Spectrum weighted with the α_bias function. In other words, return this expression:\n\nint_0^infty fracmathrmd q2 pi^2 q^2 \n fracj_ell(qs)(qs)^n P(q) alpha_mathrmbias \n\nwhere P(q) is the Input Power Spectrum and\n\ndelta_rm NG(k) = alpha(k z) Phi_rm NG(k) quad\nalpha(k z) = frac23 frack^2 T_m(k) D(z)Omega_mathrmM0 left(fraccH_0right)^2 \n quad alpha_rm bias = fracb_phi f_rm NLalpha(k z) \n\nArguments\n\nl_si, l_b, l_a ::Float64 : coefficient for the spurious power-law y = f(x) = a + b x^s for the LEFT edge; when an input value x < left is given, the returned one is obtained from power_law with this coefficients ( where, of course, l_si is the exponent, l_b the coefficient and l_a the spurious adding constant). \nleft::Float64 : the break between the left power-law (for x < left) and the spline (for x ≥ left); its value is the fit_min of the used constructor.\nspline::Dierckx.Spline1D : spline that interpolates between the real values of the integral calculated inside the range left ≤ x ≤ right\nright::Float64 : the break between the right power-law (for x > right) and the spline (for x ≤ right); its value is the fit_max of the used constructor.\nr_si, r_b, r_a ::Float64 : coefficient for the spurious power-law y = f(x) = a + b x^s for the RIGHT edge; when an input value x > right is given, the returned one is obtained from power_law with this coefficients ( where, of course, r_si is the exponent, r_b the coefficient and r_a the spurious adding constant). NOTE: for numerical issues, only the \"pure\" power-law y = f(x) = b + x^s can be used. In other words, it always set r_a = 0.0.\n\nConstructors\n\nIntegralIPSalpha(tf::TF, cosmo::Cosmology, l, n=0; D=nothing, bf=1.0,\n N::Int=1024, kmin=1e-6, kmax=1e4, s0=1e-4,\n fit_left_min=nothing, fit_left_max=nothing, p0_left=nothing,\n fit_right_min=nothing, fit_right_max=nothing, p0_right=nothing)\n\nThe integral obtained with this constructor is calculated through xicalc, and expanded with power-laws at the edges.\n\ntf::TF: the struct that contains all the data concerning the Transfer Function.\ncosmo::Cosmology : cosmology to be used in this computation\nl : degree of the spherical Bessel function to be used.\nn=0 : degree of the exponent for the denominator. The interesting case is only the default value 0.\nD = nothing : value of the linear growth factor D to be used. If nothing, it will be internally set as D(z_mathrmeff), where z_mathrmeff is the effective redshift for the input cosmology.\nbf = 1.0 : value of the degenerate product b_phi f_rm NL.\nkmin = 1e-6, kmax = 1e4, s0 = 1e-4 : values to be passed to xicalc for the integration\nfit_left_min = 2.0, fit_left_max = 10.0 : the limits (min and max) where the integral must be fitted with a power law, for small distances. This operation is necessary, because xicalc, in this context, gives wrong results for too small input distance s; nevertheless, this integral has fixed power-law trends for s rightarrow 0, so this approach gives good results.\np0_left = nothing : vector with the initial values for the left power-law fitting; its length must be 2 (if you want to fit with a pure power-law y = f(x) = b x^s, so only l_si and l_b are matter of concern) or 3 (if you want to fit with a spurious power-law y = f(x) = a + b x^s, so you are also interested in l_a); if nothing, it will be automatically set p0 = [-1.0, 1.0].\nfit_right_min = nothing, fit_right_max = nothing : the limits (min and max) where the integral must be fitted with a power law, for high distances. This integral has fixed power-law trends for s rightarrow infty, so this approach gives good results. If nothing, the last 15 points returned from xicalc are used for this fitting. NOTE: for numerical issues, only the \"pure\" power-law y = f(x) = b + x^s can be used. \np0_right = nothing : vector with the initial values for the left power-law fitting; its length must be 2 (to fit with a pure power-law y = f(x) = b x^s, so only r_si and r_b are matter of concern); if nothing, it will be automatically set p0 = [-4.0, 1.0].\n\nAll the power-law fitting (both \"pure\" and spurious) are made through the local function power_law_from_data.\n\nSee also: power_law_from_data, power_law, Cosmology, α_bias\n\n\n\n\n\n","category":"type"},{"location":"PNG/#GaPSE.CosmoPNGParams","page":"implication on PNG","title":"GaPSE.CosmoPNGParams","text":"CosmoParams(\n D::Float64 \n bf::Float64\n\n flm_0::Float64 \n flM_0::Float64 \n kmin_0::Float64 \n kmax_0::Float64 \n N_0::Int\n\n flm_2::Float64 \n flM_2::Float64 \n kmin_2::Float64 \n kmax_2::Float64 \n N_2::Int\n )\n\nStruct that contains all the parameters and options that are matter of concerns for the CosmoPNG we are interested in.\n\nArguments\n\nD : linear growth factor D to be used for the α_bias function.\nbf : value of the degenerate product b_phi f_rm NL.\nkmin_0, kmax_0, s00: values to be passed toxicalcfor the integration made byIntegralIPSalphaof the term`J0``\nflm_0, flM_0 : the limits (min and max) where the integral made by IntegralIPSalpha of the term J_0 must be fitted with a power law, for small distances. This operation is necessary, because xicalc, in this context, gives wrong results for too small input distance s; nevertheless, this integral has fixed power-law trends for s rightarrow 0, so this approach gives good results.\nkmin_2, kmax_2, s02,flm2,flM2: same as the previous terms, but for the integral`J2``\n\nConstructors\n\nfunction CosmoPNGParams(D; \n bf = 1.0,\n flm_0 = 5e-2, flM_0 = 1e-1, s0_0 = 1e-4,\n kmin_0 = 1e-6, kmax_0 = 1e4, N_0::Int = 1024,\n flm_2 = 5e-1, flM_2 = 1e0, s0_2 = 1e-4,\n kmin_2 = 1e-6, kmax_2 = 1e4, N_2::Int = 1024,\n )\n\nThe associations are trivials. The only thing to be put attention on is that D is a MANDATORY argument, while all the other ones are keyword arguments with a default value. You should use:\n\npngparams = CosmoPNGParams(cosmo.D_of_s(cosmo.s_eff); ...)\n\nwhere cosmo::Cosmology is the Cosmology you are interested in and s_eff is the effective comoving distance (stored on cosmo). \n\nSee also: Cosmology, CosmoPNG, IntegralIPSalpha, α_bias\n\n\n\n\n\n","category":"type"},{"location":"PNG/#GaPSE.CosmoPNG","page":"implication on PNG","title":"GaPSE.CosmoPNG","text":"CosmoPNG(\n params::CosmoPNGParams\n tf::TF\n file_TF::String\n\n J0::IntegralIPSalpha\n J2::IntegralIPSalpha\n )\n\nStruct that contains all the information that may be used for the Correlation Function computations of the Primordial Non-Gaussianities (PNG) signal.\n\nArguments\n\nparams::CosmoPNGParams : parameters to be used for this Cosmology. See the docstring of CosmoParams for more information on the possible inputs.\ntf::TF : transfer function to be used.\nfile_TF::String : name of the file where the transfer function was read.\nJ0 and J2::IntegralIPSalpha : integrals with the following form:\nJ_ell = int_0^infty fracmathrmd q2 pi^2 q^2 \nj_ell(qs) P(q) alpha_mathrmbias \nwhere P(q) is the Input Power Spectrum and\ndelta_rm NG(k) = alpha(k z) Phi_rm NG(k) quad\nalpha(k z) = frac23 frack^2 T_m(k) D(z)Omega_mathrmM0 left(fraccH_0right)^2 \n quad alpha_rm bias = fracb_phi f_rm NLalpha(k z) \n\nConstructor\n\nCosmoPNG(\n pngparams::CosmoPNGParams,\n cosmo::Cosmology, file_TF::String;\n comments::Bool=true\n)\n\npngparams::CosmoParams : parameters to be used for this Cosmology. See the docstring of CosmoParams for more information on the possible inputs.\ncosmo::Cosmology : cosmology to be considered, both in terms od Input Power Spectrum and of cosmological parameters.\nfile_TF::String : name of the file where the Transfer Function to be used is stored.\ncomments::Bool=true : the file_TF file contains comments at the beginning?\n\nSee also: TF, IntegralIPSalpha, Cosmology\n\n\n\n\n\n","category":"type"},{"location":"PNG/#GaPSE.ξ_S_L0","page":"implication on PNG","title":"GaPSE.ξ_S_L0","text":"ξ_S_L0(P::Point, cosmo::Cosmology, cosmopng::CosmoPNG; b=nothing, sp::Int64=1)\nξ_S_L0(s1, cosmo::Cosmology, cosmopng::CosmoPNG; kwargs...)\n\nReturn the value of the Two-Point Correlation Function (TPCF) monopole of the signal (S) of the local Primordial Non-Gaussianities (PNG) (for the given cosmo::Cosmology and cosmopng::CosmoPNG). In the first method, you should pass the Point where to evaluate that function, while in the second (that internally recalls the first) you must provide the comoving distance s. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of such TPCF monopole is the following:\n\nxi^mathrmS_0(s) = 2 left( b + frac13f(z_mathrmeff)right)\n D^2(z_mathrmeff) J_0(s)\n\nwhere: \n\nb is the galaxy bias (stored in cosmo)\nz is the redshift associated to the comoving distance s in this cosmology\ns_mathrmeff is the effective comoving distance stored in cosmo (and z_mathrmeff its associated effective redshift in that cosmology)\nD the linear growth factor and f the linear growth rate (whose splines are stored in cosmo)\nJ_ell (stored in cosmopng) is defined as\nJ_ell(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) j_ell(qs) alpha_mathrmbias(qz)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo), j_ell as spherical Bessel function of order ell and\nalpha_rm bias(qz) = fracb_phi f_rm NLalpha(q z) quad quad \nalpha(q z) = frac23 fracq^2 T_m(q) D(z)Omega_mathrmM0 left(fraccH_0right)^2\nwith b_phif_rm NL is stored in cosmopng. Check the documentation of α_bias and CosmoPNG for more information.\n\nKeyword arguments\n\nb = nothing : galaxy bias value to be considered in the computation; if set to nothing, its value is inferred from the other keyword argument sp;\nsp::Int64=1 : galaxy type to be considered between the two species stored in cosmo: it can be either 1 or 2, and the corresponding set of galaxy, magnification and evolutionary biases stored in cosmo are considered; in case b is set to a value, this parameter is ignored.\n\nSee also: Point, Cosmology, CosmoPNG, α_bias, ξ_S_L2, ξ_S, integrand_ξ_S_multipole, ξ_S_multipole map_ξ_S_multipole, print_map_ξ_S_multipole\n\n\n\n\n\n","category":"function"},{"location":"PNG/#GaPSE.ξ_S_L2","page":"implication on PNG","title":"GaPSE.ξ_S_L2","text":"ξ_S_L2(P::Point, cosmo::Cosmology, cosmopng::CosmoPNG; b=nothing, sp::Int64=1)\nξ_S_L2(s1, cosmo::Cosmology, cosmopng::CosmoPNG; kwargs...)\n\nReturn the value of the Two-Point Correlation Function (TPCF) quadrupole of the signal (S) of the local Primordial Non-Gaussianities (PNG) (for the given cosmo::Cosmology and cosmopng::CosmoPNG). In the first method, you should pass the Point where to evaluate that function, while in the second (that internally recalls the first) you must provide the comoving distance s. We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of such TPCF monopole is the following:\n\nxi^mathrmS_2(s) = - frac43 f(z_mathrmeff)\n D^2(z_mathrmeff) J_2(s)\n\nwhere: \n\nb is the galaxy bias (stored in cosmo)\nz is the redshift associated to the comoving distance s in this cosmology\ns_mathrmeff is the effective comoving distance stored in cosmo (and z_mathrmeff its associated effective redshift in that cosmology)\nD the linear growth factor and f the linear growth rate (whose splines are stored in cosmo)\nJ_ell (stored in cosmopng) is defined as\nJ_ell(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) j_ell(qs) alpha_mathrmbias(qz)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo), j_ell as spherical Bessel function of order ell and\nalpha_rm bias(qz) = fracb_phi f_rm NLalpha(q z) quad quad \nalpha(q z) = frac23 fracq^2 T_m(q) D(z)Omega_mathrmM0 left(fraccH_0right)^2\nwith b_phif_rm NL is stored in cosmopng. Check the documentation of α_bias and CosmoPNG for more information.\n\nKeyword arguments\n\nb = nothing : galaxy bias value to be considered in the computation; if set to nothing, its value is inferred from the other keyword argument sp;\nsp::Int64=1 : galaxy type to be considered between the two species stored in cosmo: it can be either 1 or 2, and the corresponding set of galaxy, magnification and evolutionary biases stored in cosmo are considered; in case b is set to a value, this parameter is ignored.\n\nSee also: Point, Cosmology, CosmoPNG, α_bias, ξ_S_L0, ξ_S, integrand_ξ_S_multipole, ξ_S_multipole map_ξ_S_multipole, print_map_ξ_S_multipole\n\n\n\n\n\n","category":"function"},{"location":"PNG/#GaPSE.ξ_S","page":"implication on PNG","title":"GaPSE.ξ_S","text":"ξ_S(s, μ, cosmo::Cosmology, cosmopng::CosmoPNG; b=nothing, sp::Int64=1)\n\nReturn the value of the Two-Point Correlation Function (TPCF) of the signal (S) of the local Primordial Non-Gaussianities (PNG) in the given comoving distance s and cosine value for the Legendre polynomials μ (for the given cosmo::Cosmology and cosmopng::CosmoPNG). We remember that all the distances are measured in h_0^-1mathrmMpc.\n\nThe analytical expression of such TPCF monopole is the following:\n\nbeginsplit\nxi^mathrmS(smu) = xi^mathrmS_0(s) + \n xi^mathrmS_2(s) mathcalL_2(mu) \nxi^mathrmS_0(s) = 2 left( b + frac13f(z_mathrmeff)right)\n D^2(z_mathrmeff) J_0(s) \nxi^mathrmS_2(s) = - frac43 f(z_mathrmeff)\n D^2(z_mathrmeff) J_2(s)\nendsplit\n\nwhere: \n\nb is the galaxy bias (stored in cosmo)\nz is the redshift associated to the comoving distance s in this cosmology\ns_mathrmeff is the effective comoving distance stored in cosmo (and z_mathrmeff its associated effective redshift in that cosmology)\nD the linear growth factor and f the linear growth rate (whose splines are stored in cosmo)\nmathcalL_ell the Legendre polynomial of order ell\nJ_ell (stored in cosmopng) is defined as\nJ_ell(s) = int_0^+infty fracmathrmdq2pi^2 \n q^2 P(q) j_ell(qs) alpha_mathrmbias(qz)\nwith P(q) as the matter Power Spectrum at z=0 (stored in cosmo), j_ell as spherical Bessel function of order ell and\nalpha_rm bias(qz) = fracb_phi f_rm NLalpha(q z) quad quad \nalpha(q z) = frac23 fracq^2 T_m(q) D(z)Omega_mathrmM0 left(fraccH_0right)^2\nwith b_phif_rm NL is stored in cosmopng. Check the documentation of α_bias and CosmoPNG for more information.\n\nKeyword arguments\n\nb = nothing : galaxy bias value to be considered in the computation; if set to nothing, its value is inferred from the other keyword argument sp;\nsp::Int64=1 : galaxy type to be considered between the two species stored in cosmo: it can be either 1 or 2, and the corresponding set of galaxy, magnification and evolutionary biases stored in cosmo are considered; in case b is set to a value, this parameter is ignored.\n\nSee also: Point, Cosmology, CosmoPNG, α_bias, ξ_S_L0, ξ_S_L2, integrand_ξ_S_multipole, ξ_S_multipole map_ξ_S_multipole, print_map_ξ_S_multipole\n\n\n\n\n\n","category":"function"},{"location":"PNG/#GaPSE.integrand_ξ_S_multipole","page":"implication on PNG","title":"GaPSE.integrand_ξ_S_multipole","text":"integrand_ξ_S_multipole(s, μ, cosmo::Cosmology, cosmopng::CosmoPNG;\n L::Int=0, use_windows::Bool=true, b=nothing, sp::Int64=1 )::Float64\n\nReturn the integrand on mu = hatmathbfs_1 cdot hatmathbfs of the Two-Point Correlation Function (TPCF) concerning the signal (S) of the local Primordial Non-Gaussianities (PNG), i.e. the following function f(s mu):\n\n f_L(s mu) = xi^mathrmS left(s muright) \n mathcalL_L(mu) times \n begincases \n frac1mathcalNmathcalF(s mu) quad mathrmuse_windows == true \n 1 quadquad mathrmuse_windows == false\n endcases\n\nwhere:\n\nxi^mathrmS is the TPCF of the PNG signal, computed from ξ_S.\nmathcalL_L(mu) is the Legendre polynomial of order L\nmathcalF(s mu) is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)\nmathcalN is the integrated window function norm (check the documentation of WindowFIntegrated)\n\nInputs\n\ns: the comoving distance where must be evaluated the integral\nμ: the cosine between s1 and s where must be evaluated the integral\ncosmo::Cosmology: cosmology to be used in this computation\ncosmopng::CosmoPNG: struct that contains all the information that may be used for the TPCF computations of the PNG signal.\n\nKeyword arguments\n\nL::Int = 0: order of the Legendre polynomial to be used\nuse_windows::Bool = false: tells if the integrand must consider mathcalF or not.\nb = nothing : galaxy bias value to be considered in the computation; if set to nothing, its value is inferred from the other keyword argument sp;\nsp::Int64=1 : galaxy type to be considered between the two species stored in cosmo: it can be either 1 or 2, and the corresponding set of galaxy, magnification and evolutionary biases stored in cosmo are considered; in case b is set to a value, this parameter is ignored.\n\nSee also:ξ_S, ξ_S_multipole, map_ξ_S_multipole, print_map_ξ_S_multipole WindowFIntegrated, Cosmology, CosmoPNG, \n\n\n\n\n\n","category":"function"},{"location":"PNG/#GaPSE.ξ_S_multipole","page":"implication on PNG","title":"GaPSE.ξ_S_multipole","text":"ξ_S_multipole(\n s, cosmo::Cosmology, cosmopng::CosmoPNG;;\n L::Int = 0, use_windows::Bool = true,\n atol_quad::Float64 = 0.0,\n rtol_quad::Float64 = 1e-2\n enhancer::Float64 = 1e6,\n b=nothing, sp::Int64=1 ) ::Float64\n\nEvaluate the multipole of order L of the Two-Point Correlation Function (TPCF) concerning the signal (S) of the local Primordial Non-Gaussianities (PNG), i.e. the following function xi^mathrmS (s):\n\n xi^mathrmS (s) = frac2 L + 12 int_-1^+1 mathrmdmu \n xi^mathrmS left(s muright) \n mathcalL_L(mu) times \n begincases \n frac1mathcalNmathcalF(s mu) quad mathrmuse_windows == true \n 1 quadquad mathrmuse_windows == false\n endcases\n\nwhere:\n\nxi^mathrmS(smu) is the TPCF of the PNG signal with the angular dependence, computed from ξ_S.\nmathcalL_L(mu) is the Legendre polynomial of order L\nmathcalF(s mu) is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)\nmathcalN is the integrated window function norm (check the documentation of WindowFIntegrated)\n\nThe integration over mu is preformed through the Julia function quadgk from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n\nInputs\n\ns: the comoving distance where must be evaluated the integral\ncosmo::Cosmology: cosmology to be used in this computation\ncosmopng::CosmoPNG: struct that contains all the information that may be used for the TPCF computations of the PNG signal.\n\nKeyword arguments\n\nL::Int = 0: order of the Legendre polynomial to be used\nuse_windows::Bool = false: tells if the integrand must consider mathcalF or not.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\nb = nothing : galaxy bias value to be considered in the computation; if set to nothing, its value is inferred from the other keyword argument sp;\nsp::Int64=1 : galaxy type to be considered between the two species stored in cosmo: it can be either 1 or 2, and the corresponding set of galaxy, magnification and evolutionary biases stored in cosmo are considered; in case b is set to a value, this parameter is ignored.\n\nSee also: ξ_S, integrand_ξ_S_multipole, map_ξ_S_multipole, print_map_ξ_S_multipole WindowFIntegrated, Cosmology, CosmoPNG, \n\n\n\n\n\n","category":"function"},{"location":"PNG/#GaPSE.map_ξ_S_multipole","page":"implication on PNG","title":"GaPSE.map_ξ_S_multipole","text":"map_ξ_S_multipole(\n cosmo::Cosmology, cosmopng::CosmoPNG,\n ss = nothing;\n L::Int = 0, use_windows::Bool = true,\n atol_quad::Float64 = 0.0,\n rtol_quad::Float64 = 1e-2,\n enhancer::Float64 = 1e6,\n pr::Bool = true,\n N_log::Int = 1000,\n kwargs...) ::Tuple{Vector{Float64}, Vector{Float64}}\n\nEvaluate the multipole of order L of the Two-Point Correlation Function (TPCF) concerning the signal (S) of the local Primordial Non-Gaussianities (PNG), for all the comoving distance values stored inside ss. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log).\n\nThe function evaluated is then the following xi^mathrmS (s):\n\n xi^mathrmS (s) = frac2 L + 12 int_-1^+1 mathrmdmu \n xi^mathrmS left(s muright) \n mathcalL_L(mu) times \n begincases \n frac1mathcalNmathcalF(s mu) quad mathrmuse_windows == true \n 1 quadquad mathrmuse_windows == false\n endcases\n\nwhere:\n\nxi^mathrmS(smu) is the TPCF of the PNG signal with the angular dependence, computed from ξ_S.\nmathcalL_L(mu) is the Legendre polynomial of order L\nmathcalF(s mu) is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)\nmathcalN is the integrated window function norm (check the documentation of WindowFIntegrated)\n\nThe integration over mu is preformed through the Julia function quadgk from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n\nInputs\n\ncosmo::Cosmology: cosmology to be used in this computation\ncosmopng::CosmoPNG: struct that contains all the information that may be used for the TPCF computations of the PNG signal.\nss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). This is why it is returned also the vector of the \"input\" values.\n\nKeyword arguments\n\nThis function recall internally ξ_S_multipole, so the kwargs of the latter are valid also for the former; we report them for comfortness:\n\nL::Int = 0: order of the Legendre polynomial to be used\nuse_windows::Bool = false: tells if the integrand must consider mathcalF or not.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\nN_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing \npr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)\nb = nothing : galaxy bias value to be considered in the computation; if set to nothing, its value is inferred from the other keyword argument sp;\nsp::Int64=1 : galaxy type to be considered between the two species stored in cosmo: it can be either 1 or 2, and the corresponding set of galaxy, magnification and evolutionary biases stored in cosmo are considered; in case b is set to a value, this parameter is ignored.\n\nReturns\n\nA Tuple{Vector{Float64}, Vector{Float64}}, which has as first element the ss vector and as second one the corresponding ξ value evaluated.\n\nSee also: ξ_S, integrand_ξ_S_multipole, ξ_S_multipole, print_map_ξ_S_multipole WindowFIntegrated, Cosmology, CosmoPNG, \n\n\n\n\n\n","category":"function"},{"location":"PNG/#GaPSE.print_map_ξ_S_multipole","page":"implication on PNG","title":"GaPSE.print_map_ξ_S_multipole","text":"print_map_ξ_S_multipole(\n cosmo::Cosmology, cosmopng::CosmoPNG, \n out::String, ss = nothing;\n L::Int = 0, use_windows::Bool = true,\n atol_quad::Float64 = 0.0,\n rtol_quad::Float64 = 1e-2,\n enhancer::Float64 = 1e6,\n pr::Bool = true,\n N_log::Int = 1000,\n kwargs...)\n\nEvaluate the multipole of order L of the Two-Point Correlation Function (TPCF) concerning the signal (S) of the local Primordial Non-Gaussianities (PNG), for all the comoving distance values stored inside ss, and print the results (with all the options used) in a file named out. If ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log).\n\nThe function evaluated is then the following xi^mathrmS (s):\n\n xi^mathrmS (s) = frac2 L + 12 int_-1^+1 mathrmdmu \n xi^mathrmS left(s muright) \n mathcalL_L(mu) times \n begincases \n frac1mathcalNmathcalF(s mu) quad mathrmuse_windows == true \n 1 quadquad mathrmuse_windows == false\n endcases\n\nwhere:\n\nxi^mathrmS(smu) is the TPCF of the PNG signal with the angular dependence, computed from ξ_S.\nmathcalL_L(mu) is the Legendre polynomial of order L\nmathcalF(s mu) is the integrated window function stored in cosmo::Cosmology (check the documentation of WindowFIntegrated)\nmathcalN is the integrated window function norm (check the documentation of WindowFIntegrated)\n\nThe integration over mu is preformed through the Julia function quadgk from the QuadGK.jl Julia package, that uses an adaptive Gauss-Kronrod quadrature.\n\nInputs\n\ncosmo::Cosmology: cosmology to be used in this computation\ncosmopng::CosmoPNG: struct that contains all the information that may be used for the TPCF computations of the PNG signal.\nout::String : name of the file where the results must be stored.\nss : vector/range of s values where the function must be evaluated; if ss = nothing, it is set ss = 10 .^ range(0, log10(2 * cosmo.s_max), length=N_log). This is why it is returned also the vector of the \"input\" values.\n\nKeyword arguments\n\nThis function recall internally map_ξ_S_multipole, so the kwargs of the latter are valid also for the former; we report them for comfortness:\n\nL::Int = 0: order of the Legendre polynomial to be used\nuse_windows::Bool = false: tells if the integrand must consider mathcalF or not.\natol_quad::Float64 = 0.0 and rtol_quad::Float64 = 1e-2: absolute and relative tolerance to be passed to the function quadgk; it's recommended not to set rtol_quad < 1e-2 because the time for evaluation increase quickly.\nenhancer::Float64 = 1e6: just a float number used in order to deal better with small numbers; the returned value is NOT modified by this value, because after a multiplication the internal result is divided by enhancer.\nN_log::Int = 1000 : number of points to be used in the default logaritmically-spaced range for ss, i.e. range(0, log10(2 * cosmo.s_max), length=N_log); it is ignored if ss ≠ nothing \npr::Bool = true : do you want the progress bar showed on screen, in order to check the time needed for the computation? (true recommended)\nb = nothing : galaxy bias value to be considered in the computation; if set to nothing, its value is inferred from the other keyword argument sp;\nsp::Int64=1 : galaxy type to be considered between the two species stored in cosmo: it can be either 1 or 2, and the corresponding set of galaxy, magnification and evolutionary biases stored in cosmo are considered; in case b is set to a value, this parameter is ignored.\n\nSee also: ξ_S, integrand_ξ_S_multipole, ξ_S_multipole, map_ξ_S_multipole WindowFIntegrated, Cosmology, CosmoPNG\n\n\n\n\n\n","category":"function"}] }