FLAG  1.0b1
Exact Fourier-Laguerre transform in spherical coordinates
Functions
flag_core.c File Reference
#include "flag.h"
#include <math.h>
#include <stdlib.h>
#include <complex.h>
#include <fftw3.h>
#include <ssht.h>
#include <assert.h>

Go to the source code of this file.

Functions

int ssht_fr_size_mw (int L)
 
int ssht_flm_size (int L)
 
int flag_core_flmn_size (int L, int N)
 
int flag_core_f_size_mw (int L, int N)
 
void flag_core_allocate_flmn (complex double **flmn, int L, int N)
 
void flag_core_allocate_f (complex double **f, int L, int N)
 
void flag_core_allocate_f_real (double **f, int L, int N)
 
void flag_core_analysis (complex double *flmn, const complex double *f, int L, double tau, int N, int spin)
 
void flag_core_synthesis (complex double *f, const complex double *flmn, const double *nodes, int Nnodes, int L, double tau, int N, int spin)
 
void flag_core_analysis_real (complex double *flmn, const double *f, int L, double tau, int N)
 
void flag_core_synthesis_real (double *f, const complex double *flmn, const double *nodes, int Nnodes, int L, double tau, int N)
 
double j_ell (double X, int l)
 
void flag_spherbessel_basis (double *jell, const int ell, const double *nodes, int Nnodes)
 
void flag_core_fourierbessel_analysis (complex double *flmn, const complex double *f, int L, double tau, int N)
 
void flag_core_fourierbessel_synthesis (complex double *f, const complex double *flmn, const double *nodes, int Nnodes, int L, double tau, int N)
 

Function Documentation

void flag_core_allocate_f ( complex double **  f,
int  L,
int  N 
)

Allocate sampled field (MW sampling, complex).

Parameters
[out]fSampled dataset (complex).
[in]LAngular harmonic band-limit.
[in]NRadial harmonic band-limit.
Return values
none

Definition at line 51 of file flag_core.c.

void flag_core_allocate_f_real ( double **  f,
int  L,
int  N 
)

Allocate sampled field (MW sampling, real).

Parameters
[out]fSampled dataset (real).
[in]LAngular harmonic band-limit.
[in]NRadial harmonic band-limit.
Return values
none

Definition at line 61 of file flag_core.c.

void flag_core_allocate_flmn ( complex double **  flmn,
int  L,
int  N 
)

Allocate FLAG coefficients.

Parameters
[out]flmnFourier-Laguerre coefficients.
[in]LAngular harmonic band-limit.
[in]NRadial harmonic band-limit.
Return values
none

Definition at line 41 of file flag_core.c.

void flag_core_analysis ( complex double *  flmn,
const complex double *  f,
int  L,
double  tau,
int  N,
int  spin 
)

Perform Fourier-Laguerre analysis (MW sampling, complex signal).

Parameters
[out]flmnFourier-Laguerre coefficients.
[in]fInput dataset (MW sampling, complex signal)
[in]LAngular harmonic band-limit.
[in]NRadial harmonic band-limit.
Return values
none

Definition at line 71 of file flag_core.c.

void flag_core_analysis_real ( complex double *  flmn,
const double *  f,
int  L,
double  tau,
int  N 
)

Perform Fourier-Laguerre analysis (MW sampling, real signal).

Parameters
[out]flmnFourier-Laguerre coefficients.
[in]fInput dataset (MW sampling, real signal)
[in]LAngular harmonic band-limit.
[in]NRadial harmonic band-limit.
Return values
none

Definition at line 141 of file flag_core.c.

int flag_core_f_size_mw ( int  L,
int  N 
)

Get size of the full dataset for MW sampling.

Parameters
[in]LAngular harmonic band-limit.
[in]NRadial harmonic band-limit.
Return values
N*L*(2*L-1)

Definition at line 34 of file flag_core.c.

int flag_core_flmn_size ( int  L,
int  N 
)

Get size of the full FLAG decomposition.

Parameters
[in]LAngular harmonic band-limit.
[in]NRadial harmonic band-limit.
Return values
N*L^2

Definition at line 27 of file flag_core.c.

void flag_core_fourierbessel_analysis ( complex double *  flmn,
const complex double *  f,
int  L,
double  tau,
int  N 
)

Definition at line 354 of file flag_core.c.

void flag_core_fourierbessel_synthesis ( complex double *  f,
const complex double *  flmn,
const double *  nodes,
int  Nnodes,
int  L,
double  tau,
int  N 
)

Definition at line 394 of file flag_core.c.

void flag_core_synthesis ( complex double *  f,
const complex double *  flmn,
const double *  nodes,
int  Nnodes,
int  L,
double  tau,
int  N,
int  spin 
)

Perform Fourier-Laguerre synthesis (MW sampling, complex signal).

Parameters
[out]fInput dataset (MW sampling, complex signal)
[in]flmnFourier-Laguerre coefficients.
[in]LAngular harmonic band-limit.
[in]NRadial harmonic band-limit.
Return values
none

Definition at line 110 of file flag_core.c.

void flag_core_synthesis_real ( double *  f,
const complex double *  flmn,
const double *  nodes,
int  Nnodes,
int  L,
double  tau,
int  N 
)

Perform Fourier-Laguerre synthesis (MW sampling, real signal).

Parameters
[out]fInput dataset (MW sampling, real signal)
[in]flmnFourier-Laguerre coefficients.
[in]LAngular harmonic band-limit.
[in]NRadial harmonic band-limit.
Return values
none

Definition at line 176 of file flag_core.c.

void flag_spherbessel_basis ( double *  jell,
const int  ell,
const double *  nodes,
int  Nnodes 
)

Compute the spherical-Bessel basis functions on a grid of radii

Parameters
[out]jellSynthesised basis function.
[in]ellorder-multipole of the basis function.
[in]nodesRadii where the function must be calculated.
[in]NnodesNumber of radii.
Return values
none

Definition at line 343 of file flag_core.c.

double j_ell ( double  X,
int  l 
)

Compute the spherical-Bessel function of order l at X

Definition at line 206 of file flag_core.c.

int ssht_flm_size ( int  L)

Definition at line 20 of file flag_core.c.

int ssht_fr_size_mw ( int  L)

Definition at line 13 of file flag_core.c.