Linear Perturbations

Linear Perturbations — FIXME

Synopsis

#define             NC_LINEAR_PERTURBATIONS             (p)
#define             NC_LINEAR_PERTURBATIONS_GET_SPLINE  (pspline,
                                                         n)
#define             NC_LINEAR_PERTURBATIONS_SPLINE_ALL
#define             NC_PERTURBATIONS_LAMBDA2X           (lambda)
#define             NC_PERTURBATIONS_X2LAMBDA           (x)
#define             NC_PERTURBATION_BASE_SIZE
#define             NC_PERTURBATION_START_X
#define             NC_PERT_T
#define             NC_PERT_THETA                       (n)
#define             NC_PERT_THETA_P                     (n)
#define             NC_PERT_U
#define             NC_PERT_V
#define             NC_PERT_dB0
#define             NC_PERT_dTHETA0
struct              NcLinearPert;
void                (*NcLinearPertConf)                 (NcLinearPert *pert);
gpointer            (*NcLinearPertCreate)               (NcLinearPert *pert);
gboolean            (*NcLinearPertEvol)                 (NcLinearPert *pert,
                                                         gdouble g);
gdouble             (*NcLinearPertGet)                  (NcLinearPert *pert);
gdouble             (*NcLinearPertGetN)                 (NcLinearPert *pert,
                                                         guint n);
struct              NcLinearPertOdeSolver;
void                (*NcLinearPertSources)              (NcLinearPert *pert,
                                                         gdouble *S0,
                                                         gdouble *S1,
                                                         gdouble *S2);
enum                NcLinearPertSplineTypes;
struct              NcLinearPertSplines;
struct              NcLinearPertTF;
gboolean            (*NcLinearPertTest)                 (NcLinearPert *pert);
enum                NcLinearPertVars;
extern NcLinearPertOdeSolver *cvodes_solver;
#define             nc_pert_get_default_los_table       (lmax)
gboolean            nc_pert_linear_calc_Nc_spline       (NcLinearPertSplines *pspline,
                                                         NcmSpline *pw_spline,
                                                         GArray *los_table,
                                                         gulong n_interp);
void                nc_pert_linear_clear                (NcLinearPert **pert);
GArray *            nc_pert_linear_create_los_table     (gint lmax_los,
                                                         gint *los_ini,
                                                         gint *los_step);
void                nc_pert_linear_free                 (NcLinearPert *pert);
gdouble             nc_pert_linear_los_integrate        (NcLinearPertSplines *pspline,
                                                         glong l,
                                                         gdouble k);
NcLinearPert *      nc_pert_linear_new                  (NcHICosmo *cosmo,
                                                         NcRecomb *recomb,
                                                         guint lmax,
                                                         gdouble tc_reltol,
                                                         gdouble reltol,
                                                         gdouble tc_abstol,
                                                         gdouble abstol);
void                nc_pert_linear_prepare_splines      (NcLinearPertSplines *pspline);
gboolean            nc_pert_linear_spline_set_source_at (NcLinearPertSplines *pspline,
                                                         gdouble k);
void                nc_pert_linear_splines_clear        (NcLinearPertSplines **pspline);
void                nc_pert_linear_splines_free         (NcLinearPertSplines *pspline);
NcLinearPertSplines * nc_pert_linear_splines_new        (NcLinearPert *pert,
                                                         NcLinearPertSplineTypes types,
                                                         gulong n_deta,
                                                         gulong n_evol,
                                                         gdouble k0,
                                                         gdouble k1);
gdouble             nc_pert_transfer_function_get       (NcLinearPertTF *perttf,
                                                         gdouble kh);
NcLinearPertTF *    nc_pert_transfer_function_new       (NcLinearPert *pert,
                                                         gdouble k0,
                                                         gdouble k1,
                                                         gulong np);
void                nc_pert_transfer_function_prepare   (NcLinearPertTF *perttf);
extern NcLinearPertOdeSolver *ncm_gsl_odeiv2_solver;

Description

FIXME

Details

NC_LINEAR_PERTURBATIONS()

#define NC_LINEAR_PERTURBATIONS(p) ((NcLinearPert *)(p))

NC_LINEAR_PERTURBATIONS_GET_SPLINE()

#define NC_LINEAR_PERTURBATIONS_GET_SPLINE(pspline,n) ((pspline)->s[n])

NC_LINEAR_PERTURBATIONS_SPLINE_ALL

#define NC_LINEAR_PERTURBATIONS_SPLINE_ALL (~0)

NC_PERTURBATIONS_LAMBDA2X()

#define NC_PERTURBATIONS_LAMBDA2X(lambda) (exp (-(lambda)))

NC_PERTURBATIONS_X2LAMBDA()

#define NC_PERTURBATIONS_X2LAMBDA(x) (-log (x))

NC_PERTURBATION_BASE_SIZE

#define NC_PERTURBATION_BASE_SIZE (NC_PERT_THETA2 + 1)

NC_PERTURBATION_START_X

#define NC_PERTURBATION_START_X (1.0e12)

NC_PERT_T

#define NC_PERT_T       NC_PERT_B1

NC_PERT_THETA()

#define NC_PERT_THETA(n)   ((n <= 2) ? (_itheta_table[n])   : (NC_PERT_THETA_P2 + 1) + (2*(n-3)))

NC_PERT_THETA_P()

#define NC_PERT_THETA_P(n) ((n <= 2) ? (_itheta_p_table[n]) : (NC_PERT_THETA_P2 + 1) + (2*(n-3)+1))

NC_PERT_U

#define NC_PERT_U       NC_PERT_THETA1

NC_PERT_V

#define NC_PERT_V       NC_PERT_C1

NC_PERT_dB0

#define NC_PERT_dB0     NC_PERT_B0

NC_PERT_dTHETA0

#define NC_PERT_dTHETA0 NC_PERT_THETA0

struct NcLinearPert

struct NcLinearPert {
};

FIXME


NcLinearPertConf ()

void                (*NcLinearPertConf)                 (NcLinearPert *pert);

NcLinearPertCreate ()

gpointer            (*NcLinearPertCreate)               (NcLinearPert *pert);

NcLinearPertEvol ()

gboolean            (*NcLinearPertEvol)                 (NcLinearPert *pert,
                                                         gdouble g);

NcLinearPertGet ()

gdouble             (*NcLinearPertGet)                  (NcLinearPert *pert);

NcLinearPertGetN ()

gdouble             (*NcLinearPertGetN)                 (NcLinearPert *pert,
                                                         guint n);

struct NcLinearPertOdeSolver

struct NcLinearPertOdeSolver {
};

FIXME


NcLinearPertSources ()

void                (*NcLinearPertSources)              (NcLinearPert *pert,
                                                         gdouble *S0,
                                                         gdouble *S1,
                                                         gdouble *S2);

enum NcLinearPertSplineTypes

typedef enum {
  NC_LINEAR_PERTURBATIONS_SPLINE_SOURCES = 1 << NC_PERTURBATION_BASE_SIZE,
  NC_LINEAR_PERTURBATIONS_SPLINE_PHI     = 1 << NC_PERT_PHI,
  NC_LINEAR_PERTURBATIONS_SPLINE_THETA0  = 1 << NC_PERT_THETA0,
  NC_LINEAR_PERTURBATIONS_SPLINE_C0      = 1 << NC_PERT_C0,
  NC_LINEAR_PERTURBATIONS_SPLINE_B0      = 1 << NC_PERT_B0,
  NC_LINEAR_PERTURBATIONS_SPLINE_THETA1  = 1 << NC_PERT_THETA1,
  NC_LINEAR_PERTURBATIONS_SPLINE_C1      = 1 << NC_PERT_C1,
  NC_LINEAR_PERTURBATIONS_SPLINE_B1      = 1 << NC_PERT_B1,
  NC_LINEAR_PERTURBATIONS_SPLINE_THETA2  = 1 << NC_PERT_THETA2,
} NcLinearPertSplineTypes;

FIXME

NC_LINEAR_PERTURBATIONS_SPLINE_SOURCES

FIXME

NC_LINEAR_PERTURBATIONS_SPLINE_PHI

FIXME

NC_LINEAR_PERTURBATIONS_SPLINE_THETA0

FIXME

NC_LINEAR_PERTURBATIONS_SPLINE_C0

FIXME

NC_LINEAR_PERTURBATIONS_SPLINE_B0

FIXME

NC_LINEAR_PERTURBATIONS_SPLINE_THETA1

FIXME

NC_LINEAR_PERTURBATIONS_SPLINE_C1

FIXME

NC_LINEAR_PERTURBATIONS_SPLINE_B1

FIXME

NC_LINEAR_PERTURBATIONS_SPLINE_THETA2

FIXME

struct NcLinearPertSplines

struct NcLinearPertSplines {
};

struct NcLinearPertTF

struct NcLinearPertTF {
};

FIXME


NcLinearPertTest ()

gboolean            (*NcLinearPertTest)                 (NcLinearPert *pert);

enum NcLinearPertVars

typedef enum {
  NC_PERT_B0 = 0,
  NC_PERT_THETA0,
  NC_PERT_C0,
  NC_PERT_PHI,
  NC_PERT_B1,
  NC_PERT_THETA1,
  NC_PERT_C1,
  NC_PERT_THETA2,
  NC_PERT_THETA_P0,
  NC_PERT_THETA_P1,
  NC_PERT_THETA_P2
} NcLinearPertVars;

FIXME

NC_PERT_B0

FIXME

NC_PERT_THETA0

FIXME

NC_PERT_C0

FIXME

NC_PERT_PHI

FIXME

NC_PERT_B1

FIXME

NC_PERT_THETA1

FIXME

NC_PERT_C1

FIXME

NC_PERT_THETA2

FIXME

NC_PERT_THETA_P0

FIXME

NC_PERT_THETA_P1

FIXME

NC_PERT_THETA_P2

FIXME

cvodes_solver

extern NcLinearPertOdeSolver *cvodes_solver;

nc_pert_get_default_los_table()

#define nc_pert_get_default_los_table(lmax) (nc_pert_linear_create_los_table (lmax, _nc_default_los_init, _nc_default_los_step))

nc_pert_linear_calc_Nc_spline ()

gboolean            nc_pert_linear_calc_Nc_spline       (NcLinearPertSplines *pspline,
                                                         NcmSpline *pw_spline,
                                                         GArray *los_table,
                                                         gulong n_interp);

FIXME

pspline :

a NcLinearPertSplines

pw_spline :

a NcmSpline

los_table :

FIXME

n_interp :

FIXME

Returns :

FIXME

nc_pert_linear_clear ()

void                nc_pert_linear_clear                (NcLinearPert **pert);

FIXME

pert :

a NcLinearPert.

nc_pert_linear_create_los_table ()

GArray *            nc_pert_linear_create_los_table     (gint lmax_los,
                                                         gint *los_ini,
                                                         gint *los_step);

FIXME

lmax_los :

FIXME

los_ini :

FIXME

los_step :

FIXME

Returns :

FIXME

nc_pert_linear_free ()

void                nc_pert_linear_free                 (NcLinearPert *pert);

FIXME

pert :

a NcLinearPert.

nc_pert_linear_los_integrate ()

gdouble             nc_pert_linear_los_integrate        (NcLinearPertSplines *pspline,
                                                         glong l,
                                                         gdouble k);

FIXME

pspline :

a NcLinearPertSplines

l :

FIXME

k :

FIXME

Returns :

FIXME

nc_pert_linear_new ()

NcLinearPert *      nc_pert_linear_new                  (NcHICosmo *cosmo,
                                                         NcRecomb *recomb,
                                                         guint lmax,
                                                         gdouble tc_reltol,
                                                         gdouble reltol,
                                                         gdouble tc_abstol,
                                                         gdouble abstol);

FIXME

cosmo :

a NcHICosmo.

recomb :

FIXME

lmax :

FIXME

tc_reltol :

FIXME

reltol :

FIXME

tc_abstol :

FIXME

abstol :

FIXME

Returns :

FIXME

nc_pert_linear_prepare_splines ()

void                nc_pert_linear_prepare_splines      (NcLinearPertSplines *pspline);

FIXME

pspline :

a NcLinearPertSplines

nc_pert_linear_spline_set_source_at ()

gboolean            nc_pert_linear_spline_set_source_at (NcLinearPertSplines *pspline,
                                                         gdouble k);

FIXME

pspline :

a NcLinearPertSplines

k :

FIXME

Returns :

FIXME

nc_pert_linear_splines_clear ()

void                nc_pert_linear_splines_clear        (NcLinearPertSplines **pspline);

FIXME

pspline :

a NcLinearPertSplines.

nc_pert_linear_splines_free ()

void                nc_pert_linear_splines_free         (NcLinearPertSplines *pspline);

FIXME

pspline :

a NcLinearPertSplines.

nc_pert_linear_splines_new ()

NcLinearPertSplines * nc_pert_linear_splines_new        (NcLinearPert *pert,
                                                         NcLinearPertSplineTypes types,
                                                         gulong n_deta,
                                                         gulong n_evol,
                                                         gdouble k0,
                                                         gdouble k1);

FIXME

pert :

a NcLinearPert

types :

a NcLinearPertSplineTypes

n_deta :

FIXME

n_evol :

FIXME

k0 :

FIXME

k1 :

FIXME

Returns :

FIXME

nc_pert_transfer_function_get ()

gdouble             nc_pert_transfer_function_get       (NcLinearPertTF *perttf,
                                                         gdouble kh);

FIXME

perttf :

a NcLinearPertTF

kh :

FIXME

Returns :

FIXME

nc_pert_transfer_function_new ()

NcLinearPertTF *    nc_pert_transfer_function_new       (NcLinearPert *pert,
                                                         gdouble k0,
                                                         gdouble k1,
                                                         gulong np);

FIXME

pert :

a NcLinearPert

k0 :

FIXME

k1 :

FIXME

np :

FIXME

Returns :

FIXME

nc_pert_transfer_function_prepare ()

void                nc_pert_transfer_function_prepare   (NcLinearPertTF *perttf);

FIXME

perttf :

a NcLinearPertTF

ncm_gsl_odeiv2_solver

extern NcLinearPertOdeSolver *ncm_gsl_odeiv2_solver;